ccxt 4.4.94 → 4.4.96

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 (125) hide show
  1. package/README.md +7 -7
  2. package/dist/ccxt.browser.min.js +7 -7
  3. package/dist/cjs/ccxt.js +4 -1
  4. package/dist/cjs/src/abstract/foxbit.js +9 -0
  5. package/dist/cjs/src/apex.js +2 -2
  6. package/dist/cjs/src/ascendex.js +3 -3
  7. package/dist/cjs/src/base/Exchange.js +8 -4
  8. package/dist/cjs/src/base/ws/Future.js +2 -2
  9. package/dist/cjs/src/bingx.js +148 -94
  10. package/dist/cjs/src/bitget.js +32 -144
  11. package/dist/cjs/src/bitmart.js +2 -2
  12. package/dist/cjs/src/bitrue.js +15 -8
  13. package/dist/cjs/src/bitstamp.js +1 -0
  14. package/dist/cjs/src/blofin.js +7 -1
  15. package/dist/cjs/src/bybit.js +17 -6
  16. package/dist/cjs/src/coinbase.js +36 -0
  17. package/dist/cjs/src/coinbaseexchange.js +4 -2
  18. package/dist/cjs/src/coinmate.js +34 -0
  19. package/dist/cjs/src/coinone.js +34 -0
  20. package/dist/cjs/src/coinsph.js +29 -0
  21. package/dist/cjs/src/coinspot.js +36 -1
  22. package/dist/cjs/src/cryptocom.js +2 -1
  23. package/dist/cjs/src/cryptomus.js +41 -1
  24. package/dist/cjs/src/defx.js +1 -1
  25. package/dist/cjs/src/derive.js +1 -1
  26. package/dist/cjs/src/ellipx.js +40 -0
  27. package/dist/cjs/src/foxbit.js +2016 -0
  28. package/dist/cjs/src/gate.js +1 -1
  29. package/dist/cjs/src/hyperliquid.js +3 -2
  30. package/dist/cjs/src/kucoin.js +1 -1
  31. package/dist/cjs/src/kucoinfutures.js +3 -2
  32. package/dist/cjs/src/mexc.js +28 -13
  33. package/dist/cjs/src/modetrade.js +3 -3
  34. package/dist/cjs/src/okcoin.js +1 -1
  35. package/dist/cjs/src/okx.js +12 -3
  36. package/dist/cjs/src/onetrading.js +1 -1
  37. package/dist/cjs/src/oxfun.js +2 -1
  38. package/dist/cjs/src/paradex.js +2 -2
  39. package/dist/cjs/src/pro/hyperliquid.js +6 -6
  40. package/dist/cjs/src/pro/kraken.js +18 -18
  41. package/dist/cjs/src/pro/mexc.js +10 -10
  42. package/dist/cjs/src/vertex.js +3 -2
  43. package/dist/cjs/src/woo.js +1281 -894
  44. package/dist/cjs/src/woofipro.js +2 -2
  45. package/js/ccxt.d.ts +5 -2
  46. package/js/ccxt.js +4 -2
  47. package/js/src/abstract/bingx.d.ts +3 -0
  48. package/js/src/abstract/foxbit.d.ts +29 -0
  49. package/js/src/abstract/foxbit.js +11 -0
  50. package/js/src/abstract/woo.d.ts +58 -3
  51. package/js/src/apex.d.ts +2 -2
  52. package/js/src/apex.js +2 -2
  53. package/js/src/ascendex.d.ts +1 -1
  54. package/js/src/ascendex.js +3 -3
  55. package/js/src/base/Exchange.d.ts +7 -6
  56. package/js/src/base/Exchange.js +8 -4
  57. package/js/src/base/ws/Future.js +2 -2
  58. package/js/src/bingx.d.ts +6 -6
  59. package/js/src/bingx.js +148 -94
  60. package/js/src/bitget.js +32 -144
  61. package/js/src/bitmart.d.ts +2 -2
  62. package/js/src/bitmart.js +2 -2
  63. package/js/src/bitrue.js +15 -8
  64. package/js/src/bitstamp.js +2 -1
  65. package/js/src/bittrade.d.ts +1 -1
  66. package/js/src/blofin.d.ts +2 -1
  67. package/js/src/blofin.js +7 -1
  68. package/js/src/bybit.d.ts +1 -1
  69. package/js/src/bybit.js +17 -6
  70. package/js/src/coinbase.js +36 -0
  71. package/js/src/coinbaseexchange.d.ts +2 -2
  72. package/js/src/coinbaseexchange.js +4 -2
  73. package/js/src/coinbaseinternational.d.ts +2 -2
  74. package/js/src/coinmate.js +34 -0
  75. package/js/src/coinone.js +34 -0
  76. package/js/src/coinsph.js +29 -0
  77. package/js/src/coinspot.d.ts +1 -1
  78. package/js/src/coinspot.js +36 -1
  79. package/js/src/cryptocom.d.ts +1 -1
  80. package/js/src/cryptocom.js +2 -1
  81. package/js/src/cryptomus.d.ts +1 -1
  82. package/js/src/cryptomus.js +41 -1
  83. package/js/src/defx.d.ts +2 -2
  84. package/js/src/defx.js +1 -1
  85. package/js/src/derive.d.ts +2 -2
  86. package/js/src/derive.js +1 -1
  87. package/js/src/digifinex.d.ts +1 -1
  88. package/js/src/ellipx.js +40 -0
  89. package/js/src/foxbit.d.ts +352 -0
  90. package/js/src/foxbit.js +2016 -0
  91. package/js/src/gate.js +1 -1
  92. package/js/src/htx.d.ts +2 -2
  93. package/js/src/hyperliquid.d.ts +2 -2
  94. package/js/src/hyperliquid.js +3 -2
  95. package/js/src/krakenfutures.d.ts +1 -1
  96. package/js/src/kucoin.d.ts +1 -1
  97. package/js/src/kucoin.js +1 -1
  98. package/js/src/kucoinfutures.d.ts +3 -3
  99. package/js/src/kucoinfutures.js +3 -2
  100. package/js/src/mexc.d.ts +1 -1
  101. package/js/src/mexc.js +28 -13
  102. package/js/src/modetrade.d.ts +2 -4
  103. package/js/src/modetrade.js +3 -3
  104. package/js/src/ndax.d.ts +1 -1
  105. package/js/src/okcoin.d.ts +1 -1
  106. package/js/src/okcoin.js +1 -1
  107. package/js/src/okx.d.ts +1 -1
  108. package/js/src/okx.js +12 -3
  109. package/js/src/onetrading.d.ts +1 -1
  110. package/js/src/onetrading.js +1 -1
  111. package/js/src/oxfun.d.ts +1 -1
  112. package/js/src/oxfun.js +2 -1
  113. package/js/src/paradex.d.ts +1 -1
  114. package/js/src/paradex.js +2 -2
  115. package/js/src/pro/hyperliquid.js +6 -6
  116. package/js/src/pro/kraken.js +18 -18
  117. package/js/src/pro/mexc.js +10 -10
  118. package/js/src/timex.d.ts +1 -1
  119. package/js/src/vertex.d.ts +2 -2
  120. package/js/src/vertex.js +3 -2
  121. package/js/src/woo.d.ts +80 -50
  122. package/js/src/woo.js +1281 -894
  123. package/js/src/woofipro.d.ts +2 -4
  124. package/js/src/woofipro.js +2 -2
  125. package/package.json +7 -7
