Skip to content

Commit 855600f

Browse files
authored
fix GetFullOrderBookWebSocketAsync data inconsistency (#714)
1 parent a1c8ef0 commit 855600f

File tree

17 files changed

+51
-53
lines changed

17 files changed

+51
-53
lines changed

src/ExchangeSharp/API/Exchanges/BinanceGroup/BinanceGroupCommon.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ protected override async Task<IWebSocket> OnGetDeltaOrderBookWebSocketAsync(Acti
308308
protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string marketSymbol, int maxCount = 100)
309309
{
310310
JToken obj = await MakeJsonRequestAsync<JToken>($"/depth?symbol={marketSymbol}&limit={maxCount}", BaseUrlApi);
311-
return ExchangeAPIExtensions.ParseOrderBookFromJTokenArrays(obj, sequence: "lastUpdateId", maxCount: maxCount);
311+
return obj.ParseOrderBookFromJTokenArrays(sequence: "lastUpdateId");
312312
}
313313

314314
protected override async Task OnGetHistoricalTradesAsync(Func<IEnumerable<ExchangeTrade>, bool> callback, string marketSymbol, DateTime? startDate = null, DateTime? endDate = null, int? limit = null)

src/ExchangeSharp/API/Exchanges/Bithumb/ExchangeBithumbAPI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ protected override async Task<IEnumerable<KeyValuePair<string, ExchangeTicker>>>
151151
protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string marketSymbol, int maxCount = 100)
152152
{
153153
var data = await MakeRequestBithumbAsync(marketSymbol, "/public/orderbook/$SYMBOL$");
154-
return ExchangeAPIExtensions.ParseOrderBookFromJTokenDictionaries(data.Item1, amount: "quantity", sequence: "timestamp", maxCount: maxCount);
154+
return data.Item1.ParseOrderBookFromJTokenDictionaries(amount: "quantity", sequence: "timestamp");
155155
}
156156

157157
protected override async Task<IEnumerable<KeyValuePair<string, ExchangeOrderBook>>> OnGetOrderBooksAsync(int maxCount = 100)

src/ExchangeSharp/API/Exchanges/Bitstamp/ExchangeBitstampAPI.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ protected override async Task<ExchangeTicker> OnGetTickerAsync(string marketSymb
133133
protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string marketSymbol, int maxCount = 100)
134134
{
135135
JToken token = await MakeBitstampRequestAsync("/order_book/" + marketSymbol);
136-
return ExchangeAPIExtensions.ParseOrderBookFromJTokenArrays(token, maxCount: maxCount);
136+
return token.ParseOrderBookFromJTokenArrays();
137137
}
138138

139139
protected override async Task OnGetHistoricalTradesAsync(Func<IEnumerable<ExchangeTrade>, bool> callback, string marketSymbol, DateTime? startDate = null, DateTime? endDate = null, int? limit = null)
@@ -254,7 +254,7 @@ protected override async Task<ExchangeOrderResult> OnGetOrderDetailsAsync(string
254254
// status can be 'Canceled', 'Open' or 'Finished'
255255
var statusCode = result.Value<string>("status");
256256
var status = GetOrderResultFromStatus(statusCode, anyTransaction);
257-
257+
258258
// empty transaction array means that order is InQueue or Open and AmountFilled == 0
259259
// return empty order in this case. no any additional info available at this point
260260
if (!anyTransaction)

src/ExchangeSharp/API/Exchanges/Bittrex/ExchangeBittrexAPI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string mark
271271
}
272272

273273
JToken token = await MakeJsonRequestAsync<JToken>("/markets/" + marketSymbol + "/orderbook" + "?depth=" + maxCount);
274-
return ExchangeAPIExtensions.ParseOrderBookFromJTokenDictionaries(token, "ask", "bid", "rate", "quantity", maxCount: maxCount);
274+
return token.ParseOrderBookFromJTokenDictionaries("ask", "bid", "rate", "quantity");
275275
}
276276

