ccxt 4.2.84 → 4.2.86

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 (168) hide show
  1. package/README.md +5 -5
  2. package/dist/ccxt.browser.js +1226 -1104
  3. package/dist/ccxt.browser.min.js +4 -4
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/ace.js +5 -5
  6. package/dist/cjs/src/ascendex.js +8 -8
  7. package/dist/cjs/src/base/Exchange.js +76 -14
  8. package/dist/cjs/src/bigone.js +12 -12
  9. package/dist/cjs/src/binance.js +23 -35
  10. package/dist/cjs/src/bingx.js +47 -28
  11. package/dist/cjs/src/bit2c.js +1 -1
  12. package/dist/cjs/src/bitbank.js +27 -31
  13. package/dist/cjs/src/bitbns.js +5 -5
  14. package/dist/cjs/src/bitfinex.js +1 -1
  15. package/dist/cjs/src/bitfinex2.js +1 -1
  16. package/dist/cjs/src/bitget.js +30 -24
  17. package/dist/cjs/src/bithumb.js +5 -5
  18. package/dist/cjs/src/bitmart.js +16 -16
  19. package/dist/cjs/src/bitopro.js +1 -1
  20. package/dist/cjs/src/bitrue.js +4 -4
  21. package/dist/cjs/src/bitso.js +5 -5
  22. package/dist/cjs/src/bitstamp.js +1 -1
  23. package/dist/cjs/src/bitteam.js +8 -8
  24. package/dist/cjs/src/bl3p.js +1 -1
  25. package/dist/cjs/src/btcturk.js +6 -6
  26. package/dist/cjs/src/bybit.js +31 -95
  27. package/dist/cjs/src/coincheck.js +4 -4
  28. package/dist/cjs/src/coinex.js +408 -262
  29. package/dist/cjs/src/coinlist.js +7 -7
  30. package/dist/cjs/src/coinmate.js +4 -4
  31. package/dist/cjs/src/coinmetro.js +3 -3
  32. package/dist/cjs/src/coinone.js +5 -5
  33. package/dist/cjs/src/coinspot.js +2 -2
  34. package/dist/cjs/src/cryptocom.js +17 -17
  35. package/dist/cjs/src/currencycom.js +1 -1
  36. package/dist/cjs/src/delta.js +0 -8
  37. package/dist/cjs/src/deribit.js +16 -92
  38. package/dist/cjs/src/digifinex.js +8 -8
  39. package/dist/cjs/src/exmo.js +8 -8
  40. package/dist/cjs/src/gate.js +0 -8
  41. package/dist/cjs/src/hitbtc.js +5 -4
  42. package/dist/cjs/src/hollaex.js +7 -7
  43. package/dist/cjs/src/htx.js +7 -7
  44. package/dist/cjs/src/huobijp.js +3 -3
  45. package/dist/cjs/src/idex.js +12 -13
  46. package/dist/cjs/src/independentreserve.js +2 -2
  47. package/dist/cjs/src/indodax.js +2 -2
  48. package/dist/cjs/src/kraken.js +8 -8
  49. package/dist/cjs/src/krakenfutures.js +6 -6
  50. package/dist/cjs/src/kucoin.js +5 -1
  51. package/dist/cjs/src/kucoinfutures.js +8 -8
  52. package/dist/cjs/src/kuna.js +16 -16
  53. package/dist/cjs/src/latoken.js +2 -2
  54. package/dist/cjs/src/lbank.js +10 -10
  55. package/dist/cjs/src/luno.js +4 -4
  56. package/dist/cjs/src/mercado.js +5 -5
  57. package/dist/cjs/src/mexc.js +6 -6
  58. package/dist/cjs/src/ndax.js +1 -1
  59. package/dist/cjs/src/novadax.js +9 -9
  60. package/dist/cjs/src/oceanex.js +7 -7
  61. package/dist/cjs/src/okcoin.js +16 -14
  62. package/dist/cjs/src/okx.js +23 -31
  63. package/dist/cjs/src/onetrading.js +4 -4
  64. package/dist/cjs/src/p2b.js +7 -7
  65. package/dist/cjs/src/phemex.js +12 -12
  66. package/dist/cjs/src/poloniexfutures.js +5 -5
  67. package/dist/cjs/src/pro/binance.js +167 -121
  68. package/dist/cjs/src/pro/bitget.js +1 -0
  69. package/dist/cjs/src/pro/kucoin.js +6 -7
  70. package/dist/cjs/src/pro/okx.js +19 -2
  71. package/dist/cjs/src/probit.js +11 -11
  72. package/dist/cjs/src/timex.js +7 -7
  73. package/dist/cjs/src/tokocrypto.js +9 -9
  74. package/dist/cjs/src/wavesexchange.js +3 -3
  75. package/dist/cjs/src/whitebit.js +5 -5
  76. package/dist/cjs/src/woo.js +1 -1
  77. package/dist/cjs/src/zaif.js +1 -1
  78. package/dist/cjs/src/zonda.js +7 -7
  79. package/examples/js/cli.js +0 -1
  80. package/examples/ts/cli.ts +0 -1
  81. package/js/ccxt.d.ts +1 -1
  82. package/js/ccxt.js +1 -1
  83. package/js/src/abstract/coinex.d.ts +232 -123
  84. package/js/src/ace.js +5 -5
  85. package/js/src/ascendex.js +8 -8
  86. package/js/src/base/Exchange.d.ts +13 -12
  87. package/js/src/base/Exchange.js +76 -14
  88. package/js/src/bigone.js +12 -12
  89. package/js/src/binance.d.ts +0 -1
  90. package/js/src/binance.js +23 -35
  91. package/js/src/bingx.js +47 -28
  92. package/js/src/bit2c.js +1 -1
  93. package/js/src/bitbank.js +27 -31
  94. package/js/src/bitbns.js +5 -5
  95. package/js/src/bitfinex.js +1 -1
  96. package/js/src/bitfinex2.js +1 -1
  97. package/js/src/bitget.js +30 -24
  98. package/js/src/bithumb.js +5 -5
  99. package/js/src/bitmart.js +16 -16
  100. package/js/src/bitopro.js +1 -1
  101. package/js/src/bitrue.js +4 -4
  102. package/js/src/bitso.js +5 -5
  103. package/js/src/bitstamp.js +1 -1
  104. package/js/src/bitteam.js +8 -8
  105. package/js/src/bl3p.js +1 -1
  106. package/js/src/btcturk.js +6 -6
  107. package/js/src/bybit.d.ts +0 -3
  108. package/js/src/bybit.js +31 -95
  109. package/js/src/coincheck.js +4 -4
  110. package/js/src/coinex.d.ts +1 -1
  111. package/js/src/coinex.js +408 -262
  112. package/js/src/coinlist.js +7 -7
  113. package/js/src/coinmate.js +4 -4
  114. package/js/src/coinmetro.js +3 -3
  115. package/js/src/coinone.js +5 -5
  116. package/js/src/coinspot.js +2 -2
  117. package/js/src/cryptocom.js +17 -17
  118. package/js/src/currencycom.js +1 -1
  119. package/js/src/delta.d.ts +0 -1
  120. package/js/src/delta.js +0 -8
  121. package/js/src/deribit.d.ts +0 -3
  122. package/js/src/deribit.js +16 -92
  123. package/js/src/digifinex.js +8 -8
  124. package/js/src/exmo.js +8 -8
  125. package/js/src/gate.d.ts +0 -1
  126. package/js/src/gate.js +0 -8
  127. package/js/src/hitbtc.js +5 -4
  128. package/js/src/hollaex.js +7 -7
  129. package/js/src/htx.js +7 -7
  130. package/js/src/huobijp.js +3 -3
  131. package/js/src/idex.js +12 -13
  132. package/js/src/independentreserve.js +2 -2
  133. package/js/src/indodax.js +2 -2
  134. package/js/src/kraken.js +8 -8
  135. package/js/src/krakenfutures.js +6 -6
  136. package/js/src/kucoin.js +5 -1
  137. package/js/src/kucoinfutures.js +8 -8
  138. package/js/src/kuna.js +16 -16
  139. package/js/src/latoken.js +2 -2
  140. package/js/src/lbank.js +10 -10
  141. package/js/src/luno.js +4 -4
  142. package/js/src/mercado.js +5 -5
  143. package/js/src/mexc.js +6 -6
  144. package/js/src/ndax.js +1 -1
  145. package/js/src/novadax.js +9 -9
  146. package/js/src/oceanex.js +7 -7
  147. package/js/src/okcoin.js +16 -14
  148. package/js/src/okx.d.ts +0 -1
  149. package/js/src/okx.js +23 -31
  150. package/js/src/onetrading.js +4 -4
  151. package/js/src/p2b.js +7 -7
  152. package/js/src/phemex.js +12 -12
  153. package/js/src/poloniexfutures.js +5 -5
  154. package/js/src/pro/binance.d.ts +5 -1
  155. package/js/src/pro/binance.js +168 -122
  156. package/js/src/pro/bitget.js +1 -0
  157. package/js/src/pro/kucoin.js +6 -7
  158. package/js/src/pro/okx.js +19 -2
  159. package/js/src/probit.js +11 -11
  160. package/js/src/timex.js +7 -7
  161. package/js/src/tokocrypto.js +9 -9
  162. package/js/src/wavesexchange.js +3 -3
  163. package/js/src/whitebit.js +5 -5
  164. package/js/src/woo.js +1 -1
  165. package/js/src/zaif.js +1 -1
  166. package/js/src/zonda.js +7 -7
  167. package/package.json +1 -1
  168. package/skip-tests.json +4 -0
