diff --git a/src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs b/src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs index d94d245a..e8f1762c 100644 --- a/src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs +++ b/src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs @@ -53,7 +53,7 @@ protected BinanceGroupCommon() NonceStyle = NonceStyle.UnixMilliseconds; NonceOffset = TimeSpan.FromSeconds(15); // 15 seconds are deducted from current UTCTime as base of the request time window MarketSymbolSeparator = string.Empty; - MarketSymbolIsUppercase = false; + MarketSymbolIsUppercase = true; WebSocketOrderBookType = WebSocketOrderBookType.DeltasOnly; ExchangeGlobalCurrencyReplacements["BCC"] = "BCH"; } @@ -275,6 +275,11 @@ protected override async Task OnGetTradesWebSocketAsync(Func 400) + { + marketSymbols = marketSymbols.Take(400).ToArray(); + Logger.Warn("subscribing to the first 400 symbols"); // binance does not allow subscribing to more than 400 symbols at a time + } string url = await GetWebSocketStreamUrlForSymbolsAsync("@aggTrade", marketSymbols); return await ConnectPublicWebSocketAsync(url, messageCallback: async (_socket, msg) => { @@ -302,7 +307,7 @@ protected override async Task OnGetDeltaOrderBookWebSocketAsync(Acti return await ConnectPublicWebSocketAsync($"/stream?streams={combined}", (_socket, msg) => { string json = msg.ToStringFromUTF8(); - var update = JsonConvert.DeserializeObject(json); + var update = JsonConvert.DeserializeObject(json, SerializerSettings); string marketSymbol = update.Data.MarketSymbol; ExchangeOrderBook book = new ExchangeOrderBook { SequenceId = update.Data.FinalUpdate, MarketSymbol = marketSymbol, LastUpdatedUtc = CryptoUtility.UnixTimeStampToDateTimeMilliseconds(update.Data.EventTime) }; foreach (List ask in update.Data.Asks) @@ -1091,7 +1096,7 @@ protected override async Task OnUserDataWebSocketAsync(Action(token.ToStringInvariant()); + var update = JsonConvert.DeserializeObject(token.ToStringInvariant(), SerializerSettings); switch (update.CurrentExecutionType) { case "NEW ": // The order has been accepted into the engine. @@ -1115,7 +1120,7 @@ protected override async Task OnUserDataWebSocketAsync(Action(token.ToStringInvariant()); + var update = JsonConvert.DeserializeObject(token.ToStringInvariant(), SerializerSettings); callback(new ExchangeBalances() { EventTime = CryptoUtility.UnixTimeStampToDateTimeMilliseconds(update.EventTime), @@ -1138,7 +1143,7 @@ protected override async Task OnUserDataWebSocketAsync(Action(token.ToStringInvariant()); + var update = JsonConvert.DeserializeObject(token.ToStringInvariant(), SerializerSettings); callback(new ExchangeBalances() { EventTime = CryptoUtility.UnixTimeStampToDateTimeMilliseconds(update.EventTime), diff --git a/src/ExchangeSharp/API/Exchanges/BinanceGroup/ExchangeBinanceAPI.cs b/src/ExchangeSharp/API/Exchanges/BinanceGroup/ExchangeBinanceAPI.cs index 67c449c4..81221609 100644 --- a/src/ExchangeSharp/API/Exchanges/BinanceGroup/ExchangeBinanceAPI.cs +++ b/src/ExchangeSharp/API/Exchanges/BinanceGroup/ExchangeBinanceAPI.cs @@ -18,11 +18,6 @@ public sealed class ExchangeBinanceAPI : BinanceGroupCommon { public override string BaseUrl { get; set; } = "https://api.binance.com"; public override string BaseUrlWebSocket { get; set; } = "wss://stream.binance.com:9443"; - - private ExchangeBinanceAPI() - { - MarketSymbolIsUppercase = true; - } } public partial class ExchangeName { public const string Binance = "Binance"; }