277277
/// <summary>Gets the deposit history for a symbol</summary>

src/ExchangeSharp/API/Exchanges/Coinbase/ExchangeCoinbaseAPI.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -586,7 +586,7 @@ protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string mark
586586
{
587587
string url = "/products/" + marketSymbol.ToUpperInvariant() + "/book?level=2";
588588
JToken token = await MakeJsonRequestAsync<JToken>(url);
589-
return ExchangeAPIExtensions.ParseOrderBookFromJTokenArrays(token, maxCount: maxCount);
589+
return token.ParseOrderBookFromJTokenArrays();
590590
}
591591

592592
protected override async Task<IEnumerable<MarketCandle>> OnGetCandlesAsync(string marketSymbol, int periodSeconds, DateTime? startDate = null, DateTime? endDate = null, int? limit = null)
@@ -661,7 +661,7 @@ protected override async Task<Dictionary<string, decimal>> OnGetFeesAsync()
661661
JObject token = await MakeJsonRequestAsync<JObject>("/fees", null, await GetNoncePayloadAsync(), "GET");
662662
/*
663663
* We can chose between maker and taker fee, but currently ExchangeSharp only supports 1 fee rate per symbol.
664-
* Here, we choose taker fee, which are usually higher
664+
* Here, we choose taker fee, which are usually higher
665665
*/
666666
decimal makerRate = token["taker_fee_rate"].Value<decimal>(); //percentage between 0 and 1
667667

src/ExchangeSharp/API/Exchanges/Digifinex/ExchangeDigifinexAPI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ protected override async Task<ExchangeTicker> OnGetTickerAsync(string marketSymb
211211
protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string marketSymbol, int maxCount = 100)
212212
{
213213
JToken obj = await MakeJsonRequestAsync<JToken>($"/order_book?symbol={marketSymbol}&limit={maxCount}");
214-
var result = ExchangeAPIExtensions.ParseOrderBookFromJTokenArrays(obj, sequence: "date", maxCount: maxCount);
214+
var result = obj.ParseOrderBookFromJTokenArrays(sequence: "date");
215215
result.LastUpdatedUtc = CryptoUtility.UnixTimeStampToDateTimeSeconds(obj["date"].ConvertInvariant<long>());
216216
result.MarketSymbol = marketSymbol;
217217
return result;

src/ExchangeSharp/API/Exchanges/FTX/ExchangeFTXAPI.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,10 @@ protected async override Task<IEnumerable<ExchangeOrderResult>> OnGetOpenOrderDe
270270
{
271271
continue;
272272
}
273-
273+
274274
markets.Add(ParseOrder(token));
275275
}
276-
276+
277277
return markets;
278278
}
279279

@@ -282,7 +282,7 @@ protected async override Task<ExchangeOrderBook> OnGetOrderBookAsync(string mark
282282
{
283283
JToken response = await MakeJsonRequestAsync<JToken>($"/markets/{marketSymbol}/orderbook?depth={maxCount}");
284284

285-
return ExchangeAPIExtensions.ParseOrderBookFromJTokenArrays(response, maxCount: maxCount);
285+
return response.ParseOrderBookFromJTokenArrays();
286286
}
287287

288288
/// <inheritdoc />
@@ -519,8 +519,8 @@ private ExchangeOrderResult ParseOrder(JToken token)
519519
AmountFilled = token["filledSize"].ConvertInvariant<decimal>(),
520520
ClientOrderId = token["clientId"].ToStringInvariant(),
521521
Result = token["status"].ToStringInvariant().ToExchangeAPIOrderResult(token["size"].ConvertInvariant<decimal>() - token["filledSize"].ConvertInvariant<decimal>()),
522-
ResultCode = token["status"].ToStringInvariant()
523-
};
522+
ResultCode = token["status"].ToStringInvariant()
523+
};
524524
}
525525

526526
#endregion