package/js/src/bitbank.js CHANGED
@@ -141,21 +141,23 @@ export default class bitbank extends Exchange {
141
141
  },
142
142
  'precisionMode': TICK_SIZE,
143
143
  'exceptions': {
144
- '20001': AuthenticationError,
145
- '20002': AuthenticationError,
146
- '20003': AuthenticationError,
147
- '20005': AuthenticationError,
148
- '20004': InvalidNonce,
149
- '40020': InvalidOrder,
150
- '40021': InvalidOrder,
151
- '40025': ExchangeError,
152
- '40013': OrderNotFound,
153
- '40014': OrderNotFound,
154
- '50008': PermissionDenied,
155
- '50009': OrderNotFound,
156
- '50010': OrderNotFound,
157
- '60001': InsufficientFunds,
158
- '60005': InvalidOrder,
144
+ 'exact': {
145
+ '20001': AuthenticationError,
146
+ '20002': AuthenticationError,
147
+ '20003': AuthenticationError,
148
+ '20005': AuthenticationError,
149
+ '20004': InvalidNonce,
150
+ '40020': InvalidOrder,
151
+ '40021': InvalidOrder,
152
+ '40025': ExchangeError,
153
+ '40013': OrderNotFound,
154
+ '40014': OrderNotFound,
155
+ '50008': PermissionDenied,
156
+ '50009': OrderNotFound,
157
+ '50010': OrderNotFound,
158
+ '60001': InsufficientFunds,
159
+ '60005': InvalidOrder,
160
+ },
159
161
  },
