@@ -53,7 +53,7 @@ protected BinanceGroupCommon()
5353 NonceStyle = NonceStyle . UnixMilliseconds ;
5454 NonceOffset = TimeSpan . FromSeconds ( 15 ) ; // 15 seconds are deducted from current UTCTime as base of the request time window
5555 MarketSymbolSeparator = string . Empty ;
56- MarketSymbolIsUppercase = false ;
56+ MarketSymbolIsUppercase = true ;
5757 WebSocketOrderBookType = WebSocketOrderBookType . DeltasOnly ;
5858 ExchangeGlobalCurrencyReplacements [ "BCC" ] = "BCH" ;
5959 }
@@ -275,6 +275,11 @@ protected override async Task<IWebSocket> OnGetTradesWebSocketAsync(Func<KeyValu
275275 {
276276 marketSymbols = ( await GetMarketSymbolsAsync ( ) ) . ToArray ( ) ;
277277 }
278+ if ( marketSymbols . Length > 400 )
279+ {
280+ marketSymbols = marketSymbols . Take ( 400 ) . ToArray ( ) ;
281+ Logger . Warn ( "subscribing to the first 400 symbols" ) ; // binance does not allow subscribing to more than 400 symbols at a time
282+ }
278283 string url = await GetWebSocketStreamUrlForSymbolsAsync ( "@aggTrade" , marketSymbols ) ;
279284 return await ConnectPublicWebSocketAsync ( url , messageCallback : async ( _socket , msg ) =>
280285 {
@@ -302,7 +307,7 @@ protected override async Task<IWebSocket> OnGetDeltaOrderBookWebSocketAsync(Acti
302307 return await ConnectPublicWebSocketAsync ( $ "/stream?streams={ combined } ", ( _socket , msg ) =>
303308 {
304309 string json = msg . ToStringFromUTF8 ( ) ;
305- var update = JsonConvert . DeserializeObject < MultiDepthStream > ( json ) ;
310+ var update = JsonConvert . DeserializeObject < MultiDepthStream > ( json , SerializerSettings ) ;
306311 string marketSymbol = update . Data . MarketSymbol ;
307312 ExchangeOrderBook book = new ExchangeOrderBook { SequenceId = update . Data . FinalUpdate , MarketSymbol = marketSymbol , LastUpdatedUtc = CryptoUtility . UnixTimeStampToDateTimeMilliseconds ( update . Data . EventTime ) } ;
308313 foreach ( List < object > ask in update . Data . Asks )
@@ -1091,7 +1096,7 @@ protected override async Task<IWebSocket> OnUserDataWebSocketAsync(Action<object
10911096 {
10921097 case "executionReport" : // systematically check to make sure we are dealing with expected cases here
10931098 {
1094- var update = JsonConvert . DeserializeObject < ExecutionReport > ( token . ToStringInvariant ( ) ) ;
1099+ var update = JsonConvert . DeserializeObject < ExecutionReport > ( token . ToStringInvariant ( ) , SerializerSettings ) ;
10951100 switch ( update . CurrentExecutionType )
10961101 {
10971102 case "NEW " : // The order has been accepted into the engine.
@@ -1115,7 +1120,7 @@ protected override async Task<IWebSocket> OnUserDataWebSocketAsync(Action<object
11151120 throw new NotImplementedException ( "has been removed (per binance 2021-01-01)" ) ;
11161121 case "outboundAccountPosition" :
11171122 {
1118- var update = JsonConvert . DeserializeObject < OutboundAccount > ( token . ToStringInvariant ( ) ) ;
1123+ var update = JsonConvert . DeserializeObject < OutboundAccount > ( token . ToStringInvariant ( ) , SerializerSettings ) ;
11191124 callback ( new ExchangeBalances ( )
11201125 {
11211126 EventTime = CryptoUtility . UnixTimeStampToDateTimeMilliseconds ( update . EventTime ) ,
@@ -1138,7 +1143,7 @@ protected override async Task<IWebSocket> OnUserDataWebSocketAsync(Action<object
11381143 }
11391144 case "balanceUpdate" :
11401145 {
1141- var update = JsonConvert . DeserializeObject < BalanceUpdate > ( token . ToStringInvariant ( ) ) ;
1146+ var update = JsonConvert . DeserializeObject < BalanceUpdate > ( token . ToStringInvariant ( ) , SerializerSettings ) ;
11421147 callback ( new ExchangeBalances ( )
11431148 {
11441149 EventTime = CryptoUtility . UnixTimeStampToDateTimeMilliseconds ( update . EventTime ) ,
0 commit comments