ccxt 4.0.99 → 4.0.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +224 -0
  2. package/README.md +3 -3
  3. package/dist/ccxt.browser.js +88 -85
  4. package/dist/ccxt.browser.min.js +2 -2
  5. package/dist/cjs/ccxt.js +1 -1
  6. package/dist/cjs/src/base/Exchange.js +6 -1
  7. package/dist/cjs/src/deribit.js +3 -3
  8. package/dist/cjs/src/lbank2.js +2 -2
  9. package/dist/cjs/src/okx.js +5 -5
  10. package/dist/cjs/src/pro/ascendex.js +2 -2
  11. package/dist/cjs/src/pro/binance.js +11 -11
  12. package/dist/cjs/src/pro/bitfinex2.js +5 -5
  13. package/dist/cjs/src/pro/bitget.js +5 -5
  14. package/dist/cjs/src/pro/bitmex.js +2 -2
  15. package/dist/cjs/src/pro/bittrex.js +2 -2
  16. package/dist/cjs/src/pro/bitvavo.js +2 -2
  17. package/dist/cjs/src/pro/bybit.js +2 -2
  18. package/dist/cjs/src/pro/coinbase.js +5 -6
  19. package/dist/cjs/src/pro/cryptocom.js +4 -4
  20. package/dist/cjs/src/pro/currencycom.js +3 -3
  21. package/dist/cjs/src/pro/hitbtc.js +4 -4
  22. package/dist/cjs/src/pro/huobi.js +7 -8
  23. package/dist/cjs/src/pro/phemex.js +2 -2
  24. package/dist/cjs/src/pro/poloniex.js +6 -6
  25. package/dist/cjs/src/pro/whitebit.js +7 -7
  26. package/dist/cjs/src/probit.js +2 -2
  27. package/js/ccxt.d.ts +1 -1
  28. package/js/ccxt.js +1 -1
  29. package/js/src/base/Exchange.js +6 -1
  30. package/js/src/deribit.js +3 -3
  31. package/js/src/lbank2.js +2 -2
  32. package/js/src/okx.js +5 -5
  33. package/js/src/pro/ascendex.js +2 -2
  34. package/js/src/pro/binance.js +11 -11
  35. package/js/src/pro/bitfinex2.js +5 -5
  36. package/js/src/pro/bitget.js +5 -5
  37. package/js/src/pro/bitmex.js +2 -2
  38. package/js/src/pro/bittrex.js +2 -2
  39. package/js/src/pro/bitvavo.js +2 -2
  40. package/js/src/pro/bybit.js +2 -2
  41. package/js/src/pro/coinbase.js +5 -6
  42. package/js/src/pro/cryptocom.js +4 -4
  43. package/js/src/pro/currencycom.js +3 -3
  44. package/js/src/pro/hitbtc.js +4 -4
  45. package/js/src/pro/huobi.js +7 -8
  46. package/js/src/pro/phemex.js +2 -2
  47. package/js/src/pro/poloniex.js +6 -6
  48. package/js/src/pro/whitebit.js +7 -7
  49. package/js/src/probit.js +2 -2
  50. package/package.json +1 -1