160
162
  });
161
163
  }
@@ -301,7 +303,7 @@ export default class bitbank extends Exchange {
301
303
  'pair': market['id'],
302
304
  };
303
305
  const response = await this.publicGetPairTicker(this.extend(request, params));
304
- const data = this.safeValue(response, 'data', {});
306
+ const data = this.safeDict(response, 'data', {});
305
307
  return this.parseTicker(data, market);
306
308
  }
307
309
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
@@ -389,7 +391,7 @@ export default class bitbank extends Exchange {
389
391
  };
390
392
  const response = await this.publicGetPairTransactions(this.extend(request, params));
391
393
  const data = this.safeValue(response, 'data', {});
392
- const trades = this.safeValue(data, 'transactions', []);
394
+ const trades = this.safeList(data, 'transactions', []);
393
395
  return this.parseTrades(trades, market, since, limit);
394
396
  }
395
397
  async fetchTradingFees(params = {}) {
@@ -519,7 +521,7 @@ export default class bitbank extends Exchange {
519
521
  const data = this.safeValue(response, 'data', {});
520
522
  const candlestick = this.safeValue(data, 'candlestick', []);
521
523
  const first = this.safeValue(candlestick, 0, {});
522
- const ohlcv = this.safeValue(first, 'ohlcv', []);
524
+ const ohlcv = this.safeList(first, 'ohlcv', []);
523
525
  return this.parseOHLCVs(ohlcv, market, timeframe, since, limit);
524
526
  }
525
527
  parseBalance(response) {
@@ -662,7 +664,7 @@ export default class bitbank extends Exchange {
662
664
  request['price'] = this.priceToPrecision(symbol, price);
663
665
  }
664
666
  const response = await this.privatePostUserSpotOrder(this.extend(request, params));
665
- const data = this.safeValue(response, 'data');
667
+ const data = this.safeDict(response, 'data');
666
668
  return this.parseOrder(data, market);
667
669
  }
668
670
  async cancelOrder(id, symbol = undefined, params = {}) {
@@ -703,7 +705,7 @@ export default class bitbank extends Exchange {
703
705
  'pair': market['id'],
704
706
  };
705
707
  const response = await this.privateGetUserSpotOrder(this.extend(request, params));
706
- const data = this.safeValue(response, 'data');
708
+ const data = this.safeDict(response, 'data');
707
709
  return this.parseOrder(data, market);
708
710
  }
709
711
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -731,7 +733,7 @@ export default class bitbank extends Exchange {
731
733
  }
732
734
  const response = await this.privateGetUserSpotActiveOrders(this.extend(request, params));
733
735
  const data = this.safeValue(response, 'data', {});
734
- const orders = this.safeValue(data, 'orders', []);
736
+ const orders = this.safeList(data, 'orders', []);
735
737
  return this.parseOrders(orders, market, since, limit);
736
738
  }
737
739
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -761,7 +763,7 @@ export default class bitbank extends Exchange {
761
763
  }
762
764
  const response = await this.privateGetUserSpotTradeHistory(this.extend(request, params));
763
765
  const data = this.safeValue(response, 'data', {});
764
- const trades = this.safeValue(data, 'trades', []);
766
+ const trades = this.safeList(data, 'trades', []);
765
767
  return this.parseTrades(trades, market, since, limit);
766
768
  }
767
769
  async fetchDepositAddress(code, params = {}) {
@@ -834,7 +836,7 @@ export default class bitbank extends Exchange {
834
836
  // }
835
837
  // }
836
838
  //
837
- const data = this.safeValue(response, 'data', {});
839
+ const data = this.safeDict(response, 'data', {});
838
840
  return this.parseTransaction(data, currency);
839
841
  }
840
842
  parseTransaction(transaction, currency = undefined) {
@@ -986,16 +988,10 @@ export default class bitbank extends Exchange {
986
988
  '70009': 'We are currently temporarily restricting orders to be carried out. Please use the limit order.',
987
989
  '70010': 'We are temporarily raising the minimum order quantity as the system load is now rising.',
988
990
  };
989
- const errorClasses = this.exceptions;
990
991
  const code = this.safeString(data, 'code');
991
992
  const message = this.safeString(errorMessages, code, 'Error');
992
- const ErrorClass = this.safeValue(errorClasses, code);
993
- if (ErrorClass !== undefined) {
994
- throw new errorClasses[code](message);
995
- }
996
- else {
997
- throw new ExchangeError(this.id + ' ' + this.json(response));
998
- }
993
+ this.throwExactlyMatchedException(this.exceptions['exact'], code, message);
994
+ throw new ExchangeError(this.id + ' ' + this.json(response));
999
995
  }
1000
996
  return undefined;
1001
997
  }
