@@ -41,13 +41,24 @@ protected override async Task<
4141 IEnumerable < KeyValuePair < string , ExchangeTicker > >
4242 > OnGetTickersAsync ( )
4343 {
44- var json = await MakeJsonRequestAsync < JToken > ( "/spot/tickers" ) ;
44+ var response = await MakeJsonRequestAsync < JToken > ( "/spot/tickers" ) ;
45+ var tickers =
46+ new List < KeyValuePair < string , ExchangeTicker > > ( ) ;
4547
46- var tickers = json . Select ( tickerToken => ParseTicker ( tickerToken ) )
47- . Select (
48- ticker => new KeyValuePair < string , ExchangeTicker > ( ticker . MarketSymbol , ticker )
49- )
50- . ToList ( ) ;
48+ foreach ( var t in response )
49+ {
50+ var marketSymbol = t [ "currency_pair" ] . ToStringInvariant ( ) ;
51+ tickers . Add ( new KeyValuePair < string , ExchangeTicker > (
52+ marketSymbol ,
53+ await this . ParseTickerAsync (
54+ t ,
55+ t [ "currency_pair" ] . ToStringInvariant ( ) ,
56+ "lowest_ask" ,
57+ "highest_bid" ,
58+ "last" ,
59+ "base_volume" ,
60+ "quote_volume" ) ) ) ;
61+ }
5162
5263 return tickers ;
5364 }
@@ -171,44 +182,9 @@ protected internal override async Task<
171182 protected override async Task < ExchangeTicker > OnGetTickerAsync ( string symbol )
172183 {
173184 var json = await MakeJsonRequestAsync < JToken > ( $ "/spot/tickers?currency_pair={ symbol } ") ;
174- return ParseTicker ( json . First ( ) ) ;
175- }
176-
177- private ExchangeTicker ParseTicker ( JToken tickerToken )
178- {
179- bool IsEmptyString ( JToken token ) =>
180- token . Type == JTokenType . String && token . ToObject < string > ( ) == string . Empty ;
181185
182- /*
183- {
184- "currency_pair": "BTC3L_USDT",
185- "last": "2.46140352",
186- "lowest_ask": "2.477",
187- "highest_bid": "2.4606821",
188- "change_percentage": "-8.91",
189- "base_volume": "656614.0845820589",
190- "quote_volume": "1602221.66468375534639404191",
191- "high_24h": "2.7431",
192- "low_24h": "1.9863",
193- "etf_net_value": "2.46316141",
194- "etf_pre_net_value": "2.43201848",
195- "etf_pre_timestamp": 1611244800,
196- "etf_leverage": "2.2803019447281203"
197- }
198- */
199-
200- return new ExchangeTicker
201- {
202- Exchange = Name ,
203- MarketSymbol = tickerToken [ "currency_pair" ] . ToStringInvariant ( ) ,
204- Bid = IsEmptyString ( tickerToken [ "lowest_ask" ] )
205- ? default
206- : tickerToken [ "lowest_ask" ] . ConvertInvariant < decimal > ( ) ,
207- Ask = IsEmptyString ( tickerToken [ "highest_bid" ] )
208- ? default
209- : tickerToken [ "highest_bid" ] . ConvertInvariant < decimal > ( ) ,
210- Last = tickerToken [ "last" ] . ConvertInvariant < decimal > ( ) ,
211- } ;
186+ return await this . ParseTickerAsync ( json . First ( ) , json . First ( ) [ "currency_pair" ] . ToStringInvariant ( ) , "lowest_ask" ,
187+ "highest_bid" , "last" , "base_volume" , "quote_volume" ) ;
212188 }
213189
214190 protected override async Task < ExchangeOrderBook > OnGetOrderBookAsync (
0 commit comments