diff --git a/exchanges/binance/binance.go b/exchanges/binance/binance.go index 5fcfa572..8d37aa1c 100644 --- a/exchanges/binance/binance.go +++ b/exchanges/binance/binance.go @@ -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 } diff --git a/exchanges/binance/ratelimit.go b/exchanges/binance/ratelimit.go index 6184efbc..8e0d99d9 100644 --- a/exchanges/binance/ratelimit.go +++ b/exchanges/binance/ratelimit.go @@ -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 { diff --git a/exchanges/binance/ratelimit_test.go b/exchanges/binance/ratelimit_test.go index 94026169..c1c42ad3 100644 --- a/exchanges/binance/ratelimit_test.go +++ b/exchanges/binance/ratelimit_test.go @@ -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