@@ -3908,7 +3908,7 @@ class gate extends gate$1 {
3908
3908
  request['from'] = start;
3909
3909
  request['to'] = this.sum(start, 30 * 24 * 60 * 60);
3910
3910
  }
3911
- [request, params] = this.handleUntilOption('to', request, params);
3911
+ [request, params] = this.handleUntilOption('to', request, params, 0.001);
3912
3912
  const response = await this.privateWalletGetDeposits(this.extend(request, params));
3913
3913
  return this.parseTransactions(response, currency);
3914
3914
  }
@@ -164,6 +164,7 @@ class hyperliquid extends hyperliquid$1 {
164
164
  'orderStatus': 2,
165
165
  'spotClearinghouseState': 2,
166
166
  'exchangeStatus': 2,
167
+ 'candleSnapshot': 4,
167
168
  },
168
169
  },
169
170
  },
@@ -1866,7 +1867,7 @@ class hyperliquid extends hyperliquid$1 {
1866
1867
  // }
1867
1868
  // }
1868
1869
  //
1869
- return response;
1870
+ return [this.safeOrder({ 'info': response })];
1870
1871
  }
1871
1872
  /**
1872
1873
  * @method
@@ -3766,7 +3767,7 @@ class hyperliquid extends hyperliquid$1 {
3766
3767
  if (coin.indexOf('/') > -1 || coin.indexOf('@') > -1) {
3767
3768
  return coin; // spot
3768
3769
  }
3769
- return coin + '/USDC:USDC';
3770
+ return this.safeCurrencyCode(coin) + '/USDC:USDC';
3770
3771
  }
3771
3772
  handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
3772
3773
  if (!response) {
@@ -2721,7 +2721,7 @@ class kucoin extends kucoin$1 {
2721
2721
  else {
2722
2722
  response = await this.privateDeleteOrders(this.extend(request, query));
2723
2723
  }
2724
- return response;
2724
+ return [this.safeOrder({ 'info': response })];
2725
2725
  }
2726
2726
  /**
2727
2727
  * @method
@@ -1768,7 +1768,7 @@ class kucoinfutures extends kucoinfutures$1 {
1768
1768
  // },
1769
1769
  // }
1770
1770
  //
1771
- return this.safeValue(response, 'data');
1771
+ return this.safeOrder({ 'info': response });
1772
1772
  }
1773
1773
  /**
1774
1774
  * @method
@@ -1867,7 +1867,8 @@ class kucoinfutures extends kucoinfutures$1 {
1867
1867
  // },
1868
1868
  // }
1869
1869
  //
1870
- return this.safeValue(response, 'data');
1870
+ const data = this.safeDict(response, 'data');
1871
+ return [this.safeOrder({ 'info': data })];
1871
1872
  }
1872
1873
  /**
1873
1874
  * @method
@@ -4887,11 +4887,14 @@ class mexc extends mexc$1 {
4887
4887
  // "network": "TRX",
4888
4888
  // "status": "5",
4889
4889
  // "address": "TSMcEDDvkqY9dz8RkFnrS86U59GwEZjfvh",
4890
- // "txId": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b",
4890
+ // "txId": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b:0",
4891
4891
  // "insertTime": "1664805021000",
4892
4892
  // "unlockConfirm": "200",
4893
4893
  // "confirmTimes": "203",
4894
- // "memo": "xxyy1122"
4894
+ // "memo": "xxyy1122",
4895
+ // "transHash": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b",
4896
+ // "updateTime": "1664805621000",
4897
+ // "netWork: "TRX"
4895
4898
  // }
4896
4899
  // ]
4897
4900
  //
@@ -4936,7 +4939,7 @@ class mexc extends mexc$1 {
4936
4939
  // [
4937
4940
  // {
4938
4941
  // "id": "adcd1c8322154de691b815eedcd10c42",
4939
- // "txId": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
4942
+ // "txId": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0:0",
4940
4943
  // "coin": "USDC-MATIC",
4941
4944
  // "network": "MATIC",
4942
4945
  // "address": "0xeE6C7a415995312ED52c53a0f8f03e165e0A5D62",
@@ -4947,7 +4950,11 @@ class mexc extends mexc$1 {
4947
4950
  // "confirmNo": null,
4948
4951
  // "applyTime": "1664882739000",
4949
4952
  // "remark": '',
4950
- // "memo": null
4953
+ // "memo": null,
4954
+ // "explorerUrl": "https://etherscan.io/tx/0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
4955
+ // "transHash": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
4956
+ // "updateTime": "1664882799000",
4957
+ // "netWork: "MATIC"
4951
4958
  // }
4952
4959
  // ]
4953
4960
  //
@@ -4963,18 +4970,21 @@ class mexc extends mexc$1 {
4963
4970
  // "network": "TRX",
4964
4971
  // "status": "5",
4965
4972
  // "address": "TSMcEDDvkqY9dz8RkFnrS86U59GwEZjfvh",
4966
- // "txId": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b",
4973
+ // "txId": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b:0",
4967
4974
  // "insertTime": "1664805021000",
4968
4975
  // "unlockConfirm": "200",
4969
4976
  // "confirmTimes": "203",
4970
- // "memo": "xxyy1122"
4977
+ // "memo": "xxyy1122",
4978
+ // "transHash": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b",
4979
+ // "updateTime": "1664805621000",
4980
+ // "netWork: "TRX"
4971
4981
  // }
4972
4982
  //
4973
4983
  // fetchWithdrawals
4974
4984
  //
4975
4985
  // {
4976
4986
  // "id": "adcd1c8322154de691b815eedcd10c42",
4977
- // "txId": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
4987
+ // "txId": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0:0",
4978
4988
  // "coin": "USDC-MATIC",
4979
4989
  // "network": "MATIC",
4980
4990
  // "address": "0xeE6C7a415995312ED52c53a0f8f03e165e0A5D62",
@@ -4984,8 +4994,12 @@ class mexc extends mexc$1 {
4984
4994
  // "transactionFee": "1",
4985
4995
  // "confirmNo": null,
4986
4996
  // "applyTime": "1664882739000",
4987
- // "remark": '',
4988
- // "memo": null
4997
+ // "remark": "",
4998
+ // "memo": null,
4999
+ // "explorerUrl": "https://etherscan.io/tx/0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
5000
+ // "transHash": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
5001
+ // "updateTime": "1664882799000",
5002
+ // "netWork: "MATIC"
4989
5003
  // }
4990
5004
  //
4991
5005
  // withdraw
@@ -4997,6 +5011,7 @@ class mexc extends mexc$1 {
4997
5011
  const id = this.safeString(transaction, 'id');
4998
5012
  const type = (id === undefined) ? 'deposit' : 'withdrawal';
4999
5013
  const timestamp = this.safeInteger2(transaction, 'insertTime', 'applyTime');
5014
+ const updated = this.safeInteger(transaction, 'updateTime');
5000
5015
  let currencyId = undefined;
5001
5016
  const currencyWithNetwork = this.safeString(transaction, 'coin');
5002
5017
  if (currencyWithNetwork !== undefined) {
@@ -5011,7 +5026,7 @@ class mexc extends mexc$1 {
5011
5026
  const status = this.parseTransactionStatusByType(this.safeString(transaction, 'status'), type);
5012
5027
  let amountString = this.safeString(transaction, 'amount');
5013
5028
  const address = this.safeString(transaction, 'address');
5014
- const txid = this.safeString(transaction, 'txId');
5029
+ const txid = this.safeString2(transaction, 'transHash', 'txId');
5015
5030
  let fee = undefined;
5016
5031
  const feeCostString = this.safeString(transaction, 'transactionFee');
5017
5032
  if (feeCostString !== undefined) {
@@ -5041,8 +5056,8 @@ class mexc extends mexc$1 {
5041
5056
  'amount': this.parseNumber(amountString),
5042
5057
  'currency': code,
5043
5058
  'status': status,
5044
- 'updated': undefined,
5045
- 'comment': undefined,
5059
+ 'updated': updated,
5060
+ 'comment': this.safeString(transaction, 'remark'),
5046
5061
  'internal': undefined,
5047
5062
  'fee': fee,
5048
5063
  };
@@ -5982,7 +5997,7 @@ class mexc extends mexc$1 {
5982
5997
  //
5983
5998
  // { success: true, code: '0' }
5984
5999
  //
5985
- return this.parseLeverage(response, market);
6000
+ return this.parseLeverage(response, market); // tmp revert type
5986
6001
  }
5987
6002
  nonce() {
5988
6003
  return this.milliseconds() - this.safeInteger(this.options, 'timeDifference', 0);
@@ -23,7 +23,7 @@ class modetrade extends modetrade$1 {
23
23
  'countries': ['KY'],
24
24
  'rateLimit': 100,
25
25
  'version': 'v1',
26
- 'certified': true,
26
+ 'certified': false,
27
27
  'pro': true,
28
28
  'dex': true,
29
29
  'hostname': 'trade.mode.network',
@@ -1809,9 +1809,9 @@ class modetrade extends modetrade$1 {
1809
1809
  // }
1810
1810
  //
1811
1811
  return [
1812
- {
1812
+ this.safeOrder({
1813
1813
  'info': response,
1814
- },
1814
+ }),
1815
1815
  ];
1816
1816
  }
1817
1817
  /**
@@ -1722,7 +1722,7 @@ class okcoin extends okcoin$1 {
1722
1722
  const advanced = this.safeValue(params, 'advanced');
1723
1723
  if (trigger || advanced) {
1724
1724
  const orderInner = await this.cancelOrders([id], symbol, params);
1725
- return this.safeValue(orderInner, 0);
1725
+ return this.safeDict(orderInner, 0);
1726
1726
  }
1727
1727
  const market = this.market(symbol);
1728
1728
  const request = {
@@ -1147,7 +1147,9 @@ class okx extends okx$1 {
1147
1147
  },
1148
1148
  'createOrder': 'privatePostTradeBatchOrders',
1149
1149
  'createMarketBuyOrderRequiresPrice': false,
1150
- 'fetchMarkets': ['spot', 'future', 'swap', 'option'],
1150
+ 'fetchMarkets': {
1151
+ 'types': ['spot', 'future', 'swap', 'option'], // spot, future, swap, option
1152
+ },
1151
1153
  'timeDifference': 0,
1152
1154
  'adjustForTimeDifference': false,
1153
1155
  'defaultType': 'spot',
@@ -1544,7 +1546,14 @@ class okx extends okx$1 {
1544
1546
  if (this.options['adjustForTimeDifference']) {
1545
1547
  await this.loadTimeDifference();
1546
1548
  }
1547
- const types = this.safeList(this.options, 'fetchMarkets', []);
1549
+ let types = ['spot', 'future', 'swap', 'option'];
1550
+ const fetchMarketsOption = this.safeDict(this.options, 'fetchMarkets');
1551
+ if (fetchMarketsOption !== undefined) {
1552
+ types = this.safeList(fetchMarketsOption, 'types', types);
1553
+ }
1554
+ else {
1555
+ types = this.safeList(this.options, 'fetchMarkets', types); // backward-support
1556
+ }
1548
1557
  let promises = [];
1549
1558
  let result = [];
1550
1559
  for (let i = 0; i < types.length; i++) {
@@ -3477,7 +3486,7 @@ class okx extends okx$1 {
3477
3486
  const trailing = this.safeBool(params, 'trailing', false);
3478
3487
  if (trigger || trailing) {
3479
3488
  const orderInner = await this.cancelOrders([id], symbol, params);
3480
- return this.safeValue(orderInner, 0);
3489
+ return this.safeDict(orderInner, 0);
3481
3490
  }
3482
3491
  await this.loadMarkets();
3483
3492
  const market = this.market(symbol);
@@ -1335,7 +1335,7 @@ class onetrading extends onetrading$1 {
1335
1335
  // "a10e9bd1-8f72-4cfe-9f1b-7f1c8a9bd8ee"
1336
1336
  // ]
1337
1337
  //
1338
- return response;
1338
+ return [this.safeOrder({ 'info': response })];
1339
1339
  }
1340
1340
  /**
1341
1341
  * @method
@@ -2638,7 +2638,8 @@ class oxfun extends oxfun$1 {
2638
2638
  // "data": { "notice": "No working orders found" }
2639
2639
  // }
2640
2640
  //
2641
- return await this.privateDeleteV3OrdersCancelAll(this.extend(request, params));
2641
+ const response = await this.privateDeleteV3OrdersCancelAll(this.extend(request, params));
2642
+ return [this.safeOrder({ 'info': response })];
2642
2643
  }
2643
2644
  /**
2644
2645
  * @method
@@ -1261,7 +1261,7 @@ class paradex extends paradex$1 {
1261
1261
  const cancelReason = this.safeString(order, 'cancel_reason');
1262
1262
  let status = this.safeString(order, 'status');
1263
1263
  if (cancelReason !== undefined) {
1264
- if (cancelReason === 'NOT_ENOUGH_MARGIN') {
1264
+ if (cancelReason === 'NOT_ENOUGH_MARGIN' || cancelReason === 'ORDER_EXCEEDS_POSITION_LIMIT') {
1265
1265
  status = 'rejected';
1266
1266
  }
1267
1267
  else {
@@ -1564,7 +1564,7 @@ class paradex extends paradex$1 {
1564
1564
  //
1565
1565
  // if success, no response...
1566
1566
  //
1567
- return response;
1567
+ return [this.safeOrder({ 'info': response })];
1568
1568
  }
1569
1569
  /**
1570
1570
  * @method
@@ -162,7 +162,7 @@ class hyperliquid extends hyperliquid$1 {
162
162
  'method': 'subscribe',
163
163
  'subscription': {
164
164
  'type': 'l2Book',
165
- 'coin': market['swap'] ? market['base'] : market['id'],
165
+ 'coin': market['swap'] ? market['baseName'] : market['id'],
166
166
  },
167
167
  };
168
168
  const message = this.extend(request, params);
@@ -191,7 +191,7 @@ class hyperliquid extends hyperliquid$1 {
191
191
  'method': 'unsubscribe',
192
192
  'subscription': {
193
193
  'type': 'l2Book',
194
- 'coin': market['swap'] ? market['base'] : market['id'],
194
+ 'coin': market['swap'] ? market['baseName'] : market['id'],
195
195
  },
196
196
  };
197
197
  const message = this.extend(request, params);
@@ -499,7 +499,7 @@ class hyperliquid extends hyperliquid$1 {
499
499
  'method': 'subscribe',
500
500
  'subscription': {
501
501
  'type': 'trades',
502
- 'coin': market['swap'] ? market['base'] : market['id'],
502
+ 'coin': market['swap'] ? market['baseName'] : market['id'],
503
503
  },
504
504
  };
505
505
  const message = this.extend(request, params);
@@ -529,7 +529,7 @@ class hyperliquid extends hyperliquid$1 {
529
529
  'method': 'unsubscribe',
530
530
  'subscription': {
531
531
  'type': 'trades',
532
- 'coin': market['swap'] ? market['base'] : market['id'],
532
+ 'coin': market['swap'] ? market['baseName'] : market['id'],
533
533
  },
534
534
  };
535
535
  const message = this.extend(request, params);
@@ -656,7 +656,7 @@ class hyperliquid extends hyperliquid$1 {
656
656
  'method': 'subscribe',
657
657
  'subscription': {
658
658
  'type': 'candle',
659
- 'coin': market['swap'] ? market['base'] : market['id'],
659
+ 'coin': market['swap'] ? market['baseName'] : market['id'],
660
660
  'interval': timeframe,
661
661
  },
662
662
  };
@@ -687,7 +687,7 @@ class hyperliquid extends hyperliquid$1 {
687
687
  'method': 'unsubscribe',
688
688
  'subscription': {
689
689
  'type': 'candle',
690
- 'coin': market['swap'] ? market['base'] : market['id'],
690
+ 'coin': market['swap'] ? market['baseName'] : market['id'],
691
691
  'interval': timeframe,
692
692
  },
693
693
  };
@@ -777,18 +777,16 @@ class kraken extends kraken$1 {
777
777
  * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
778
778
  */
