* updates some rate limits
* WOAH FRIDAY FAILURES
* remove secret code, DONT LOOK
* types.Number, rv ob num, fr changes
* ever so slight neaten
* Remove FundingRateInfo for CMF only
* revert to using the funding rate intervals
* CI/build: Update Go version, linters and fix minor issues
* linters: Add intrange, copyloopvar, additional go vet linters to match gopls and fix issues
* initial consolidation of rate limiting code to request package to reduce bespoke code implementation
* continued
* finish abstraction
* lint
* exchanges: fix tests
* linter: fix
* poloniex: fix auth rate limit not being set
* ratelimiter: convert from token to weight
* glorious: nits addressed with fire
* linter: rip
* change func name set -> get
* fix test
* derbit: impl
---------
Co-authored-by: Ryan O'Hara-Reid <ryan.oharareid@thrasher.io>
* golangci-lint/CI: Bump versions
Fix remaining linter issues
* Specifically set AppVeyor version
* Fix the infamous typos 👀
* Add go env cmd to AppVeyor
* Add go version cmd to AppVeyor
* Specify AppVeyor image, adjust linters
* Update go get to go install due to deprecation
* Bump golangci-lint timeout time for AppVeyor
* Change NW contract to NQ
* Address nitters
* GetRandomPair -> Pair{}
* Address nits
* Address time nitterinos plus additional tweaks
* More time inception upgrades!
* Bending time and space
* rate limits: Make context aware
* binance: rate limit allow for cancellation of reservation when deadline is exceeded
* request: add context.done() before initiating any bulk work.
* binance: update error return for rate limiting
* request: updated dealine check to remove after time.Now procedure as this will obfuscate a deadline which will be limited by the context check on every attempt, so no need to sleep with delay.
Request types / variations contribute different weights towards the limit
Binance enforces. These can be considerably more than 1 per request,
which results in the server side limits being hit, producing 429 and 418
responses and bans