package/js/src/bitbns.js CHANGED
@@ -725,7 +725,7 @@ export default class bitbns extends Exchange {
725
725
  // }
726
726
  //
727
727
  const data = this.safeValue(response, 'data', []);
728
- const first = this.safeValue(data, 0);
728
+ const first = this.safeDict(data, 0);
729
729
  return this.parseOrder(first, market);
730
730
  }
731
731
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -776,7 +776,7 @@ export default class bitbns extends Exchange {
776
776
  // "code":200
777
777
  // }
778
778
  //
779
- const data = this.safeValue(response, 'data', []);
779
+ const data = this.safeList(response, 'data', []);
780
780
  return this.parseOrders(data, market, since, limit);
781
781
  }
782
782
  parseTrade(trade, market = undefined) {
@@ -926,7 +926,7 @@ export default class bitbns extends Exchange {
926
926
  // "code": 200
927
927
  // }
928
928
  //
929
- const data = this.safeValue(response, 'data', []);
929
+ const data = this.safeList(response, 'data', []);
930
930
  return this.parseTrades(data, market, since, limit);
931
931
  }
932
932
  async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
@@ -1003,7 +1003,7 @@ export default class bitbns extends Exchange {
1003
1003
  // "code":200
1004
1004
  // }
1005
1005
  //
1006
- const data = this.safeValue(response, 'data', []);
1006
+ const data = this.safeList(response, 'data', []);
1007
1007
  return this.parseTransactions(data, currency, since, limit);
1008
1008
  }
1009
1009
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1030,7 +1030,7 @@ export default class bitbns extends Exchange {
1030
1030
  //
1031
1031
  // ...
1032
1032
  //
1033
- const data = this.safeValue(response, 'data', []);
1033
+ const data = this.safeList(response, 'data', []);
1034
1034
  return this.parseTransactions(data, currency, since, limit);
1035
1035
  }
1036
1036
  parseTransactionStatusByType(status, type = undefined) {
@@ -453,7 +453,7 @@ export default class bitfinex extends Exchange {
453
453
  // }
454
454
  // }
455
455
  //
456
- const withdraw = this.safeValue(response, 'withdraw');
456
+ const withdraw = this.safeList(response, 'withdraw');
457
457
  return this.parseDepositWithdrawFees(withdraw, codes);
458
458
  }
459
459
  parseDepositWithdrawFee(fee, currency = undefined) {
@@ -1785,7 +1785,7 @@ export default class bitfinex2 extends Exchange {
1785
1785
  'all': 1,
1786
1786
  };
1787
1787
  const response = await this.privatePostAuthWOrderCancelMulti(this.extend(request, params));
1788
- const orders = this.safeValue(response, 4, []);
1788
+ const orders = this.safeList(response, 4, []);
1789
1789
  return this.parseOrders(orders);
1790
1790
  }
1791
1791
  async cancelOrder(id, symbol = undefined, params = {}) {
package/js/src/bitget.js CHANGED
@@ -2194,7 +2194,7 @@ export default class bitget extends Exchange {
2194
2194
  // ]
2195
2195
  // }
2196
2196
  //
2197
- const rawTransactions = this.safeValue(response, 'data', []);
2197
+ const rawTransactions = this.safeList(response, 'data', []);
2198
2198
  return this.parseTransactions(rawTransactions, currency, since, limit);
2199
2199
  }
2200
2200
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -2342,7 +2342,7 @@ export default class bitget extends Exchange {
2342
2342
  // ]
2343
2343
  // }
2344
2344
  //
2345
- const rawTransactions = this.safeValue(response, 'data', []);
2345
+ const rawTransactions = this.safeList(response, 'data', []);
2346
2346
  return this.parseTransactions(rawTransactions, currency, since, limit);
2347
2347
  }
2348
2348
  parseTransaction(transaction, currency = undefined) {
@@ -2470,7 +2470,7 @@ export default class bitget extends Exchange {
2470
2470
  // }
2471
2471
  // }
2472
2472
  //
2473
- const data = this.safeValue(response, 'data', {});
2473
+ const data = this.safeDict(response, 'data', {});
2474
2474
  return this.parseDepositAddress(data, currency);
2475
2475
  }
2476
2476
  parseDepositAddress(depositAddress, currency = undefined) {
@@ -2759,7 +2759,7 @@ export default class bitget extends Exchange {
2759
2759
  // ]
2760
2760
  // }
2761
2761
  //
2762
- const data = this.safeValue(response, 'data', []);
2762
+ const data = this.safeList(response, 'data', []);
2763
2763
  return this.parseTicker(data[0], market);
2764
2764
  }
2765
2765
  async fetchTickers(symbols = undefined, params = {}) {
@@ -2863,7 +2863,7 @@ export default class bitget extends Exchange {
2863
2863
  // ]
2864
2864
  // }
2865
2865
  //
2866
- const data = this.safeValue(response, 'data', []);
2866
+ const data = this.safeList(response, 'data', []);
2867
2867
  return this.parseTickers(data, symbols);
2868
2868
  }
2869
2869
  parseTrade(trade, market = undefined) {
@@ -3103,7 +3103,7 @@ export default class bitget extends Exchange {
3103
3103
  // ]
3104
3104
  // }
3105
3105
  //
3106
- const data = this.safeValue(response, 'data', []);
3106
+ const data = this.safeList(response, 'data', []);
3107
3107
  return this.parseTrades(data, market, since, limit);
3108
3108
  }
3109
3109
  async fetchTradingFee(symbol, params = {}) {
@@ -4190,7 +4190,7 @@ export default class bitget extends Exchange {
4190
4190
  // }
4191
4191
  // }
4192
4192
  //
4193
- const data = this.safeValue(response, 'data', {});
4193
+ const data = this.safeDict(response, 'data', {});
4194
4194
  return this.parseOrder(data, market);
4195
4195
  }
4196
4196
  createOrderRequest(symbol, type, side, amount, price = undefined, params = {}) {
@@ -4701,7 +4701,7 @@ export default class bitget extends Exchange {
4701
4701
  // }
4702
4702
  // }
4703
4703
  //
4704
- const data = this.safeValue(response, 'data', {});
4704
+ const data = this.safeDict(response, 'data', {});
4705
4705
  return this.parseOrder(data, market);
4706
4706
  }
4707
4707
  async cancelOrder(id, symbol = undefined, params = {}) {
@@ -4940,7 +4940,7 @@ export default class bitget extends Exchange {
4940
4940
  // }
4941
4941
  //
4942
4942
  const data = this.safeValue(response, 'data', {});
4943
- const orders = this.safeValue(data, 'successList', []);
4943
+ const orders = this.safeList(data, 'successList', []);
4944
4944
  return this.parseOrders(orders, market);
4945
4945
  }
4946
4946
  async cancelAllOrders(symbol = undefined, params = {}) {
@@ -5171,9 +5171,15 @@ export default class bitget extends Exchange {
5171
5171
  if (typeof response === 'string') {
5172
5172
  response = JSON.parse(response);
5173
5173
  }
5174
- const data = this.safeValue(response, 'data');
5175
- const first = this.safeValue(data, 0, data);
5174
+ const data = this.safeDict(response, 'data');
5175
+ if ((data !== undefined) && !Array.isArray(data)) {
5176
+ return this.parseOrder(data, market);
5177
+ }
5178
+ const dataList = this.safeList(response, 'data', []);
5179
+ const first = this.safeDict(dataList, 0, {});
5176
5180
  return this.parseOrder(first, market);
5181
+ // const first = this.safeDict (data, 0, data);
5182
+ // return this.parseOrder (first, market);
5177
5183
  }
5178
5184
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
5179
5185
  /**
@@ -5476,12 +5482,12 @@ export default class bitget extends Exchange {
5476
5482
  const data = this.safeValue(response, 'data');
5477
5483
  if (type === 'spot') {
5478
5484
  if ((marginMode !== undefined) || stop) {
5479
- const resultList = this.safeValue(data, 'orderList', []);
5485
+ const resultList = this.safeList(data, 'orderList', []);
5480
5486
  return this.parseOrders(resultList, market, since, limit);
5481
5487
  }
5482
5488
  }
5483
5489
  else {
5484
- const result = this.safeValue(data, 'entrustedList', []);
5490
+ const result = this.safeList(data, 'entrustedList', []);
5485
5491
  return this.parseOrders(result, market, since, limit);
5486
5492
  }
5487
5493
  return this.parseOrders(data, market, since, limit);
@@ -5848,7 +5854,7 @@ export default class bitget extends Exchange {
5848
5854
  if (typeof response === 'string') {
5849
5855
  response = JSON.parse(response);
5850
5856
  }
5851
- const orders = this.safeValue(response, 'data', []);
5857
+ const orders = this.safeList(response, 'data', []);
5852
5858
  return this.parseOrders(orders, market, since, limit);
5853
5859
  }
5854
5860
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -6252,11 +6258,11 @@ export default class bitget extends Exchange {
6252
6258
  //
6253
6259
  const data = this.safeValue(response, 'data');
6254
6260
  if ((market['swap']) || (market['future'])) {
6255
- const fillList = this.safeValue(data, 'fillList', []);
6261
+ const fillList = this.safeList(data, 'fillList', []);
6256
6262
  return this.parseTrades(fillList, market, since, limit);
6257
6263
  }
6258
6264
  else if (marginMode !== undefined) {
6259
- const fills = this.safeValue(data, 'fills', []);
6265
+ const fills = this.safeList(data, 'fills', []);
6260
6266
  return this.parseTrades(fills, market, since, limit);
6261
6267
  }
6262
6268
  return this.parseTrades(data, market, since, limit);
@@ -6319,8 +6325,8 @@ export default class bitget extends Exchange {
6319
6325
  // ]
6320
6326
  // }
6321
6327
  //
6322
- const data = this.safeValue(response, 'data', []);
6323
- const first = this.safeValue(data, 0, {});
6328
+ const data = this.safeList(response, 'data', []);
6329
+ const first = this.safeDict(data, 0, {});
6324
6330
  return this.parsePosition(first, market);
6325
6331
  }
6326
6332
  async fetchPositions(symbols = undefined, params = {}) {
@@ -7271,7 +7277,7 @@ export default class bitget extends Exchange {
7271
7277
  // }
7272
7278
  // }
7273
7279
  //
7274
- const data = this.safeValue(response, 'data', {});
7280
+ const data = this.safeDict(response, 'data', {});
7275
7281
  return this.parseOpenInterest(data, market);
7276
7282
  }
7277
7283
  parseOpenInterest(interest, market = undefined) {
@@ -7355,7 +7361,7 @@ export default class bitget extends Exchange {
7355
7361
  // ]
7356
7362
  // }
7357
7363
  //
7358
- const data = this.safeValue(response, 'data', []);
7364
+ const data = this.safeList(response, 'data', []);
7359
7365
  return this.parseTransfers(data, currency, since, limit);
7360
7366
  }
7361
7367
  async transfer(code, amount, fromAccount, toAccount, params = {}) {
@@ -7552,7 +7558,7 @@ export default class bitget extends Exchange {
7552
7558
  // "requestTime": "1700120731773"
7553
7559
  // }
7554
7560
  //
7555
- const data = this.safeValue(response, 'data', []);
7561
+ const data = this.safeList(response, 'data', []);
7556
7562
  return this.parseDepositWithdrawFees(data, codes, 'coin');
7557
7563
  }
7558
7564
  async borrowCrossMargin(code, amount, params = {}) {
@@ -7859,7 +7865,7 @@ export default class bitget extends Exchange {
7859
7865
  // }
7860
7866
  //
7861
7867
  const data = this.safeValue(response, 'data', {});
7862
- const liquidations = this.safeValue(data, 'resultList', []);
7868
+ const liquidations = this.safeList(data, 'resultList', []);
7863
7869
  return this.parseLiquidations(liquidations, market, since, limit);
7864
7870
  }
7865
7871
  parseLiquidation(liquidation, market = undefined) {
@@ -8307,7 +8313,7 @@ export default class bitget extends Exchange {
8307
8313
  // }
8308
8314
  //
8309
8315
  const data = this.safeValue(response, 'data', {});
8310
- const order = this.safeValue(data, 'successList', []);
8316
+ const order = this.safeList(data, 'successList', []);
8311
8317
  return this.parseOrder(order[0], market);
8312
8318
  }
8313
8319
  async closeAllPositions(params = {}) {
@@ -8345,7 +8351,7 @@ export default class bitget extends Exchange {
8345
8351
  // }
8346
8352
  //
8347
8353
  const data = this.safeValue(response, 'data', {});
8348
- const orderInfo = this.safeValue(data, 'successList', []);
8354
+ const orderInfo = this.safeList(data, 'successList', []);
8349
8355
  return this.parsePositions(orderInfo, undefined, params);
8350
8356
  }
8351
8357
  async fetchMarginMode(symbol, params = {}) {
package/js/src/bithumb.js CHANGED
@@ -498,7 +498,7 @@ export default class bithumb extends Exchange {
498
498
  // }
499
499
  // }
500
500
  //
501
- const data = this.safeValue(response, 'data', {});
501
+ const data = this.safeDict(response, 'data', {});
502
502
  return this.parseTicker(data, market);
503
503
  }
504
504
  parseOHLCV(ohlcv, market = undefined) {
@@ -565,7 +565,7 @@ export default class bithumb extends Exchange {
565
565
  // }
566
566
  // }
567
567
  //
568
- const data = this.safeValue(response, 'data', []);
568
+ const data = this.safeList(response, 'data', []);
569
569
  return this.parseOHLCVs(data, market, timeframe, since, limit);
570
570
  }
571
571
  parseTrade(trade, market = undefined) {
@@ -682,7 +682,7 @@ export default class bithumb extends Exchange {
682
682
  // ]
683
683
  // }
684
684
  //
685
- const data = this.safeValue(response, 'data', []);
685
+ const data = this.safeList(response, 'data', []);
686
686
  return this.parseTrades(data, market, since, limit);
687
687
  }
688
688
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
@@ -778,7 +778,7 @@ export default class bithumb extends Exchange {
778
778
  // }
779
779
  // }
780
780
  //
781
- const data = this.safeValue(response, 'data');
781
+ const data = this.safeDict(response, 'data');
782
782
  return this.parseOrder(this.extend(data, { 'order_id': id }), market);
783
783
  }
784
784
  parseOrderStatus(status) {
@@ -934,7 +934,7 @@ export default class bithumb extends Exchange {
934
934
  // ]
935
935
  // }
936
936
  //
937
- const data = this.safeValue(response, 'data', []);
937
+ const data = this.safeList(response, 'data', []);
938
938
  return this.parseOrders(data, market, since, limit);
939
939
  }
940
940
  async cancelOrder(id, symbol = undefined, params = {}) {
package/js/src/bitmart.js CHANGED
@@ -1320,7 +1320,7 @@ export default class bitmart extends Exchange {
1320
1320
  else if (market['swap']) {
1321
1321
  tickersById = this.indexBy(tickers, 'contract_symbol');
1322
1322
  }
1323
- const ticker = this.safeValue(tickersById, market['id']);
1323
+ const ticker = this.safeDict(tickersById, market['id']);
1324
1324
  return this.parseTicker(ticker, market);
1325
1325
  }
1326
1326
  async fetchTickers(symbols = undefined, params = {}) {
@@ -1587,7 +1587,7 @@ export default class bitmart extends Exchange {
1587
1587
  // }
1588
1588
  //
1589
1589
  const data = this.safeValue(response, 'data', {});
1590
- const trades = this.safeValue(data, 'trades', []);
1590
+ const trades = this.safeList(data, 'trades', []);
1591
1591
  return this.parseTrades(trades, market, since, limit);
1592
1592
  }
1593
1593
  parseOHLCV(ohlcv, market = undefined) {
@@ -1757,7 +1757,7 @@ export default class bitmart extends Exchange {
1757
1757
  // "trace": "96c989db-e0f5-46f5-bba6-60cfcbde699b"
1758
1758
  // }
1759
1759
  //
1760
- const ohlcv = this.safeValue(response, 'data', []);
1760
+ const ohlcv = this.safeList(response, 'data', []);
1761
1761
  return this.parseOHLCVs(ohlcv, market, timeframe, since, limit);
1762
1762
  }
1763
1763
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1873,7 +1873,7 @@ export default class bitmart extends Exchange {
1873
1873
  // "trace": "4cad855074634097ac6ba5257c47305d.62.16959616054873723"
1874
1874
  // }
1875
1875
  //
1876
- const data = this.safeValue(response, 'data', []);
1876
+ const data = this.safeList(response, 'data', []);
1877
1877
  return this.parseTrades(data, market, since, limit);
1878
1878
  }
1879
1879
  async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1894,7 +1894,7 @@ export default class bitmart extends Exchange {
1894
1894
  'orderId': id,
1895
1895
  };
1896
1896
  const response = await this.privatePostSpotV4QueryOrderTrades(this.extend(request, params));
1897
- const data = this.safeValue(response, 'data', {});
1897
+ const data = this.safeList(response, 'data', []);
1898
1898
  return this.parseTrades(data, undefined, since, limit);
1899
1899
  }
1900
1900
  customParseBalance(response, marketType) {
@@ -2780,7 +2780,7 @@ export default class bitmart extends Exchange {
2780
2780
  // }
2781
2781
  //
2782
2782
  const data = this.safeValue(response, 'data', {});
2783
- const orders = this.safeValue(data, 'orders', []);
2783
+ const orders = this.safeList(data, 'orders', []);
2784
2784
  return this.parseOrders(orders, market, since, limit);
2785
2785
  }
2786
2786
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2909,7 +2909,7 @@ export default class bitmart extends Exchange {
2909
2909
  // "trace": "7f9d94g10f9d4513bc08a7rfc3a5559a.71.16957022303515933"
2910
2910
  // }
2911
2911
  //
2912
- const data = this.safeValue(response, 'data', []);
2912
+ const data = this.safeList(response, 'data', []);
2913
2913
  return this.parseOrders(data, market, since, limit);
2914
2914
  }
2915
2915
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2963,7 +2963,7 @@ export default class bitmart extends Exchange {
2963
2963
  else {
2964
2964
  response = await this.privateGetContractPrivateOrderHistory(this.extend(request, params));
2965
2965
  }
2966
- const data = this.safeValue(response, 'data', []);
2966
+ const data = this.safeList(response, 'data', []);
2967
2967
  return this.parseOrders(data, market, since, limit);
2968
2968
  }
2969
2969
  async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -3083,7 +3083,7 @@ export default class bitmart extends Exchange {
3083
3083
  // "trace": "4cad855075664097af6ba5257c47605d.63.14957831547451715"
3084
3084
  // }
3085
3085
  //
3086
- const data = this.safeValue(response, 'data', {});
3086
+ const data = this.safeDict(response, 'data', {});
3087
3087
  return this.parseOrder(data, market);
3088
3088
  }
3089
3089
  async fetchDepositAddress(code, params = {}) {
@@ -3126,7 +3126,7 @@ export default class bitmart extends Exchange {
3126
3126
  // }
3127
3127
  // }
3128
3128
  //
3129
- const data = this.safeValue(response, 'data', {});
3129
+ const data = this.safeDict(response, 'data', {});
3130
3130
  return this.parseDepositAddress(data, currency);
3131
3131
  }
3132
3132
  parseDepositAddress(depositAddress, currency = undefined) {
@@ -3274,7 +3274,7 @@ export default class bitmart extends Exchange {
3274
3274
  // }
3275
3275
  //
3276
3276
  const data = this.safeValue(response, 'data', {});
3277
- const records = this.safeValue(data, 'records', []);
3277
+ const records = this.safeList(data, 'records', []);
3278
3278
  return this.parseTransactions(records, currency, since, limit);
3279
3279
  }
3280
3280
  async fetchDeposit(id, code = undefined, params = {}) {
@@ -3315,7 +3315,7 @@ export default class bitmart extends Exchange {
3315
3315
  // }
3316
3316
  //
3317
3317
  const data = this.safeValue(response, 'data', {});
3318
- const record = this.safeValue(data, 'record', {});
3318
+ const record = this.safeDict(data, 'record', {});
3319
3319
  return this.parseTransaction(record);
3320
3320
  }
3321
3321
  async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -3369,7 +3369,7 @@ export default class bitmart extends Exchange {
3369
3369
  // }
3370
3370
  //
3371
3371
  const data = this.safeValue(response, 'data', {});
3372
- const record = this.safeValue(data, 'record', {});
3372
+ const record = this.safeDict(data, 'record', {});
3373
3373
  return this.parseTransaction(record);
3374
3374
  }
3375
3375
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -3919,7 +3919,7 @@ export default class bitmart extends Exchange {
3919
3919
  // }
3920
3920
  //
3921
3921
  const data = this.safeValue(response, 'data', {});
3922
- const records = this.safeValue(data, 'records', []);
3922
+ const records = this.safeList(data, 'records', []);
3923
3923
  return this.parseTransfers(records, currency, since, limit);
3924
3924
  }
3925
3925
  async fetchBorrowInterest(code = undefined, symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -4036,7 +4036,7 @@ export default class bitmart extends Exchange {
4036
4036
  // "trace": "7f9c94e10f9d4513bc08a7bfc2a5559a.72.16946575108274991"
4037
4037
  // }
4038
4038
  //
4039
- const data = this.safeValue(response, 'data', {});
4039
+ const data = this.safeDict(response, 'data', {});
4040
4040
  return this.parseOpenInterest(data, market);
4041
4041
  }
4042
4042
  parseOpenInterest(interest, market = undefined) {
@@ -4201,7 +4201,7 @@ export default class bitmart extends Exchange {
4201
4201
  // }
4202
4202
  //
4203
4203
  const data = this.safeValue(response, 'data', []);
4204
- const first = this.safeValue(data, 0, {});
4204
+ const first = this.safeDict(data, 0, {});
4205
4205
  return this.parsePosition(first, market);
4206
4206
  }
4207
4207
  async fetchPositions(symbols = undefined, params = {}) {
package/js/src/bitopro.js CHANGED
@@ -1665,7 +1665,7 @@ export default class bitopro extends Exchange {
1665
1665
  // ]
1666
1666
  // }
1667
1667
  //
1668
- const data = this.safeValue(response, 'data', []);
1668
+ const data = this.safeList(response, 'data', []);
1669
1669
  return this.parseDepositWithdrawFees(data, codes, 'currency');
1670
1670
  }
1671
1671
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
package/js/src/bitrue.js CHANGED
@@ -2569,7 +2569,7 @@ export default class bitrue extends Exchange {
2569
2569
  // ]
2570
2570
  // }
2571
2571
  //
2572
- const data = this.safeValue(response, 'data', []);
2572
+ const data = this.safeList(response, 'data', []);
2573
2573
  return this.parseTransactions(data, currency, since, limit);
2574
2574
  }
2575
2575
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2822,7 +2822,7 @@ export default class bitrue extends Exchange {
2822
2822
  // }
2823
2823
  // }
2824
2824
  //
2825
- const data = this.safeValue(response, 'data', {});
2825
+ const data = this.safeDict(response, 'data', {});
2826
2826
  return this.parseTransaction(data, currency);
2827
2827
  }
2828
2828
  parseDepositWithdrawFee(fee, currency = undefined) {
@@ -2878,7 +2878,7 @@ export default class bitrue extends Exchange {
2878
2878
  */
2879
2879
  await this.loadMarkets();
2880
2880
  const response = await this.spotV1PublicGetExchangeInfo(params);
2881
- const coins = this.safeValue(response, 'coins');
2881
+ const coins = this.safeList(response, 'coins');
2882
2882
  return this.parseDepositWithdrawFees(coins, codes, 'coin');
2883
2883
  }
2884
2884
  parseTransfer(transfer, currency = undefined) {
@@ -3006,7 +3006,7 @@ export default class bitrue extends Exchange {
3006
3006
  // 'data': null
3007
3007
  // }
3008
3008
  //
3009
- const data = this.safeValue(response, 'data', {});
3009
+ const data = this.safeDict(response, 'data', {});
3010
3010
  return this.parseTransfer(data, currency);
3011
3011
  }
3012
3012
  async setLeverage(leverage, symbol = undefined, params = {}) {