@@ -31,7 +31,7 @@ protected override async Task<IEnumerable<KeyValuePair<string, ExchangeTicker>>>
3131 {
3232 var result =
3333 await MakeJsonRequestAsync < Dictionary < string , NDAXTicker > > ( "returnticker" , "https://ndax.io/api" , null , "GET" ) ;
34- _marketSymbolToInstrumentIdMapping = result . ToDictionary ( pair => pair . Key , pair => pair . Value . Id ) ;
34+ _marketSymbolToInstrumentIdMapping = result . ToDictionary ( pair => pair . Key . Replace ( "_" , "" ) , pair => pair . Value . Id ) ; // remove the _
3535 return result . Select ( pair =>
3636 new KeyValuePair < string , ExchangeTicker > ( pair . Key , pair . Value . ToExchangeTicker ( pair . Key ) ) ) ;
3737 }
@@ -345,12 +345,16 @@ private async Task EnsureInstrumentIdsAvailable()
345345 {
346346 marketSymbol = marketSymbol . ToUpperInvariant ( ) ;
347347 await EnsureInstrumentIdsAvailable ( ) ;
348- if ( _marketSymbolToInstrumentIdMapping . TryGetValue ( marketSymbol , out var value ) )
349- {
350- return value ;
351- }
352-
353- return null ;
348+ if ( _marketSymbolToInstrumentIdMapping . TryGetValue ( marketSymbol , out var value ) )
349+ {
350+ return value ;
351+ }
352+ else if ( _marketSymbolToInstrumentIdMapping . TryGetValue ( marketSymbol . Replace ( "_" , "" ) , out var value2 ) )
353+ { // try again w/o the _
354+ return value2 ;
355+ }
356+
357+ return null ;
354358 }
355359
356360 private async Task < long ? [ ] > GetInstrumentIdFromMarketSymbol ( string [ ] marketSymbols )
@@ -367,6 +371,7 @@ private async Task<string> GetMarketSymbolFromInstrumentId(long instrumentId)
367371
368372 protected override async Task < IWebSocket > OnGetTickersWebSocketAsync ( Action < IReadOnlyCollection < KeyValuePair < string , ExchangeTicker > > > tickers , params string [ ] marketSymbols )
369373 {
374+ await EnsureInstrumentIdsAvailable ( ) ;
370375 var instrumentIds = marketSymbols == null || marketSymbols . Length == 0 ?
371376 ( await GetMarketSymbolsMetadataAsync ( ) ) . Select ( s => ( long ? ) long . Parse ( s . AltMarketSymbol ) ) . ToArray ( ) :
372377 await GetInstrumentIdFromMarketSymbol ( marketSymbols ) ;
@@ -416,6 +421,7 @@ await socket.SendMessageAsync(new MessageFrame
416421
417422 protected override async Task < IWebSocket > OnGetTradesWebSocketAsync ( Func < KeyValuePair < string , ExchangeTrade > , Task > callback , params string [ ] marketSymbols )
418423 {
424+ await EnsureInstrumentIdsAvailable ( ) ;
419425 var instrumentIds = marketSymbols == null || marketSymbols . Length == 0 ?
420426 ( await GetMarketSymbolsMetadataAsync ( ) ) . Select ( s => ( long ? ) long . Parse ( s . AltMarketSymbol ) ) . ToArray ( ) :
421427 await GetInstrumentIdFromMarketSymbol ( marketSymbols ) ;
0 commit comments