779
779
  async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
780
- const request = {};
780
+ const requiredParams = {};
781
781
  if (limit !== undefined) {
782
782
  if (this.inArray(limit, [10, 25, 100, 500, 1000])) {
783
- request['params'] = {
784
- 'depth': limit, // default 10, valid options 10, 25, 100, 500, 1000
785
- };
783
+ requiredParams['depth'] = limit; // default 10, valid options 10, 25, 100, 500, 1000
786
784
  }
787
785
  else {
788
786
  throw new errors.NotSupported(this.id + ' watchOrderBook accepts limit values of 10, 25, 100, 500 and 1000 only');
789
787
  }
790
788
  }
791
- const orderbook = await this.watchMultiHelper('orderbook', 'book', symbols, { 'limit': limit }, this.extend(request, params));
789
+ const orderbook = await this.watchMultiHelper('orderbook', 'book', symbols, { 'limit': limit }, this.extend(requiredParams, params));
792
790
  return orderbook.limit();
793
791
  }
794
792
  /**
@@ -1708,20 +1706,22 @@ class kraken extends kraken$1 {
1708
1706
  //
1709
1707
  const errorMessage = this.safeString2(message, 'errorMessage', 'error');
1710
1708
  if (errorMessage !== undefined) {
1711
- const requestId = this.safeValue2(message, 'reqid', 'req_id');
1712
- if (requestId !== undefined) {
1713
- const broad = this.exceptions['ws']['broad'];
1714
- const broadKey = this.findBroadlyMatchedKey(broad, errorMessage);
1715
- let exception = undefined;
1716
- if (broadKey === undefined) {
1717
- exception = new errors.ExchangeError(errorMessage); // c# requirement to convert the errorMessage to string
1718
- }
1719
- else {
1720
- exception = new broad[broadKey](errorMessage);
1721
- }
1722
- client.reject(exception, requestId);
1723
- return false;
1709
+ // const requestId = this.safeValue2 (message, 'reqid', 'req_id');
1710
+ const broad = this.exceptions['ws']['broad'];
1711
+ const broadKey = this.findBroadlyMatchedKey(broad, errorMessage);
1712
+ let exception = undefined;
1713
+ if (broadKey === undefined) {
1714
+ exception = new errors.ExchangeError(errorMessage); // c# requirement to convert the errorMessage to string
1724
1715
  }
1716
+ else {
1717
+ exception = new broad[broadKey](errorMessage);
1718
+ }
1719
+ // if (requestId !== undefined) {
1720
+ // client.reject (exception, requestId);
1721
+ // } else {
1722
+ client.reject(exception);
1723
+ // }
1724
+ return false;
1725
1725
  }
1726
1726
  return true;
1727
1727
  }
@@ -1442,7 +1442,7 @@ class mexc extends mexc$1 {
1442
1442
  }
1443
1443
  url = this.urls['api']['ws']['spot'];
1444
1444
  params['unsubscribed'] = true;
1445
- this.watchSpotPublic(channel, messageHash, params);
1445
+ await this.watchSpotPublic(channel, messageHash, params);
1446
1446
  }
1447
1447
  else {
1448
1448
  channel = 'unsub.ticker';
@@ -1450,7 +1450,7 @@ class mexc extends mexc$1 {
1450
1450
  'symbol': market['id'],
1451
1451
  };
1452
1452
  url = this.urls['api']['ws']['swap'];
1453
- this.watchSwapPublic(channel, messageHash, requestParams, params);
1453
+ await this.watchSwapPublic(channel, messageHash, requestParams, params);
1454
1454
  }
1455
1455
  const client = this.client(url);
1456
1456
  this.handleUnsubscriptions(client, [messageHash]);
@@ -1514,7 +1514,7 @@ class mexc extends mexc$1 {
1514
1514
  messageHashes.push('unsubscribe:ticker');
1515
1515
  }
1516
1516
  const client = this.client(url);
1517
- this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
1517
+ await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
1518
1518
  this.handleUnsubscriptions(client, messageHashes);
1519
1519
  return undefined;
1520
1520
  }
@@ -1554,7 +1554,7 @@ class mexc extends mexc$1 {
1554
1554
  'params': topics,
1555
1555
  };
1556
1556
  const client = this.client(url);
1557
- this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
1557
+ await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
1558
1558
  this.handleUnsubscriptions(client, messageHashes);
1559
1559
  return undefined;
1560
1560
  }
@@ -1580,7 +1580,7 @@ class mexc extends mexc$1 {
1580
1580
  url = this.urls['api']['ws']['spot'];
1581
1581
  const channel = 'spot@public.kline.v3.api@' + market['id'] + '@' + timeframeId;
1582
1582
  params['unsubscribed'] = true;
1583
- this.watchSpotPublic(channel, messageHash, params);
1583
+ await this.watchSpotPublic(channel, messageHash, params);
1584
1584
  }
1585
1585
  else {
1586
1586
  url = this.urls['api']['ws']['swap'];
@@ -1589,7 +1589,7 @@ class mexc extends mexc$1 {
1589
1589
  'symbol': market['id'],
1590
1590
  'interval': timeframeId,
1591
1591
  };
1592
- this.watchSwapPublic(channel, messageHash, requestParams, params);
1592
+ await this.watchSwapPublic(channel, messageHash, requestParams, params);
1593
1593
  }
1594
1594
  const client = this.client(url);
1595
1595
  this.handleUnsubscriptions(client, [messageHash]);
@@ -1613,7 +1613,7 @@ class mexc extends mexc$1 {
1613
1613
  url = this.urls['api']['ws']['spot'];
1614
1614
  const channel = 'spot@public.increase.depth.v3.api@' + market['id'];
1615
1615
  params['unsubscribed'] = true;
1616
- this.watchSpotPublic(channel, messageHash, params);
1616
+ await this.watchSpotPublic(channel, messageHash, params);
1617
1617
  }
1618
1618
  else {
1619
1619
  url = this.urls['api']['ws']['swap'];
@@ -1621,7 +1621,7 @@ class mexc extends mexc$1 {
1621
1621
  const requestParams = {
1622
1622
  'symbol': market['id'],
1623
1623
  };
1624
- this.watchSwapPublic(channel, messageHash, requestParams, params);
1624
+ await this.watchSwapPublic(channel, messageHash, requestParams, params);
1625
1625
  }
1626
1626
  const client = this.client(url);
1627
1627
  this.handleUnsubscriptions(client, [messageHash]);
@@ -1646,7 +1646,7 @@ class mexc extends mexc$1 {
1646
1646
  url = this.urls['api']['ws']['spot'];
1647
1647
  const channel = 'spot@public.deals.v3.api@' + market['id'];
1648
1648
  params['unsubscribed'] = true;
1649
- this.watchSpotPublic(channel, messageHash, params);
1649
+ await this.watchSpotPublic(channel, messageHash, params);
1650
1650
  }
1651
1651
  else {
1652
1652
  url = this.urls['api']['ws']['swap'];
@@ -1654,7 +1654,7 @@ class mexc extends mexc$1 {
1654
1654
  const requestParams = {
1655
1655
  'symbol': market['id'],
1656
1656
  };
1657
- this.watchSwapPublic(channel, messageHash, requestParams, params);
1657
+ await this.watchSwapPublic(channel, messageHash, requestParams, params);
1658
1658
  }
1659
1659
  const client = this.client(url);
1660
1660
  this.handleUnsubscriptions(client, [messageHash]);
@@ -2421,7 +2421,7 @@ class vertex extends vertex$1 {
2421
2421
  // }
2422
2422
  //
2423
2423
  }
2424
- return response;
2424
+ return [this.safeOrder({ 'info': response })];
2425
2425
  }
2426
2426
  /**
2427
2427
  * @method
@@ -2435,7 +2435,8 @@ class vertex extends vertex$1 {
2435
2435
  * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
2436
2436
  */
2437
2437
  async cancelOrder(id, symbol = undefined, params = {}) {
2438
- return await this.cancelOrders([id], symbol, params);
2438
+ const order = await this.cancelOrders([id], symbol, params);
2439
+ return this.safeOrder({ 'info': order });
2439
2440
  }
2440
2441
  /**
2441
2442
  * @method