src/ExchangeSharp/API/Exchanges/GateIo/ExchangeGateIoAPI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string symb
206206
}
207207
*/
208208

209-
var orderBook = ExchangeAPIExtensions.ParseOrderBookFromJTokenArrays(json, sequence: "current", maxCount: maxCount);
209+
var orderBook = json.ParseOrderBookFromJTokenArrays(sequence: "current");
210210
orderBook.LastUpdatedUtc = CryptoUtility.UnixTimeStampToDateTimeMilliseconds(json["current"].ConvertInvariant<long>());
211211
return orderBook;
212212
}

src/ExchangeSharp/API/Exchanges/Gemini/ExchangeGeminiAPI.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ protected override async Task<ExchangeTicker> OnGetTickerAsync(string marketSymb
248248
protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string marketSymbol, int maxCount = 100)
249249
{
250250
JToken obj = await MakeJsonRequestAsync<JToken>("/book/" + marketSymbol + "?limit_bids=" + maxCount + "&limit_asks=" + maxCount);
251-
return ExchangeAPIExtensions.ParseOrderBookFromJTokenDictionaries(obj, maxCount: maxCount);
251+
return obj.ParseOrderBookFromJTokenDictionaries();
252252
}
253253

254254
protected override async Task OnGetHistoricalTradesAsync(Func<IEnumerable<ExchangeTrade>, bool> callback, string marketSymbol, DateTime? startDate = null, DateTime? endDate = null, int? limit = null)

src/ExchangeSharp/API/Exchanges/Hitbtc/ExchangeHitbtcAPI.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ protected override async Task<IEnumerable<ExchangeTrade>> OnGetRecentTradesAsync
186186
protected override async Task<ExchangeOrderBook> OnGetOrderBookAsync(string marketSymbol, int maxCount = 100)
187187
{
188188
JToken token = await MakeJsonRequestAsync<JToken>("/public/orderbook/" + marketSymbol + "?limit=" + maxCount.ToStringInvariant());
189-
return ExchangeAPIExtensions.ParseOrderBookFromJTokenDictionaries(token, asks: "ask", bids: "bid", amount: "size", maxCount: maxCount);
189+
return token.ParseOrderBookFromJTokenDictionaries(asks: "ask", bids: "bid", amount: "size");
190190
}
191191

192192
protected override async Task OnGetHistoricalTradesAsync(Func<IEnumerable<ExchangeTrade>, bool> callback, string marketSymbol, DateTime? startDate = null, DateTime? endDate = null, int? limit = null)
@@ -195,11 +195,11 @@ protected override async Task OnGetHistoricalTradesAsync(Func<IEnumerable<Exchan
195195
// TODO: Can't get Hitbtc to return other than the last 50 trades even though their API says it should (by orderid or timestamp). When passing either of these parms, it still returns the last 50
196196
// So until there is an update, that's what we'll go with
197197
// UPDATE: 2020/01/19 https://api.hitbtc.com/ GET /api/2/public/trades/{symbol} limit default: 100 max value:1000
198-
//
198+
//
199199
//var maxRequestLimit = 1000; //hard coded for now, should add limit as an argument
200-
var maxRequestLimit = (limit == null || limit < 1 || limit > 1000) ? 1000 : (int)limit;
200+
var maxRequestLimit = (limit == null || limit < 1 || limit > 1000) ? 1000 : (int)limit;
201201
//note that sort must come after limit, else returns default 100 trades, sort default is DESC
202-
JToken obj = await MakeJsonRequestAsync<JToken>("/public/trades/" + marketSymbol + "?limit=" + maxRequestLimit + "?sort=DESC");
202+
JToken obj = await MakeJsonRequestAsync<JToken>("/public/trades/" + marketSymbol + "?limit=" + maxRequestLimit + "?sort=DESC");
203203
//JToken obj = await MakeJsonRequestAsync<JToken>("/public/trades/" + marketSymbol);
204204
if (obj.HasValues)
205205
{

0 commit comments

Comments
 (0)