Binance: Update rate limits (#686)

* wip banned for 10m

* wip ban 2 final test

* testing complete

* glorious changes

* small fix
This commit is contained in:
Adam
2021-05-14 10:14:08 +10:00
committed by GitHub
parent b4dd570745
commit 57bdecac6b
3 changed files with 19 additions and 12 deletions

View File

@@ -99,7 +99,7 @@ func (b *Binance) GetMarginMarkets() (PerpsExchangeInfo, error) {
// information
func (b *Binance) GetExchangeInfo() (ExchangeInfo, error) {
var resp ExchangeInfo
return resp, b.SendHTTPRequest(exchange.RestSpotSupplementary, exchangeInfo, spotDefaultRate, &resp)
return resp, b.SendHTTPRequest(exchange.RestSpotSupplementary, exchangeInfo, spotExchangeInfo, &resp)
}
// GetOrderBook returns full orderbook information
@@ -597,10 +597,9 @@ func (b *Binance) AllOrders(symbol currency.Pair, orderID, limit string) ([]Quer
if limit != "" {
params.Set("limit", limit)
}
if err := b.SendAuthHTTPRequest(exchange.RestSpotSupplementary, http.MethodGet, allOrders, params, spotOrdersAllRate, &resp); err != nil {
if err := b.SendAuthHTTPRequest(exchange.RestSpotSupplementary, http.MethodGet, allOrders, params, spotAllOrdersRate, &resp); err != nil {
return resp, err
}
return resp, nil
}
@@ -621,7 +620,7 @@ func (b *Binance) QueryOrder(symbol currency.Pair, origClientOrderID string, ord
params.Set("orderId", strconv.FormatInt(orderID, 10))
}
if err := b.SendAuthHTTPRequest(exchange.RestSpotSupplementary, http.MethodGet, orderEndpoint, params, spotOrderRate, &resp); err != nil {
if err := b.SendAuthHTTPRequest(exchange.RestSpotSupplementary, http.MethodGet, orderEndpoint, params, spotOrderQueryRate, &resp); err != nil {
return resp, err
}

View File

@@ -30,6 +30,7 @@ const (
// Binance Spot rate limits
const (
spotDefaultRate request.EndpointLimit = iota
spotExchangeInfo
spotHistoricalTradesRate
spotOrderbookDepth500Rate
spotOrderbookDepth1000Rate
@@ -38,8 +39,10 @@ const (
spotPriceChangeAllRate
spotSymbolPriceAllRate
spotOpenOrdersAllRate
spotOpenOrdersSpecificRate
spotOrderRate
spotOrdersAllRate
spotOrderQueryRate
spotAllOrdersRate
spotAccountInformationRate
uFuturesDefaultRate
uFuturesHistoricalTradesRate
@@ -110,10 +113,11 @@ func (r *RateLimit) Limit(f request.EndpointLimit) error {
spotSymbolPriceAllRate:
limiter, tokens = r.SpotRate, 2
case spotHistoricalTradesRate,
spotAccountInformationRate,
spotOrderbookDepth500Rate:
limiter, tokens = r.SpotRate, 5
case spotOrderbookDepth1000Rate:
case spotOrderbookDepth1000Rate,
spotAccountInformationRate,
spotExchangeInfo:
limiter, tokens = r.SpotRate, 10
case spotPriceChangeAllRate:
limiter, tokens = r.SpotRate, 40
@@ -121,8 +125,12 @@ func (r *RateLimit) Limit(f request.EndpointLimit) error {
limiter, tokens = r.SpotRate, 50
case spotOrderRate:
limiter, tokens = r.SpotOrdersRate, 1
case spotOrdersAllRate:
limiter, tokens = r.SpotOrdersRate, 5
case spotOrderQueryRate:
limiter, tokens = r.SpotOrdersRate, 2
case spotOpenOrdersSpecificRate:
limiter, tokens = r.SpotOrdersRate, 3
case spotAllOrdersRate:
limiter, tokens = r.SpotOrdersRate, 10
case spotOpenOrdersAllRate:
limiter, tokens = r.SpotOrdersRate, 40
case uFuturesDefaultRate,
@@ -240,7 +248,7 @@ func openOrdersLimit(symbol string) request.EndpointLimit {
return spotOpenOrdersAllRate
}
return spotOrderRate
return spotOpenOrdersSpecificRate
}
func orderbookLimit(depth int) request.EndpointLimit {

View File

@@ -15,7 +15,7 @@ func TestRateLimit_Limit(t *testing.T) {
}{
"All Orderbooks Ticker": {Expected: spotOrderbookTickerAllRate, Limit: bestPriceLimit("")},
"Orderbook Ticker": {Expected: spotDefaultRate, Limit: bestPriceLimit(symbol)},
"Open Orders": {Expected: spotOrderRate, Limit: openOrdersLimit(symbol)},
"Open Orders": {Expected: spotOpenOrdersSpecificRate, Limit: openOrdersLimit(symbol)},
"Orderbook Depth 5": {Expected: spotDefaultRate, Limit: orderbookLimit(5)},
"Orderbook Depth 10": {Expected: spotDefaultRate, Limit: orderbookLimit(10)},
"Orderbook Depth 20": {Expected: spotDefaultRate, Limit: orderbookLimit(20)},
@@ -48,7 +48,7 @@ func TestRateLimit_LimitStatic(t *testing.T) {
"Default": spotDefaultRate,
"Historical Trades": spotHistoricalTradesRate,
"All Price Changes": spotPriceChangeAllRate,
"All Orders": spotOrdersAllRate,
"All Orders": spotAllOrdersRate,
}
for name, tt := range testTable {
tt := tt