@@ -8207,7 +8207,12 @@ class Exchange {
8207
8207
  const oldNumber = this.number;
8208
8208
  // we parse trades as strings here!
8209
8209
  this.number = String;
8210
- trades = this.parseTrades(rawTrades, market);
8210
+ const firstTrade = this.safeValue(rawTrades, 0);
8211
+ // parse trades if they haven't already been parsed
8212
+ const tradesAreParsed = ((firstTrade !== undefined) && ('info' in firstTrade) && ('id' in firstTrade));
8213
+ if (!tradesAreParsed) {
8214
+ trades = this.parseTrades(rawTrades, market);
8215
+ }
8211
8216
  this.number = oldNumber;
8212
8217
  let tradesLength = 0;
8213
8218
  const isArray = Array.isArray(trades);
@@ -107103,12 +107108,12 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
107103
107108
  const result = [];
107104
107109
  for (let i = 0; i < volatilityResult.length; i++) {
107105
107110
  const timestamp = this.safeInteger(volatilityResult[i], 0);
107106
- const volatility = this.safeNumber(volatilityResult[i], 1);
107111
+ const volatilityObj = this.safeNumber(volatilityResult[i], 1);
107107
107112
  result.push({
107108
- 'info': volatility,
107113
+ 'info': volatilityObj,
107109
107114
  'timestamp': timestamp,
107110
107115
  'datetime': this.iso8601(timestamp),
107111
- 'volatility': volatility,
107116
+ 'volatility': volatilityObj,
107112
107117
  });
107113
107118
  }
107114
107119
  return result;
@@ -156080,8 +156085,8 @@ class lbank2 extends _abstract_lbank2_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
156080
156085
  await this.loadMarkets();
156081
156086
  const market = this.market(symbol);
156082
156087
  if (market['swap']) {
156083
- const response = await this.fetchTickers([market['symbol']], params);
156084
- return this.safeValue(response, market['symbol']);
156088
+ const responseForSwap = await this.fetchTickers([market['symbol']], params);
156089
+ return this.safeValue(responseForSwap, market['symbol']);
156085
156090
  }
156086
156091
  const request = {
156087
156092
  'symbol': market['id'],
@@ -177164,13 +177169,13 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
177164
177169
  promises.push(this.publicGetPublicInstruments(this.extend(request, params)));
177165
177170
  }
177166
177171
  const promisesResult = await Promise.all(promises);
177167
- let data = [];
177172
+ let markets = [];
177168
177173
  for (let i = 0; i < promisesResult.length; i++) {
177169
177174
  const res = this.safeValue(promisesResult, i, {});
177170
177175
  const options = this.safeValue(res, 'data', []);
177171
- data = this.arrayConcat(data, options);
177176
+ markets = this.arrayConcat(markets, options);
177172
177177
  }
177173
- return this.parseMarkets(data);
177178
+ return this.parseMarkets(markets);
177174
177179
  }
177175
177180
  const response = await this.publicGetPublicInstruments(this.extend(request, params));
177176
177181
  //
@@ -182429,8 +182434,8 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
182429
182434
  const entry = settlements[i];
182430
182435
  const timestamp = this.safeInteger(entry, 'ts');
182431
182436
  const details = this.safeValue(entry, 'details', []);
