@@ -456,51 +456,6 @@ protected override async Task<IEnumerable<KeyValuePair<string, ExchangeTicker>>>
456456 return tickers ;
457457 }
458458
459- protected override async Task < IWebSocket > OnGetTickersWebSocketAsync (
460- Action < IReadOnlyCollection < KeyValuePair < string , ExchangeTicker > > > callback ,
461- params string [ ] symbols ) =>
462- await ConnectWebsocketPublicAsync (
463- async ( socket ) => { await SubscribeToChannel ( socket , "ticker" , symbols ) ; } ,
464- async ( socket , symbol , sArray , token ) =>
465- {
466- var tickers = new List < KeyValuePair < string , ExchangeTicker > >
467- {
468- new KeyValuePair < string , ExchangeTicker > ( symbol ,
469- await this . ParseTickerWebSocketAsync ( symbol , token ) )
470- } ;
471- callback ( tickers ) ;
472- } ) ;
473-
474- protected override async Task < IWebSocket > OnGetTradesWebSocketAsync (
475- Func < KeyValuePair < string , ExchangeTrade > , Task > callback ,
476- params string [ ] marketSymbols ) =>
477- await ConnectWebsocketPublicAsync (
478- async ( socket ) => { await SubscribeToChannel ( socket , "trades" , marketSymbols ) ; } ,
479- async ( socket , symbol , sArray , token ) =>
480- {
481- var trade = token . ParseTrade ( amountKey : "quantity" , priceKey : "price" , typeKey : "takerSide" ,
482- timestampKey : "ts" , TimestampType . UnixMilliseconds , idKey : "id" ) ;
483- await callback ( new KeyValuePair < string , ExchangeTrade > ( symbol , trade ) ) ;
484- } ) ;
485-
486- protected override async Task < IWebSocket > OnGetDeltaOrderBookWebSocketAsync (
487- Action < ExchangeOrderBook > callback ,
488- int maxCount = 20 ,
489- params string [ ] marketSymbols )
490- {
491- return await ConnectWebsocketPublicAsync (
492- async ( socket ) =>
493- {
494- await SubscribeToOrderBookDepthChannel ( socket , marketSymbols , maxCount ) ;
495- } , ( socket , symbol , sArray , token ) =>
496- {
497- var book = token . ParseOrderBookFromJTokenArrays ( ) ;
498- book . MarketSymbol = symbol ;
499- callback ( book ) ;
500- return Task . CompletedTask ;
501- } ) ;
502- }
503-
504459 protected override async Task < ExchangeOrderBook > OnGetOrderBookAsync ( string marketSymbol , int maxCount = 100 )
505460 {
506461 //https://api.poloniex.com/markets/{symbol}/orderBook?scale={scale}&limit={limit}
@@ -853,6 +808,65 @@ protected override async Task<IEnumerable<ExchangeTransaction>> OnGetDepositHist
853808 return transactions ;
854809 }
855810
811+ protected override async Task < IWebSocket > OnGetTickersWebSocketAsync (
812+ Action < IReadOnlyCollection < KeyValuePair < string , ExchangeTicker > > > callback ,
813+ params string [ ] symbols ) =>
814+ await ConnectWebsocketPublicAsync (
815+ async ( socket ) => { await SubscribeToChannel ( socket , "ticker" , symbols ) ; } ,
816+ async ( socket , symbol , sArray , token ) =>
817+ {
818+ var tickers = new List < KeyValuePair < string , ExchangeTicker > >
819+ {
820+ new KeyValuePair < string , ExchangeTicker > ( symbol ,
821+ await this . ParseTickerWebSocketAsync ( symbol , token ) )
822+ } ;
823+ callback ( tickers ) ;
824+ } ) ;
825+
826+ protected override async Task < IWebSocket > OnGetTradesWebSocketAsync (
827+ Func < KeyValuePair < string , ExchangeTrade > , Task > callback ,
828+ params string [ ] marketSymbols ) =>
829+ await ConnectWebsocketPublicAsync (
830+ async ( socket ) => { await SubscribeToChannel ( socket , "trades" , marketSymbols ) ; } ,
831+ async ( socket , symbol , sArray , token ) =>
832+ {
833+ var trade = token . ParseTrade ( amountKey : "quantity" , priceKey : "price" , typeKey : "takerSide" ,
834+ timestampKey : "ts" , TimestampType . UnixMilliseconds , idKey : "id" ) ;
835+ await callback ( new KeyValuePair < string , ExchangeTrade > ( symbol , trade ) ) ;
836+ } ) ;
837+
838+ protected override async Task < IWebSocket > OnGetDeltaOrderBookWebSocketAsync (
839+ Action < ExchangeOrderBook > callback ,
840+ int maxCount = 20 ,
841+ params string [ ] marketSymbols ) =>
842+ await ConnectWebsocketPublicAsync (
843+ async ( socket ) => { await SubscribeToOrderBookDepthChannel ( socket , marketSymbols , maxCount ) ; } ,
844+ ( socket , symbol , sArray , token ) =>
845+ {
846+ var book = token . ParseOrderBookFromJTokenArrays ( ) ;
847+ book . MarketSymbol = symbol ;
848+ callback ( book ) ;
849+ return Task . CompletedTask ;
850+ } ) ;
851+
852+ protected override async Task < IWebSocket > OnGetCandlesWebSocketAsync (
853+ Func < MarketCandle , Task > callback ,
854+ int periodSeconds ,
855+ params string [ ] marketSymbols ) =>
856+ await ConnectWebsocketPublicAsync (
857+ async ( socket ) =>
858+ {
859+ await SubscribeToChannel ( socket ,
860+ $ "candles_{ CryptoUtility . SecondsToPeriodStringLongReverse ( periodSeconds ) . ToLowerInvariant ( ) } ",
861+ marketSymbols ) ;
862+ } , async ( socket , symbol , sArray , token ) =>
863+ {
864+ var candle = this . ParseCandle ( token , symbol , periodSeconds , "open" , "high" , "low" , "close" ,
865+ "ts" , TimestampType . UnixMilliseconds , "quantity" , "amount" , null , "tradeCount" ) ;
866+
867+ await callback ( candle ) ;
868+ } ) ;
869+
856870 private static string ParseFeesCurrency ( bool isBuy , string symbol )
857871 {
858872 string feesCurrency = null ;
0 commit comments