@@ -53,7 +53,7 @@ protected BinanceGroupCommon()
53
53
NonceStyle = NonceStyle . UnixMilliseconds ;
54
54
NonceOffset = TimeSpan . FromSeconds ( 15 ) ; // 15 seconds are deducted from current UTCTime as base of the request time window
55
55
MarketSymbolSeparator = string . Empty ;
56
- MarketSymbolIsUppercase = false ;
56
+ MarketSymbolIsUppercase = true ;
57
57
WebSocketOrderBookType = WebSocketOrderBookType . DeltasOnly ;
58
58
ExchangeGlobalCurrencyReplacements [ "BCC" ] = "BCH" ;
59
59
}
@@ -275,6 +275,11 @@ protected override async Task<IWebSocket> OnGetTradesWebSocketAsync(Func<KeyValu
275
275
{
276
276
marketSymbols = ( await GetMarketSymbolsAsync ( ) ) . ToArray ( ) ;
277
277
}
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
+ }
278
283
string url = await GetWebSocketStreamUrlForSymbolsAsync ( "@aggTrade" , marketSymbols ) ;
279
284
return await ConnectPublicWebSocketAsync ( url , messageCallback : async ( _socket , msg ) =>
280
285
{
@@ -302,7 +307,7 @@ protected override async Task<IWebSocket> OnGetDeltaOrderBookWebSocketAsync(Acti
302
307
return await ConnectPublicWebSocketAsync ( $ "/stream?streams={ combined } ", ( _socket , msg ) =>
303
308
{
304
309
string json = msg . ToStringFromUTF8 ( ) ;
305
- var update = JsonConvert . DeserializeObject < MultiDepthStream > ( json ) ;
310
+ var update = JsonConvert . DeserializeObject < MultiDepthStream > ( json , SerializerSettings ) ;
306
311
string marketSymbol = update . Data . MarketSymbol ;
307
312
ExchangeOrderBook book = new ExchangeOrderBook { SequenceId = update . Data . FinalUpdate , MarketSymbol = marketSymbol , LastUpdatedUtc = CryptoUtility . UnixTimeStampToDateTimeMilliseconds ( update . Data . EventTime ) } ;
308
313
foreach ( List < object > ask in update . Data . Asks )
@@ -1091,7 +1096,7 @@ protected override async Task<IWebSocket> OnUserDataWebSocketAsync(Action<object
1091
1096
{
1092
1097
case "executionReport" : // systematically check to make sure we are dealing with expected cases here
1093
1098
{
1094
- var update = JsonConvert . DeserializeObject < ExecutionReport > ( token . ToStringInvariant ( ) ) ;
1099
+ var update = JsonConvert . DeserializeObject < ExecutionReport > ( token . ToStringInvariant ( ) , SerializerSettings ) ;
1095
1100
switch ( update . CurrentExecutionType )
1096
1101
{
1097
1102
case "NEW " : // The order has been accepted into the engine.
@@ -1115,7 +1120,7 @@ protected override async Task<IWebSocket> OnUserDataWebSocketAsync(Action<object
1115
1120
throw new NotImplementedException ( "has been removed (per binance 2021-01-01)" ) ;
1116
1121
case "outboundAccountPosition" :
1117
1122
{
1118
- var update = JsonConvert . DeserializeObject < OutboundAccount > ( token . ToStringInvariant ( ) ) ;
1123
+ var update = JsonConvert . DeserializeObject < OutboundAccount > ( token . ToStringInvariant ( ) , SerializerSettings ) ;
1119
1124
callback ( new ExchangeBalances ( )
1120
1125
{
1121
1126
EventTime = CryptoUtility . UnixTimeStampToDateTimeMilliseconds ( update . EventTime ) ,
@@ -1138,7 +1143,7 @@ protected override async Task<IWebSocket> OnUserDataWebSocketAsync(Action<object
1138
1143
}
1139
1144
case "balanceUpdate" :
1140
1145
{
1141
- var update = JsonConvert . DeserializeObject < BalanceUpdate > ( token . ToStringInvariant ( ) ) ;
1146
+ var update = JsonConvert . DeserializeObject < BalanceUpdate > ( token . ToStringInvariant ( ) , SerializerSettings ) ;
1142
1147
callback ( new ExchangeBalances ( )
1143
1148
{
1144
1149
EventTime = CryptoUtility . UnixTimeStampToDateTimeMilliseconds ( update . EventTime ) ,
0 commit comments