182432
- for (let i = 0; i < details.length; i++) {
182433
- const settlement = this.parseSettlement(details[i], market);
182437
+ for (let j = 0; j < details.length; j++) {
182438
+ const settlement = this.parseSettlement(details[j], market);
182434
182439
  result.push(this.extend(settlement, {
182435
182440
  'timestamp': timestamp,
182436
182441
  'datetime': this.iso8601(timestamp),
@@ -192623,8 +192628,8 @@ class ascendex extends _ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
192623
192628
  // unroll the accumulated deltas
192624
192629
  const messages = orderbook.cache;
192625
192630
  for (let i = 0; i < messages.length; i++) {
192626
- const message = messages[i];
192627
- this.handleOrderBookMessage(client, message, orderbook);
192631
+ const messageItem = messages[i];
192632
+ this.handleOrderBookMessage(client, messageItem, orderbook);
192628
192633
  }
192629
192634
  this.orderbooks[symbol] = orderbook;
192630
192635
  client.resolve(orderbook, messageHash);
@@ -193653,10 +193658,10 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
193653
193658
  // unroll the accumulated deltas
193654
193659
  const messages = orderbook.cache;
193655
193660
  for (let i = 0; i < messages.length; i++) {
193656
- const message = messages[i];
193657
- const U = this.safeInteger(message, 'U');
193658
- const u = this.safeInteger(message, 'u');
193659
- const pu = this.safeInteger(message, 'pu');
193661
+ const messageItem = messages[i];
193662
+ const U = this.safeInteger(messageItem, 'U');
193663
+ const u = this.safeInteger(messageItem, 'u');
193664
+ const pu = this.safeInteger(messageItem, 'pu');
193660
193665
  if (type === 'future') {
193661
193666
  // 4. Drop any event where u is < lastUpdateId in the snapshot
193662
193667
  if (u < orderbook['nonce']) {
@@ -193664,7 +193669,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
193664
193669
  }
193665
193670
  // 5. The first processed event should have U <= lastUpdateId AND u >= lastUpdateId
193666
193671
  if ((U <= orderbook['nonce']) && (u >= orderbook['nonce']) || (pu === orderbook['nonce'])) {
193667
- this.handleOrderBookMessage(client, message, orderbook);
193672
+ this.handleOrderBookMessage(client, messageItem, orderbook);
193668
193673
  }
193669
193674
  }
193670
193675
  else {
@@ -193674,7 +193679,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
193674
193679
  }
193675
193680
  // 5. The first processed event should have U <= lastUpdateId+1 AND u >= lastUpdateId+1
193676
193681
  if (((U - 1) <= orderbook['nonce']) && ((u - 1) >= orderbook['nonce'])) {
193677
- this.handleOrderBookMessage(client, message, orderbook);
193682
+ this.handleOrderBookMessage(client, messageItem, orderbook);
193678
193683
  }
193679
193684
  }
193680
193685
  }
@@ -193815,8 +193820,8 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
193815
193820
  handleOrderBookSubscription(client, message, subscription) {
193816
193821
  const defaultLimit = this.safeInteger(this.options, 'watchOrderBookLimit', 1000);
193817
193822
  // const messageHash = this.safeString (subscription, 'messageHash');
193818
- const symbol = this.safeString(subscription, 'symbol'); // watchOrderBook
193819
- const symbols = this.safeValue(subscription, 'symbols', [symbol]); // watchOrderBookForSymbols
193823
+ const symbolOfSubscription = this.safeString(subscription, 'symbol'); // watchOrderBook
193824
+ const symbols = this.safeValue(subscription, 'symbols', [symbolOfSubscription]); // watchOrderBookForSymbols
193820
193825
  const limit = this.safeInteger(subscription, 'limit', defaultLimit);
193821
193826
  // handle list of symbols
193822
193827
  for (let i = 0; i < symbols.length; i++) {
@@ -194523,12 +194528,12 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
194523
194528
  client.resolve(result, '!' + 'bookTicker@arr');
194524
194529
  const messageHashes = this.findMessageHashes(client, 'tickers::');
194525
194530
  for (let i = 0; i < messageHashes.length; i++) {
194526
- const messageHash = messageHashes[i];
194527
- const parts = messageHash.split('::');
194531
+ const currentMessageHash = messageHashes[i];
194532
+ const parts = currentMessageHash.split('::');
194528
194533
  const symbolsString = parts[1];
194529
194534
  const symbols = symbolsString.split(',');
194530
194535
  if (this.inArray(symbol, symbols)) {
194531
- client.resolve(result, messageHash);
194536
+ client.resolve(result, currentMessageHash);
194532
194537
  }
194533
194538
  }
194534
194539
  }
@@ -197434,9 +197439,9 @@ class bitfinex2 extends _bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
197434
197439
  const size = (delta[2] < 0) ? -delta[2] : delta[2];
197435
197440
  const side = (delta[2] < 0) ? 'asks' : 'bids';
197436
197441
  const bookside = orderbook[side];
197437
- const id = this.safeString(delta, 0);
197442
+ const idString = this.safeString(delta, 0);
197438
197443
  const price = this.safeFloat(delta, 1);
197439
- bookside.store(price, size, id);
197444
+ bookside.store(price, size, idString);
197440
197445
  }
197441
197446
  }
197442
197447
  else {
@@ -197456,12 +197461,12 @@ class bitfinex2 extends _bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
197456
197461
  }
197457
197462
  else {
197458
197463
  const deltas = message[1];
197459
- const orderbook = this.orderbooks[symbol];
197464
+ const orderbookItem = this.orderbooks[symbol];
197460
197465
  if (isRaw) {
197461
197466
  const price = this.safeString(deltas, 1);
197462
197467
  const size = (deltas[2] < 0) ? -deltas[2] : deltas[2];
197463
197468
  const side = (deltas[2] < 0) ? 'asks' : 'bids';
197464
- const bookside = orderbook[side];
197469
+ const bookside = orderbookItem[side];
197465
197470
  // price = 0 means that you have to remove the order from your book
197466
197471
  const amount = _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__/* .Precise.stringGt */ .O.stringGt(price, '0') ? size : '0';
197467
197472
  bookside.store(this.parseNumber(price), this.parseNumber(amount), id);
@@ -197472,7 +197477,7 @@ class bitfinex2 extends _bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
197472
197477
  const price = this.safeString(deltas, 0);
197473
197478
  const size = _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__/* .Precise.stringLt */ .O.stringLt(amount, '0') ? _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__/* .Precise.stringNeg */ .O.stringNeg(amount) : amount;
197474
197479
  const side = _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__/* .Precise.stringLt */ .O.stringLt(amount, '0') ? 'asks' : 'bids';
197475
- const bookside = orderbook[side];
197480
+ const bookside = orderbookItem[side];
197476
197481
  bookside.store(this.parseNumber(price), this.parseNumber(size), this.parseNumber(counter));
197477
197482
  }
197478
197483
  client.resolve(orderbook, messageHash);
@@ -198297,10 +198302,10 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
198297
198302
  const hashes = [];
198298
198303
  for (let i = 0; i < symbolsAndTimeframes.length; i++) {
198299
198304
  const data = symbolsAndTimeframes[i];
198300
- const symbol = this.safeString(data, 0);
198301
- const timeframe = this.safeString(data, 1);
198302
- const market = this.market(symbol);
198303
- const interval = this.safeString(this.options['timeframes'], timeframe);
198305
+ const currentSymbol = this.safeString(data, 0);
198306
+ const currentTimeframe = this.safeString(data, 1);
198307
+ const market = this.market(currentSymbol);
198308
+ const interval = this.safeString(this.options['timeframes'], currentTimeframe);
198304
198309
  const instType = market['spot'] ? 'sp' : 'mc';
198305
198310
  const args = {
198306
198311
  'instType': instType,
@@ -198308,7 +198313,7 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
198308
198313
  'instId': this.getWsMarketId(market),
198309
198314
  };
198310
198315
  topics.push(args);
198311
- hashes.push(symbol + '#' + timeframe);
198316
+ hashes.push(currentSymbol + '#' + currentSymbol);
198312
198317
  }
198313
198318
  const messageHash = 'multipleOHLCV::' + hashes.join(',');
198314
198319
  const [symbol, timeframe, stored] = await this.watchPublicMultiple(messageHash, topics, params);
@@ -201039,8 +201044,8 @@ class bitmex extends _bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
201039
201044
  for (let i = 0; i < symbols.length; i++) {
201040
201045
  const symbol = symbols[i];
201041
201046
  const market = this.market(symbol);
201042
- const messageHash = table + ':' + market['id'];
201043
- topics.push(messageHash);
201047
+ const currentMessageHash = table + ':' + market['id'];
201048
+ topics.push(currentMessageHash);
201044
201049
  }
201045
201050
  const messageHash = 'multipleOrderbook::' + symbols.join(',');
201046
201051
  const url = this.urls['api']['ws'];
@@ -204821,8 +204826,8 @@ class bittrex extends _bittrex_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */
204821
204826
  // unroll the accumulated deltas
204822
204827
  // 3. Playback the cached Level 2 data flow.
204823
204828
  for (let i = 0; i < messages.length; i++) {
204824
- const message = messages[i];
204825
- this.handleOrderBookMessage(client, message, orderbook);
204829
+ const messageItem = messages[i];
204830
+ this.handleOrderBookMessage(client, messageItem, orderbook);
204826
204831
  }
204827
204832
  this.orderbooks[symbol] = orderbook;
204828
204833
  client.resolve(orderbook, messageHash);
@@ -205445,8 +205450,8 @@ class bitvavo extends _bitvavo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
205445
205450
  // unroll the accumulated deltas
205446
205451
  const messages = orderbook.cache;
205447
205452
  for (let i = 0; i < messages.length; i++) {
205448
- const message = messages[i];
205449
- this.handleOrderBookMessage(client, message, orderbook);
205453
+ const messageItem = messages[i];
205454
+ this.handleOrderBookMessage(client, messageItem, orderbook);
205450
205455
  }
205451
205456
  this.orderbooks[symbol] = orderbook;
205452
205457
  client.resolve(orderbook, messageHash);
@@ -207125,8 +207130,8 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
207125
207130
  const topics = [];
207126
207131
  for (let i = 0; i < symbols.length; i++) {
207127
207132
  const symbol = symbols[i];
207128
- const market = this.market(symbol);
207129
- const topic = 'orderbook.' + limit.toString() + '.' + market['id'];
207133
+ const currentMarket = this.market(symbol);
207134
+ const topic = 'orderbook.' + limit.toString() + '.' + currentMarket['id'];
207130
207135
  topics.push(topic);
207131
207136
  }
207132
207137
  const messageHash = 'multipleOrderbook::' + symbols.join(',');
@@ -209870,12 +209875,11 @@ class coinbase extends _coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
209870
209875
  this.trades[symbol] = tradesArray;
209871
209876
  }
209872
209877
  for (let i = 0; i < events.length; i++) {
209873
- const event = events[i];
209874
- const trades = this.safeValue(event, 'trades');
209875
- for (let i = 0; i < trades.length; i++) {
209876
- const item = trades[i];
209877
- const trade = this.parseTrade(item);
209878
- tradesArray.append(trade);
209878
+ const currentEvent = events[i];
209879
+ const currentTrades = this.safeValue(currentEvent, 'trades');
209880
+ for (let j = 0; j < currentTrades.length; j++) {
209881
+ const item = currentTrades[i];
209882
+ tradesArray.append(this.parseTrade(item));
209879
209883
  }
209880
209884
  }
209881
209885
  client.resolve(tradesArray, messageHash);
@@ -212264,8 +212268,8 @@ class cryptocom extends _cryptocom_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
212264
212268
  for (let i = 0; i < symbols.length; i++) {
212265
212269
  const symbol = symbols[i];
212266
212270
  const market = this.market(symbol);
212267
- const messageHash = 'book' + '.' + market['id'];
212268
- topics.push(messageHash);
212271
+ const currentMessageHash = 'book' + '.' + market['id'];
212272
+ topics.push(currentMessageHash);
212269
212273
  }
212270
212274
  const messageHash = 'multipleOrderbooks::' + symbols.join(',');
212271
212275
  const orderbook = await this.watchPublicMultiple(messageHash, topics, params);
@@ -212352,8 +212356,8 @@ class cryptocom extends _cryptocom_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
212352
212356
  for (let i = 0; i < symbols.length; i++) {
212353
212357
  const symbol = symbols[i];
212354
212358
  const market = this.market(symbol);
212355
- const messageHash = 'trade' + '.' + market['id'];
212356
- topics.push(messageHash);
212359
+ const currentMessageHash = 'trade' + '.' + market['id'];
212360
+ topics.push(currentMessageHash);
212357
212361
  }
212358
212362
  const messageHash = 'multipleTrades::' + symbols.join(',');
212359
212363
  const trades = await this.watchPublicMultiple(messageHash, topics, params);
@@ -213525,13 +213529,13 @@ class currencycom extends _currencycom_js__WEBPACK_IMPORTED_MODULE_0__/* ["defau
213525
213529
  const subscription = this.safeValue(subscriptionsById, requestId);
213526
213530
  if (subscription !== undefined) {
213527
213531
  if (status === 'OK') {
213528
- const destination = this.safeString(subscription, 'destination');
213529
- if (destination !== undefined) {
213532
+ const subscriptionDestination = this.safeString(subscription, 'destination');
213533
+ if (subscriptionDestination !== undefined) {
213530
213534
  const methods = {
213531
213535
  '/api/v1/ticker/24hr': this.handleTicker,
213532
213536
  '/api/v1/account': this.handleBalance,
213533
213537
  };
213534
- const method = this.safeValue(methods, destination);
213538
+ const method = this.safeValue(methods, subscriptionDestination);
213535
213539
  if (method === undefined) {
213536
213540
  return message;
213537
213541
  }
@@ -217451,8 +217455,8 @@ class hitbtc extends _hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
217451
217455
  this.trades[symbol] = stored;
217452
217456
  }
217453
217457
  const trades = this.parseWsTrades(data[marketId], market);
217454
- for (let i = 0; i < trades.length; i++) {
217455
- stored.append(trades[i]);
217458
+ for (let j = 0; j < trades.length; j++) {
217459
+ stored.append(trades[j]);
217456
217460
  }
217457
217461
  const messageHash = 'trades::' + symbol;
217458
217462
  client.resolve(stored, messageHash);
@@ -217579,8 +217583,8 @@ class hitbtc extends _hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
217579
217583
  this.ohlcvs[symbol][timeframe] = stored;
217580
217584
  }
217581
217585
  const ohlcvs = this.parseWsOHLCVs(data[marketId], market);
217582
- for (let i = 0; i < ohlcvs.length; i++) {
217583
- stored.append(ohlcvs[i]);
217586
+ for (let j = 0; j < ohlcvs.length; j++) {
217587
+ stored.append(ohlcvs[j]);
217584
217588
  }
217585
217589
  const messageHash = channel + '::' + symbol;
217586
217590
  client.resolve(stored, messageHash);
@@ -218975,8 +218979,7 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
218975
218979
  orderbook.reset(snapshot);
218976
218980
  // unroll the accumulated deltas
218977
218981
  for (let i = 0; i < messages.length; i++) {
218978
- const message = messages[i];
218979
- this.handleOrderBookMessage(client, message, orderbook);
218982
+ this.handleOrderBookMessage(client, messages[i], orderbook);
218980
218983
  }
218981
218984
  this.orderbooks[symbol] = orderbook;
218982
218985
  client.resolve(orderbook, messageHash);
@@ -220237,14 +220240,14 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
220237
220240
  const action = this.safeString(message, 'action');
220238
220241
  if (action === 'ping') {
220239
220242
  const data = this.safeValue(message, 'data');
220240
- const ping = this.safeInteger(data, 'ts');
220241
- await client.send({ 'action': 'pong', 'data': { 'ts': ping } });
220243
+ const pingTs = this.safeInteger(data, 'ts');
220244
+ await client.send({ 'action': 'pong', 'data': { 'ts': pingTs } });
220242
220245
  return;
220243
220246
  }
220244
220247
  const op = this.safeString(message, 'op');
220245
220248
  if (op === 'ping') {
220246
- const ping = this.safeInteger(message, 'ts');
220247
- await client.send({ 'op': 'pong', 'ts': ping });
220249
+ const pingTs = this.safeInteger(message, 'ts');
220250
+ await client.send({ 'op': 'pong', 'ts': pingTs });
220248
220251
  }
220249
220252
  }
220250
220253
  catch (e) {
@@ -220713,7 +220716,7 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
220713
220716
  const signature = this.hmac(this.encode(payload), this.encode(this.secret), _static_dependencies_noble_hashes_sha256_js__WEBPACK_IMPORTED_MODULE_3__/* .sha256 */ .J, 'base64');
220714
220717
  let request = undefined;
220715
220718
  if (type === 'spot') {
220716
- const params = {
220719
+ const newParams = {
220717
220720
  'authType': 'api',
220718
220721
  'accessKey': this.apiKey,
220719
220722
  'signatureMethod': 'HmacSHA256',
@@ -220722,7 +220725,7 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
220722
220725
  'signature': signature,
220723
220726
  };
220724
220727
  request = {
220725
- 'params': params,
220728
+ 'params': newParams,
220726
220729
  'action': 'req',
220727
220730
  'ch': 'auth',
220728
220731
  };
@@ -232306,8 +232309,8 @@ class phemex extends _phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
232306
232309
  }
232307
232310
  const keys = Object.keys(marketIds);
232308
232311
  for (let i = 0; i < keys.length; i++) {
232309
- const messageHash = 'orders' + ':' + keys[i];
232310
- client.resolve(this.orders, messageHash);
232312
+ const currentMessageHash = 'orders' + ':' + keys[i];
232313
+ client.resolve(this.orders, currentMessageHash);
232311
232314
  }
232312
232315
  // resolve generic subscription (spot or swap)
232313
232316
  const messageHash = 'orders:' + type;
@@ -233324,8 +233327,8 @@ class poloniex extends _poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
233324
233327
  let totalCost = '0';
233325
233328
  let totalAmount = '0';
233326
233329
  const previousOrderTrades = previousOrder['trades'];
233327
- for (let i = 0; i < previousOrderTrades.length; i++) {
233328
- const previousOrderTrade = previousOrderTrades[i];
233330
+ for (let j = 0; j < previousOrderTrades.length; j++) {
233331
+ const previousOrderTrade = previousOrderTrades[j];
233329
233332
  const cost = this.numberToString(previousOrderTrade['cost']);
233330
233333
  const amount = this.numberToString(previousOrderTrade['amount']);
233331
233334
  totalCost = _base_Precise_js__WEBPACK_IMPORTED_MODULE_4__/* .Precise.stringAdd */ .O.stringAdd(totalCost, cost);
@@ -233565,16 +233568,16 @@ class poloniex extends _poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
233565
233568
  }
233566
233569
  const orderbook = this.orderbooks[symbol];
233567
233570
  if (bids !== undefined) {
233568
- for (let i = 0; i < bids.length; i++) {
233569
- const bid = this.safeValue(bids, i);
233571
+ for (let j = 0; j < bids.length; j++) {
233572
+ const bid = this.safeValue(bids, j);
233570
233573
  const price = this.safeNumber(bid, 0);
233571
233574
  const amount = this.safeNumber(bid, 1);
233572
233575
  orderbook['bids'].store(price, amount);
233573
233576
  }
233574
233577
  }
233575
233578
  if (asks !== undefined) {
233576
- for (let i = 0; i < asks.length; i++) {
233577
- const ask = this.safeValue(asks, i);
233579
+ for (let j = 0; j < asks.length; j++) {
233580
+ const ask = this.safeValue(asks, j);
233578
233581
  const price = this.safeNumber(ask, 0);
233579
233582
  const amount = this.safeNumber(ask, 1);
233580
233583
  orderbook['asks'].store(price, amount);
@@ -236673,8 +236676,8 @@ class whitebit extends _whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
236673
236676
  // watchTickers
236674
236677
  const messageHashes = Object.keys(client.futures);
236675
236678
  for (let i = 0; i < messageHashes.length; i++) {
236676
- const messageHash = messageHashes[i];
236677
- if (messageHash.indexOf('tickers') >= 0 && messageHash.indexOf(symbol) >= 0) {
236679
+ const currentMessageHash = messageHashes[i];
236680
+ if (currentMessageHash.indexOf('tickers') >= 0 && currentMessageHash.indexOf(symbol) >= 0) {
236678
236681
  // Example: user calls watchTickers with ['LTC/USDT', 'ETH/USDT']
236679
236682
  // the associated messagehash will be: 'tickers:LTC/USDT:ETH/USDT'
236680
236683
  // since we only have access to a single symbol at a time
@@ -236684,7 +236687,7 @@ class whitebit extends _whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
236684
236687
  // user might have multiple watchTickers promises
236685
236688
  // watchTickers ( ['LTC/USDT', 'ETH/USDT'] ), watchTickers ( ['ETC/USDT', 'DOGE/USDT'] )
236686
236689
  // and we want to make sure we resolve only the correct ones
236687
- client.resolve(ticker, messageHash);
236690
+ client.resolve(ticker, currentMessageHash);
236688
236691
  }
236689
236692
  }
236690
236693
  return message;
@@ -237142,15 +237145,15 @@ class whitebit extends _whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
237142
237145
  }
237143
237146
  else {
237144
237147
  // resubscribe
237145
- let marketIds = [];
237146
- marketIds = Object.keys(subscription);
237148
+ let marketIdsNew = [];
237149
+ marketIdsNew = Object.keys(subscription);
237147
237150
  if (isNested) {
237148
- marketIds = [marketIds];
237151
+ marketIdsNew = [marketIdsNew];
237149
237152
  }
237150
237153
  const resubRequest = {
237151
237154
  'id': id,
237152
237155
  'method': method,
237153
- 'params': marketIds,
237156
+ 'params': marketIdsNew,
237154
237157
  };
237155
237158
  if (method in client.subscriptions) {
237156
237159
  delete client.subscriptions[method];
@@ -238469,14 +238472,14 @@ class probit extends _abstract_probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
238469
238472
  }
238470
238473
  const precision = this.parsePrecision(this.safeString(network, 'precision'));
238471
238474
  const withdrawFee = this.safeValue(network, 'withdrawal_fee', []);
238472
- const fee = this.safeValue(withdrawFee, 0, {});
238475
+ const networkfee = this.safeValue(withdrawFee, 0, {});
238473
238476
  networkList[networkCode] = {
238474
238477
  'id': networkId,
238475
238478
  'network': networkCode,
238476
238479
  'active': currentActive,
238477
238480
  'deposit': currentDeposit,
238478
238481
  'withdraw': currentWithdraw,
238479
- 'fee': this.safeNumber(fee, 'amount'),
238482
+ 'fee': this.safeNumber(networkfee, 'amount'),
238480
238483
  'precision': this.parseNumber(precision),
238481
238484
  'limits': {
238482
238485
  'withdraw': {
@@ -273769,7 +273772,7 @@ SOFTWARE.
273769
273772
 
273770
273773
  //-----------------------------------------------------------------------------
273771
273774
  // this is updated by vss.js when building
273772
- const version = '4.0.99';
273775
+ const version = '4.0.100';
273773
273776
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
273774
273777
  //-----------------------------------------------------------------------------
273775
273778