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
@@ -654,7 +654,7 @@ class kuna extends kuna$1 {
654
654
  // }
655
655
  // }
656
656
  //
657
- const data = this.safeValue(response, 'data', {});
657
+ const data = this.safeDict(response, 'data', {});
658
658
  return this.parseOrderBook(data, market['symbol'], undefined, 'bids', 'asks', 0, 1);
659
659
  }
660
660
  parseTicker(ticker, market = undefined) {
@@ -735,7 +735,7 @@ class kuna extends kuna$1 {
735
735
  // ]
736
736
  // }
737
737
  //
738
- const data = this.safeValue(response, 'data', []);
738
+ const data = this.safeList(response, 'data', []);
739
739
  return this.parseTickers(data, symbols, params);
740
740
  }
741
741
  async fetchTicker(symbol, params = {}) {
@@ -775,7 +775,7 @@ class kuna extends kuna$1 {
775
775
  // }
776
776
  //
777
777
  const data = this.safeValue(response, 'data', []);
778
- const ticker = this.safeValue(data, 0);
778
+ const ticker = this.safeDict(data, 0);
779
779
  return this.parseTicker(ticker, market);
780
780
  }
781
781
  async fetchL3OrderBook(symbol, limit = undefined, params = {}) {
@@ -992,7 +992,7 @@ class kuna extends kuna$1 {
992
992
  // }
993
993
  // }
994
994
  //
995
- const data = this.safeValue(response, 'data', {});
995
+ const data = this.safeDict(response, 'data', {});
996
996
  return this.parseOrder(data, market);
997
997
  }
998
998
  async cancelOrder(id, symbol = undefined, params = {}) {
@@ -1052,7 +1052,7 @@ class kuna extends kuna$1 {
1052
1052
  // ]
1053
1053
  // }
1054
1054
  //
1055
- const data = this.safeValue(response, 'data', []);
1055
+ const data = this.safeList(response, 'data', []);
1056
1056
  return this.parseOrders(data);
1057
1057
  }
1058
1058
  parseOrderStatus(status) {
@@ -1198,7 +1198,7 @@ class kuna extends kuna$1 {
1198
1198
  // }
1199
1199
  // }
1200
1200
  //
1201
- const data = this.safeValue(response, 'data', {});
1201
+ const data = this.safeDict(response, 'data', {});
1202
1202
  return this.parseOrder(data);
1203
1203
  }
1204
1204
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1257,7 +1257,7 @@ class kuna extends kuna$1 {
1257
1257
  // ]
1258
1258
  // }
1259
1259
  //
1260
- const data = this.safeValue(response, 'data', []);
1260
+ const data = this.safeList(response, 'data', []);
1261
1261
  return this.parseOrders(data, market, since, limit);
1262
1262
  }
1263
1263
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1341,7 +1341,7 @@ class kuna extends kuna$1 {
1341
1341
  // ]
1342
1342
  // }
1343
1343
  //
1344
- const data = this.safeValue(response, 'data', []);
1344
+ const data = this.safeList(response, 'data', []);
1345
1345
  return this.parseOrders(data, market, since, limit);
1346
1346
  }
1347
1347
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1387,7 +1387,7 @@ class kuna extends kuna$1 {
1387
1387
  // ]
1388
1388
  // }
1389
1389
  //
1390
- const data = this.safeValue(response, 'data');
1390
+ const data = this.safeList(response, 'data');
1391
1391
  return this.parseTrades(data, market, since, limit);
1392
1392
  }
1393
1393
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -1440,7 +1440,7 @@ class kuna extends kuna$1 {
1440
1440
  // }
1441
1441
  // }
1442
1442
  //
1443
- const data = this.safeValue(response, 'data', {});
1443
+ const data = this.safeDict(response, 'data', {});
1444
1444
  return this.parseTransaction(data, currency);
1445
1445
  }
1446
1446
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1508,7 +1508,7 @@ class kuna extends kuna$1 {
1508
1508
  // ]
1509
1509
  // }
1510
1510
  //
1511
- const data = this.safeValue(response, 'data', []);
1511
+ const data = this.safeList(response, 'data', []);
1512
1512
  return this.parseTransactions(data, currency);
1513
1513
  }
1514
1514
  async fetchWithdrawal(id, code = undefined, params = {}) {
@@ -1548,7 +1548,7 @@ class kuna extends kuna$1 {
1548
1548
  // }
1549
1549
  // }
1550
1550
  //
1551
- const data = this.safeValue(response, 'data', {});
1551
+ const data = this.safeDict(response, 'data', {});
1552
1552
  return this.parseTransaction(data);
1553
1553
  }
1554
1554
  async createDepositAddress(code, params = {}) {
@@ -1576,7 +1576,7 @@ class kuna extends kuna$1 {
1576
1576
  // }
1577
1577
  // }
1578
1578
  //
1579
- const data = this.safeValue(response, 'data', {});
1579
+ const data = this.safeDict(response, 'data', {});
1580
1580
  return this.parseDepositAddress(data, currency);
1581
1581
  }
1582
1582
  async fetchDepositAddress(code, params = {}) {
@@ -1604,7 +1604,7 @@ class kuna extends kuna$1 {
1604
1604
  // }
1605
1605
  // }
1606
1606
  //
1607
- const data = this.safeValue(response, 'data', {});
1607
+ const data = this.safeDict(response, 'data', {});
1608
1608
  return this.parseDepositAddress(data, currency);
1609
1609
  }
1610
1610
  parseDepositAddress(depositAddress, currency = undefined) {
@@ -1702,7 +1702,7 @@ class kuna extends kuna$1 {
1702
1702
  // ]
1703
1703
  // }
1704
1704
  //
1705
- const data = this.safeValue(response, 'data', []);
1705
+ const data = this.safeList(response, 'data', []);
1706
1706
  return this.parseTransactions(data, currency);
1707
1707
  }
1708
1708
  async fetchDeposit(id, code = undefined, params = {}) {
@@ -1746,7 +1746,7 @@ class kuna extends kuna$1 {
1746
1746
  // }
1747
1747
  // }
1748
1748
  //
1749
- const data = this.safeValue(response, 'data', {});
1749
+ const data = this.safeDict(response, 'data', {});
1750
1750
  return this.parseTransaction(data, currency);
1751
1751
  }
1752
1752
  parseTransaction(transaction, currency = undefined) {
@@ -1457,7 +1457,7 @@ class latoken extends latoken$1 {
1457
1457
  if (code !== undefined) {
1458
1458
  currency = this.currency(code);
1459
1459
  }
1460
- const content = this.safeValue(response, 'content', []);
1460
+ const content = this.safeList(response, 'content', []);
1461
1461
  return this.parseTransactions(content, currency, since, limit);
1462
1462
  }
1463
1463
  parseTransaction(transaction, currency = undefined) {
@@ -1584,7 +1584,7 @@ class latoken extends latoken$1 {
1584
1584
  // "hasContent": true
1585
1585
  // }
1586
1586
  //
1587
- const transfers = this.safeValue(response, 'content', []);
1587
+ const transfers = this.safeList(response, 'content', []);
1588
1588
  return this.parseTransfers(transfers, currency, since, limit);
1589
1589
  }
1590
1590
  async transfer(code, amount, fromAccount, toAccount, params = {}) {
@@ -632,7 +632,7 @@ class lbank extends lbank$1 {
632
632
  // }
633
633
  //
634
634
  const data = this.safeValue(response, 'data', []);
635
- const first = this.safeValue(data, 0, {});
635
+ const first = this.safeDict(data, 0, {});
636
636
  return this.parseTicker(first, market);
637
637
  }
638
638
  async fetchTickers(symbols = undefined, params = {}) {
@@ -712,7 +712,7 @@ class lbank extends lbank$1 {
712
712
  // "success": true
713
713
  // }
714
714
  //
715
- const data = this.safeValue(response, 'data', []);
715
+ const data = this.safeList(response, 'data', []);
716
716
  return this.parseTickers(data, symbols);
717
717
  }
718
718
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
@@ -958,7 +958,7 @@ class lbank extends lbank$1 {
958
958
  // "ts":1647021999308
959
959
  // }
960
960
  //
961
- const trades = this.safeValue(response, 'data', []);
961
+ const trades = this.safeList(response, 'data', []);
962
962
  return this.parseTrades(trades, market, since, limit);
963
963
  }
964
964
  parseOHLCV(ohlcv, market = undefined) {
@@ -1593,7 +1593,7 @@ class lbank extends lbank$1 {
1593
1593
  // "ts":1648164471827
1594
1594
  // }
1595
1595
  //
1596
- const result = this.safeValue(response, 'data', {});
1596
+ const result = this.safeDict(response, 'data', {});
1597
1597
  return this.parseOrder(result);
1598
1598
  }
1599
1599
  async fetchOrderDefault(id, symbol = undefined, params = {}) {
@@ -1699,7 +1699,7 @@ class lbank extends lbank$1 {
1699
1699
  // "ts":1648509742164
1700
1700
  // }
1701
1701
  //
1702
- const trades = this.safeValue(response, 'data', []);
1702
+ const trades = this.safeList(response, 'data', []);
1703
1703
  return this.parseTrades(trades, market, since, limit);
1704
1704
  }
1705
1705
  async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1759,7 +1759,7 @@ class lbank extends lbank$1 {
1759
1759
  // }
1760
1760
  //
1761
1761
  const result = this.safeValue(response, 'data', {});
1762
- const orders = this.safeValue(result, 'orders', []);
1762
+ const orders = this.safeList(result, 'orders', []);
1763
1763
  return this.parseOrders(orders, market, since, limit);
1764
1764
  }
1765
1765
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1816,7 +1816,7 @@ class lbank extends lbank$1 {
1816
1816
  // }
1817
1817
  //
1818
1818
  const result = this.safeValue(response, 'data', {});
1819
- const orders = this.safeValue(result, 'orders', []);
1819
+ const orders = this.safeList(result, 'orders', []);
1820
1820
  return this.parseOrders(orders, market, since, limit);
1821
1821
  }
1822
1822
  async cancelOrder(id, symbol = undefined, params = {}) {
@@ -2228,7 +2228,7 @@ class lbank extends lbank$1 {
2228
2228
  // }
2229
2229
  //
2230
2230
  const data = this.safeValue(response, 'data', {});
2231
- const deposits = this.safeValue(data, 'depositOrders', []);
2231
+ const deposits = this.safeList(data, 'depositOrders', []);
2232
2232
  return this.parseTransactions(deposits, currency, since, limit);
2233
2233
  }
2234
2234
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2285,7 +2285,7 @@ class lbank extends lbank$1 {
2285
2285
  // }
2286
2286
  //
2287
2287
  const data = this.safeValue(response, 'data', {});
2288
- const withdraws = this.safeValue(data, 'withdraws', []);
2288
+ const withdraws = this.safeList(data, 'withdraws', []);
2289
2289
  return this.parseTransactions(withdraws, currency, since, limit);
2290
2290
  }
2291
2291
  async fetchTransactionFees(codes = undefined, params = {}) {
@@ -2503,7 +2503,7 @@ class lbank extends lbank$1 {
2503
2503
  // "code": 0
2504
2504
  // }
2505
2505
  //
2506
- const data = this.safeValue(response, 'data', []);
2506
+ const data = this.safeList(response, 'data', []);
2507
2507
  return this.parseDepositWithdrawFees(data, codes, 'coin');
2508
2508
  }
2509
2509
  async fetchPublicDepositWithdrawFees(codes = undefined, params = {}) {
@@ -485,7 +485,7 @@ class luno extends luno$1 {
485
485
  request['pair'] = market['id'];
486
486
  }
487
487
  const response = await this.privateGetListorders(this.extend(request, params));
488
- const orders = this.safeValue(response, 'orders', []);
488
+ const orders = this.safeList(response, 'orders', []);
489
489
  return this.parseOrders(orders, market, since, limit);
490
490
  }
491
491
  async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -748,7 +748,7 @@ class luno extends luno$1 {
748
748
  // ]
749
749
  // }
750
750
  //
751
- const trades = this.safeValue(response, 'trades', []);
751
+ const trades = this.safeList(response, 'trades', []);
752
752
  return this.parseTrades(trades, market, since, limit);
753
753
  }
754
754
  async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
@@ -794,7 +794,7 @@ class luno extends luno$1 {
794
794
  // "pair": "XBTEUR"
795
795
  // }
796
796
  //
797
- const ohlcvs = this.safeValue(response, 'candles', []);
797
+ const ohlcvs = this.safeList(response, 'candles', []);
798
798
  return this.parseOHLCVs(ohlcvs, market, timeframe, since, limit);
799
799
  }
800
800
  parseOHLCV(ohlcv, market = undefined) {
@@ -863,7 +863,7 @@ class luno extends luno$1 {
863
863
  // ]
864
864
  // }
865
865
  //
866
- const trades = this.safeValue(response, 'trades', []);
866
+ const trades = this.safeList(response, 'trades', []);
867
867
  return this.parseTrades(trades, market, since, limit);
868
868
  }
869
869
  async fetchTradingFee(symbol, params = {}) {
@@ -514,7 +514,7 @@ class mercado extends mercado$1 {
514
514
  // }
515
515
  //
516
516
  const responseData = this.safeValue(response, 'response_data', {});
517
- const order = this.safeValue(responseData, 'order', {});
517
+ const order = this.safeDict(responseData, 'order', {});
518
518
  return this.parseOrder(order, market);
519
519
  }
520
520
  parseOrderStatus(status) {
@@ -617,7 +617,7 @@ class mercado extends mercado$1 {
617
617
  };
618
618
  const response = await this.privatePostGetOrder(this.extend(request, params));
619
619
  const responseData = this.safeValue(response, 'response_data', {});
620
- const order = this.safeValue(responseData, 'order');
620
+ const order = this.safeDict(responseData, 'order');
621
621
  return this.parseOrder(order, market);
622
622
  }
623
623
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -684,7 +684,7 @@ class mercado extends mercado$1 {
684
684
  // }
685
685
  //
686
686
  const responseData = this.safeValue(response, 'response_data', {});
687
- const withdrawal = this.safeValue(responseData, 'withdrawal');
687
+ const withdrawal = this.safeDict(responseData, 'withdrawal');
688
688
  return this.parseTransaction(withdrawal, currency);
689
689
  }
690
690
  parseTransaction(transaction, currency = undefined) {
@@ -789,7 +789,7 @@ class mercado extends mercado$1 {
789
789
  };
790
790
  const response = await this.privatePostListOrders(this.extend(request, params));
791
791
  const responseData = this.safeValue(response, 'response_data', {});
792
- const orders = this.safeValue(responseData, 'orders', []);
792
+ const orders = this.safeList(responseData, 'orders', []);
793
793
  return this.parseOrders(orders, market, since, limit);
794
794
  }
795
795
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -814,7 +814,7 @@ class mercado extends mercado$1 {
814
814
  };
815
815
  const response = await this.privatePostListOrders(this.extend(request, params));
816
816
  const responseData = this.safeValue(response, 'response_data', {});
817
- const orders = this.safeValue(responseData, 'orders', []);
817
+ const orders = this.safeList(responseData, 'orders', []);
818
818
  return this.parseOrders(orders, market, since, limit);
819
819
  }
820
820
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2831,7 +2831,7 @@ class mexc extends mexc$1 {
2831
2831
  // ]
2832
2832
  // }
2833
2833
  //
2834
- const data = this.safeValue(response, 'data');
2834
+ const data = this.safeList(response, 'data');
2835
2835
  return this.parseOrders(data, market);
2836
2836
  }
2837
2837
  }
@@ -3115,7 +3115,7 @@ class mexc extends mexc$1 {
3115
3115
  // ]
3116
3116
  // }
3117
3117
  //
3118
- const data = this.safeValue(response, 'data');
3118
+ const data = this.safeList(response, 'data');
3119
3119
  return this.parseOrders(data, market);
3120
3120
  }
3121
3121
  }
@@ -3209,7 +3209,7 @@ class mexc extends mexc$1 {
3209
3209
  // "code": "0"
3210
3210
  // }
3211
3211
  //
3212
- const data = this.safeValue(response, 'data', []);
3212
+ const data = this.safeList(response, 'data', []);
3213
3213
  return this.parseOrders(data, market);
3214
3214
  }
3215
3215
  }
@@ -4352,7 +4352,7 @@ class mexc extends mexc$1 {
4352
4352
  // ]
4353
4353
  // }
4354
4354
  //
4355
- const data = this.safeValue(response, 'data');
4355
+ const data = this.safeList(response, 'data');
4356
4356
  return this.parseLeverageTiers(data, symbols, 'symbol');
4357
4357
  }
4358
4358
  parseMarketLeverageTiers(info, market = undefined) {
@@ -4810,7 +4810,7 @@ class mexc extends mexc$1 {
4810
4810
  // ]
4811
4811
  // }
4812
4812
  //
4813
- const data = this.safeValue(response, 'data', []);
4813
+ const data = this.safeList(response, 'data', []);
4814
4814
  return this.parsePositions(data, symbols);
4815
4815
  }
4816
4816
  parsePosition(position, market = undefined) {
@@ -4901,7 +4901,7 @@ class mexc extends mexc$1 {
4901
4901
  // }
4902
4902
  // }
4903
4903
  //
4904
- const data = this.safeValue(response, 'data', {});
4904
+ const data = this.safeDict(response, 'data', {});
4905
4905
  return this.parseTransfer(data);
4906
4906
  }
4907
4907
  else if (marketType === 'swap') {
@@ -1939,7 +1939,7 @@ class ndax extends ndax$1 {
1939
1939
  // ]
1940
1940
  //
1941
1941
  const grouped = this.groupBy(response, 'ChangeReason');
1942
- const trades = this.safeValue(grouped, 'Trade', []);
1942
+ const trades = this.safeList(grouped, 'Trade', []);
1943
1943
  return this.parseTrades(trades, market, since, limit);
1944
1944
  }
1945
1945
  async fetchDepositAddress(code, params = {}) {
@@ -396,7 +396,7 @@ class novadax extends novadax$1 {
396
396
  // "message":"Success"
397
397
  // }
398
398
  //
399
- const data = this.safeValue(response, 'data', {});
399
+ const data = this.safeDict(response, 'data', {});
400
400
  return this.parseTicker(data, market);
401
401
  }
402
402
  async fetchTickers(symbols = undefined, params = {}) {
@@ -594,7 +594,7 @@ class novadax extends novadax$1 {
594
594
  // "message":"Success"
595
595
  // }
596
596
  //
597
- const data = this.safeValue(response, 'data', []);
597
+ const data = this.safeList(response, 'data', []);
598
598
  return this.parseTrades(data, market, since, limit);
599
599
  }
600
600
  async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
@@ -650,7 +650,7 @@ class novadax extends novadax$1 {
650
650
  // "message": "Success"
651
651
  // }
652
652
  //
653
- const data = this.safeValue(response, 'data', []);
653
+ const data = this.safeList(response, 'data', []);
654
654
  return this.parseOHLCVs(data, market, timeframe, since, limit);
655
655
  }
656
656
  parseOHLCV(ohlcv, market = undefined) {
@@ -829,7 +829,7 @@ class novadax extends novadax$1 {
829
829
  // "message": "Success"
830
830
  // }
831
831
  //
832
- const data = this.safeValue(response, 'data', {});
832
+ const data = this.safeDict(response, 'data', {});
833
833
  return this.parseOrder(data, market);
834
834
  }
835
835
  async cancelOrder(id, symbol = undefined, params = {}) {
@@ -857,7 +857,7 @@ class novadax extends novadax$1 {
857
857
  // "message": "Success"
858
858
  // }
859
859
  //
860
- const data = this.safeValue(response, 'data', {});
860
+ const data = this.safeDict(response, 'data', {});
861
861
  return this.parseOrder(data);
862
862
  }
863
863
  async fetchOrder(id, symbol = undefined, params = {}) {
@@ -896,7 +896,7 @@ class novadax extends novadax$1 {
896
896
  // "message": "Success"
897
897
  // }
898
898
  //
899
- const data = this.safeValue(response, 'data', {});
899
+ const data = this.safeDict(response, 'data', {});
900
900
  return this.parseOrder(data);
901
901
  }
902
902
  async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -956,7 +956,7 @@ class novadax extends novadax$1 {
956
956
  // "message": "Success"
957
957
  // }
958
958
  //
959
- const data = this.safeValue(response, 'data', []);
959
+ const data = this.safeList(response, 'data', []);
960
960
  return this.parseOrders(data, market, since, limit);
961
961
  }
962
962
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1357,7 +1357,7 @@ class novadax extends novadax$1 {
1357
1357
  // "message": "Success"
1358
1358
  // }
1359
1359
  //
1360
- const data = this.safeValue(response, 'data', []);
1360
+ const data = this.safeList(response, 'data', []);
1361
1361
  return this.parseTransactions(data, currency, since, limit);
1362
1362
  }
1363
1363
  parseTransactionStatus(status) {
@@ -1502,7 +1502,7 @@ class novadax extends novadax$1 {
1502
1502
  // "message": "Success"
1503
1503
  // }
1504
1504
  //
1505
- const data = this.safeValue(response, 'data', []);
1505
+ const data = this.safeList(response, 'data', []);
1506
1506
  return this.parseTrades(data, market, since, limit);
1507
1507
  }
1508
1508
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
@@ -268,7 +268,7 @@ class oceanex extends oceanex$1 {
268
268
  // }
269
269
  // }
270
270
  //
271
- const data = this.safeValue(response, 'data', {});
271
+ const data = this.safeDict(response, 'data', {});
272
272
  return this.parseTicker(data, market);
273
273
  }
274
274
  async fetchTickers(symbols = undefined, params = {}) {
@@ -496,7 +496,7 @@ class oceanex extends oceanex$1 {
496
496
  // ]
497
497
  // }
498
498
  //
499
- const data = this.safeValue(response, 'data');
499
+ const data = this.safeList(response, 'data');
500
500
  return this.parseTrades(data, market, since, limit);
501
501
  }
502
502
  parseTrade(trade, market = undefined) {
@@ -646,7 +646,7 @@ class oceanex extends oceanex$1 {
646
646
  request['price'] = this.priceToPrecision(symbol, price);
647
647
  }
648
648
  const response = await this.privatePostOrders(this.extend(request, params));
649
- const data = this.safeValue(response, 'data');
649
+ const data = this.safeDict(response, 'data');
650
650
  return this.parseOrder(data, market);
651
651
  }
652
652
  async fetchOrder(id, symbol = undefined, params = {}) {
@@ -797,7 +797,7 @@ class oceanex extends oceanex$1 {
797
797
  request['limit'] = limit;
798
798
  }
799
799
  const response = await this.publicPostK(this.extend(request, params));
800
- const ohlcvs = this.safeValue(response, 'data', []);
800
+ const ohlcvs = this.safeList(response, 'data', []);
801
801
  return this.parseOHLCVs(ohlcvs, market, timeframe, since, limit);
802
802
  }
803
803
  parseOrder(order, market = undefined) {
@@ -876,7 +876,7 @@ class oceanex extends oceanex$1 {
876
876
  */
877
877
  await this.loadMarkets();
878
878
  const response = await this.privatePostOrderDelete(this.extend({ 'id': id }, params));
879
- const data = this.safeValue(response, 'data');
879
+ const data = this.safeDict(response, 'data');
880
880
  return this.parseOrder(data);
881
881
  }
882
882
  async cancelOrders(ids, symbol = undefined, params = {}) {
@@ -892,7 +892,7 @@ class oceanex extends oceanex$1 {
892
892
  */
893
893
  await this.loadMarkets();
894
894
  const response = await this.privatePostOrderDeleteMulti(this.extend({ 'ids': ids }, params));
895
- const data = this.safeValue(response, 'data');
895
+ const data = this.safeList(response, 'data');
896
896
  return this.parseOrders(data);
897
897
  }
898
898
  async cancelAllOrders(symbol = undefined, params = {}) {
@@ -907,7 +907,7 @@ class oceanex extends oceanex$1 {
907
907
  */
908
908
  await this.loadMarkets();
909
909
  const response = await this.privatePostOrdersClear(params);
910
- const data = this.safeValue(response, 'data');
910
+ const data = this.safeList(response, 'data');
911
911
  return this.parseOrders(data);
912
912
  }
913
913
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
@@ -972,7 +972,7 @@ class okcoin extends okcoin$1 {
972
972
  'instType': 'SPOT',
973
973
  };
974
974
  const response = await this.publicGetMarketTickers(this.extend(request, params));
975
- const data = this.safeValue(response, 'data', []);
975
+ const data = this.safeList(response, 'data', []);
976
976
  return this.parseTickers(data, symbols, params);
977
977
  }
978
978
  parseTrade(trade, market = undefined) {
@@ -1081,7 +1081,7 @@ class okcoin extends okcoin$1 {
1081
1081
  else {
1082
1082
  response = await this.publicGetMarketHistoryTrades(this.extend(request, params));
1083
1083
  }
1084
- const data = this.safeValue(response, 'data', []);
1084
+ const data = this.safeList(response, 'data', []);
1085
1085
  return this.parseTrades(data, market, since, limit);
1086
1086
  }
1087
1087
  parseOHLCV(ohlcv, market = undefined) {
@@ -1133,8 +1133,10 @@ class okcoin extends okcoin$1 {
1133
1133
  const request = {
1134
1134
  'instId': market['id'],
1135
1135
  'bar': bar,
1136
- 'limit': limit,
1137
1136
  };
1137
+ if (limit !== undefined) {
1138
+ request['limit'] = limit; // default 100, max 100
1139
+ }
1138
1140
  let method = undefined;
1139
1141
  [method, params] = this.handleOptionAndParams(params, 'fetchOHLCV', 'method', 'publicGetMarketCandles');
1140
1142
  let response = undefined;
@@ -1144,7 +1146,7 @@ class okcoin extends okcoin$1 {
1144
1146
  else {
1145
1147
  response = await this.publicGetMarketHistoryCandles(this.extend(request, params));
1146
1148
  }
1147
- const data = this.safeValue(response, 'data', []);
1149
+ const data = this.safeList(response, 'data', []);
1148
1150
  return this.parseOHLCVs(data, market, timeframe, since, limit);
1149
1151
  }
1150
1152
  parseAccountBalance(response) {
@@ -1665,7 +1667,7 @@ class okcoin extends okcoin$1 {
1665
1667
  const response = await this.privatePostTradeCancelOrder(this.extend(request, query));
1666
1668
  // {"code":"0","data":[{"clOrdId":"","ordId":"317251910906576896","sCode":"0","sMsg":""}],"msg":""}
1667
1669
  const data = this.safeValue(response, 'data', []);
1668
- const order = this.safeValue(data, 0);
1670
+ const order = this.safeDict(data, 0);
1669
1671
  return this.parseOrder(order, market);
1670
1672
  }
1671
1673
  parseIds(ids) {
@@ -1766,7 +1768,7 @@ class okcoin extends okcoin$1 {
1766
1768
  // }
1767
1769
  //
1768
1770
  //
1769
- const ordersData = this.safeValue(response, 'data', []);
1771
+ const ordersData = this.safeList(response, 'data', []);
1770
1772
  return this.parseOrders(ordersData, market, undefined, undefined, params);
1771
1773
  }
1772
1774
  parseOrderStatus(status) {
@@ -2026,7 +2028,7 @@ class okcoin extends okcoin$1 {
2026
2028
  response = await this.privateGetTradeOrder(this.extend(request, query));
2027
2029
  }
2028
2030
  const data = this.safeValue(response, 'data', []);
2029
- const order = this.safeValue(data, 0);
2031
+ const order = this.safeDict(data, 0);
2030
2032
  return this.parseOrder(order);
2031
2033
  }
2032
2034
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2074,7 +2076,7 @@ class okcoin extends okcoin$1 {
2074
2076
  else {
2075
2077
  response = await this.privateGetTradeOrdersPending(this.extend(request, params));
2076
2078
  }
2077
- const data = this.safeValue(response, 'data', []);
2079
+ const data = this.safeList(response, 'data', []);
2078
2080
  return this.parseOrders(data, market, since, limit);
2079
2081
  }
2080
2082
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2163,7 +2165,7 @@ class okcoin extends okcoin$1 {
2163
2165
  // "msg":""
2164
2166
  // }
2165
2167
  //
2166
- const data = this.safeValue(response, 'data', []);
2168
+ const data = this.safeList(response, 'data', []);
2167
2169
  return this.parseOrders(data, market, since, limit);
2168
2170
  }
2169
2171
  parseDepositAddress(depositAddress, currency = undefined) {
@@ -2379,7 +2381,7 @@ class okcoin extends okcoin$1 {
2379
2381
  // }
2380
2382
  //
2381
2383
  const data = this.safeValue(response, 'data', []);
2382
- const rawTransfer = this.safeValue(data, 0, {});
2384
+ const rawTransfer = this.safeDict(data, 0, {});
2383
2385
  return this.parseTransfer(rawTransfer, currency);
2384
2386
  }
2385
2387
  parseTransfer(transfer, currency = undefined) {
@@ -2522,7 +2524,7 @@ class okcoin extends okcoin$1 {
2522
2524
  // }
2523
2525
  //
2524
2526
  const data = this.safeValue(response, 'data', []);
2525
- const transaction = this.safeValue(data, 0);
2527
+ const transaction = this.safeDict(data, 0);
2526
2528
  return this.parseTransaction(transaction, currency);
2527
2529
  }
2528
2530
  async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2596,7 +2598,7 @@ class okcoin extends okcoin$1 {
2596
2598
  // ]
2597
2599
  // }
2598
2600
  //
2599
- const data = this.safeValue(response, 'data', []);
2601
+ const data = this.safeList(response, 'data', []);
2600
2602
  return this.parseTransactions(data, currency, since, limit, params);
2601
2603
  }
2602
2604
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2662,7 +2664,7 @@ class okcoin extends okcoin$1 {
2662
2664
  // ]
2663
2665
  // }
2664
2666
  //
2665
- const data = this.safeValue(response, 'data', []);
2667
+ const data = this.safeList(response, 'data', []);
2666
2668
  return this.parseTransactions(data, currency, since, limit, params);
2667
2669
  }
2668
2670
  parseTransactionStatus(status) {
@@ -2833,7 +2835,7 @@ class okcoin extends okcoin$1 {
2833
2835
  else {
2834
2836
  response = await this.privateGetTradeFills(this.extend(request, params));
2835
2837
  }
2836
- const data = this.safeValue(response, 'data', []);
2838
+ const data = this.safeList(response, 'data', []);
2837
2839
  return this.parseTrades(data, market, since, limit);
2838
2840
  }
2839
2841
  async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {