@@ -203,18 +203,17 @@ protected internal override async Task<IEnumerable<ExchangeMarket>> OnGetMarketS
203203
204204 protected override async Task < ExchangeTicker > OnGetTickerAsync ( string marketSymbol )
205205 {
206- JToken obj = await MakeJsonRequestAsync < JToken > ( "/ticker/24hr?symbol=" + marketSymbol ) ;
206+ JToken obj = await MakeJsonRequestAsync < JToken > ( "/ticker/24hr?symbol=" + marketSymbol , BaseUrlApi ) ;
207207 return await ParseTickerAsync ( marketSymbol , obj ) ;
208208 }
209209
210210 protected override async Task < IEnumerable < KeyValuePair < string , ExchangeTicker > > > OnGetTickersAsync ( )
211211 {
212212 List < KeyValuePair < string , ExchangeTicker > > tickers = new List < KeyValuePair < string , ExchangeTicker > > ( ) ;
213- string marketSymbol ;
214- JToken obj = await MakeJsonRequestAsync < JToken > ( "/ticker/24hr" ) ;
213+ JToken obj = await MakeJsonRequestAsync < JToken > ( "/ticker/24hr" , BaseUrlApi ) ;
215214 foreach ( JToken child in obj )
216215 {
217- marketSymbol = child [ "symbol" ] . ToStringInvariant ( ) ;
216+ string marketSymbol = child [ "symbol" ] . ToStringInvariant ( ) ;
218217 tickers . Add ( new KeyValuePair < string , ExchangeTicker > ( marketSymbol , await ParseTickerAsync ( marketSymbol , child ) ) ) ;
219218 }
220219 return tickers ;
@@ -308,7 +307,7 @@ protected override async Task<IWebSocket> OnGetDeltaOrderBookWebSocketAsync(Acti
308307
309308 protected override async Task < ExchangeOrderBook > OnGetOrderBookAsync ( string marketSymbol , int maxCount = 100 )
310309 {
311- JToken obj = await MakeJsonRequestAsync < JToken > ( "/depth?symbol=" + marketSymbol + " &limit=" + maxCount ) ;
310+ JToken obj = await MakeJsonRequestAsync < JToken > ( $ "/depth?symbol={ marketSymbol } &limit={ maxCount } " , BaseUrlApi ) ;
312311 return ExchangeAPIExtensions . ParseOrderBookFromJTokenArrays ( obj , sequence : "lastUpdateId" , maxCount : maxCount ) ;
313312 }
314313
@@ -348,21 +347,17 @@ protected override async Task OnGetHistoricalTradesAsync(Func<IEnumerable<Exchan
348347
349348 protected override async Task < IEnumerable < ExchangeTrade > > OnGetRecentTradesAsync ( string marketSymbol , int ? limit = null )
350349 {
351- List < ExchangeTrade > trades = new List < ExchangeTrade > ( ) ;
352- //var maxRequestLimit = 1000; //hard coded for now, should add limit as an argument
353- //https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#compressedaggregate-trades-list
354- int maxRequestLimit = ( limit == null || limit < 1 || limit > 1000 ) ? 1000 : ( int ) limit ;
355-
356- JToken obj = await MakeJsonRequestAsync < JToken > ( $ "/aggTrades?symbol={ marketSymbol } &limit={ maxRequestLimit } ") ;
357- //JToken obj = await MakeJsonRequestAsync<JToken>("/public/trades/" + marketSymbol + "?limit=" + maxRequestLimit + "?sort=DESC");
358- if ( obj . HasValues ) { //
359- foreach ( JToken token in obj ) {
360- var trade = token . ParseTrade ( "q" , "p" , "m" , "T" , TimestampType . UnixMilliseconds , "a" , "false" ) ;
361- trades . Add ( trade ) ;
362- }
350+ //https://github.com/binance/binance-spot-api-docs/blob/master/rest-api.md
351+ var trades = new List < ExchangeTrade > ( ) ;
352+ var maxRequestLimit = ( limit == null || limit < 1 || limit > 1000 ) ? 1000 : ( int ) limit ;
353+
354+ JToken obj = await MakeJsonRequestAsync < JToken > ( $ "/aggTrades?symbol={ marketSymbol } &limit={ maxRequestLimit } ", BaseUrlApi ) ;
355+ if ( obj . HasValues )
356+ {
357+ trades . AddRange ( obj . Select ( token =>
358+ token . ParseTrade ( "q" , "p" , "m" , "T" , TimestampType . UnixMilliseconds , "a" , "false" ) ) ) ;
363359 }
364360 return trades . AsEnumerable ( ) . Reverse ( ) ; //Descending order (ie newest trades first)
365- //return trades;
366361 }
367362
368363 public async Task OnGetHistoricalTradesAsync ( Func < IEnumerable < ExchangeTrade > , bool > callback , string marketSymbol , long startId , long ? endId = null )
@@ -462,9 +457,8 @@ public async Task OnGetHistoricalTradesAsync(Func<IEnumerable<ExchangeTrade>, bo
462457 }
463458
464459
465-
466-
467- protected override async Task < IEnumerable < MarketCandle > > OnGetCandlesAsync ( string marketSymbol , int periodSeconds , DateTime ? startDate = null , DateTime ? endDate = null , int ? limit = null )
460+ protected override async Task < IEnumerable < MarketCandle > > OnGetCandlesAsync ( string marketSymbol ,
461+ int periodSeconds , DateTime ? startDate = null , DateTime ? endDate = null , int ? limit = null )
468462 {
469463 /* [
470464 [
@@ -482,25 +476,25 @@ protected override async Task<IEnumerable<MarketCandle>> OnGetCandlesAsync(strin
482476 "17928899.62484339" // Can be ignored
483477 ]] */
484478
485- List < MarketCandle > candles = new List < MarketCandle > ( ) ;
486479 string url = "/klines?symbol=" + marketSymbol ;
487480 if ( startDate != null )
488481 {
489482 url += "&startTime=" + ( long ) startDate . Value . UnixTimestampFromDateTimeMilliseconds ( ) ;
490- url += "&endTime=" + ( ( endDate == null ? long . MaxValue : ( long ) endDate . Value . UnixTimestampFromDateTimeMilliseconds ( ) ) ) . ToStringInvariant ( ) ;
483+ url += "&endTime=" +
484+ ( ( endDate == null ? long . MaxValue : ( long ) endDate . Value . UnixTimestampFromDateTimeMilliseconds ( ) ) )
485+ . ToStringInvariant ( ) ;
491486 }
487+
492488 if ( limit != null )
493489 {
494490 url += "&limit=" + ( limit . Value . ToStringInvariant ( ) ) ;
495491 }
492+
496493 url += "&interval=" + PeriodSecondsToString ( periodSeconds ) ;
497- JToken obj = await MakeJsonRequestAsync < JToken > ( url ) ;
498- foreach ( JToken token in obj )
499- {
500- candles . Add ( this . ParseCandle ( token , marketSymbol , periodSeconds , 1 , 2 , 3 , 4 , 0 , TimestampType . UnixMilliseconds , 5 , 7 ) ) ;
501- }
494+ JToken obj = await MakeJsonRequestAsync < JToken > ( url , BaseUrlApi ) ;
502495
503- return candles ;
496+ return obj . Select ( token => this . ParseCandle ( token , marketSymbol , periodSeconds , 1 , 2 , 3 , 4 , 0 ,
497+ TimestampType . UnixMilliseconds , 5 , 7 ) ) . ToList ( ) ;
504498 }
505499
506500 protected override async Task < Dictionary < string , decimal > > OnGetAmountsAsync ( )
@@ -582,7 +576,7 @@ protected override async Task<ExchangeOrderResult> OnGetOrderDetailsAsync(string
582576 throw new InvalidOperationException ( "Binance single order details request requires symbol" ) ;
583577 }
584578 payload [ "symbol" ] = marketSymbol ! ;
585-
579+
586580 if ( isClientOrderId ) // Either orderId or origClientOrderId must be sent.
587581 payload [ "origClientOrderId" ] = orderId ;
588582 else
0 commit comments