ccxt 4.4.39 → 4.4.40

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 (185) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/ascendex.js +9 -9
  5. package/dist/cjs/src/base/Exchange.js +12 -18
  6. package/dist/cjs/src/binance.js +13 -19
  7. package/dist/cjs/src/bingx.js +1 -2
  8. package/dist/cjs/src/bit2c.js +0 -1
  9. package/dist/cjs/src/bitbank.js +0 -1
  10. package/dist/cjs/src/bitbns.js +0 -1
  11. package/dist/cjs/src/bitfinex.js +17 -18
  12. package/dist/cjs/src/bitfinex1.js +0 -1
  13. package/dist/cjs/src/bitflyer.js +0 -1
  14. package/dist/cjs/src/bitget.js +1 -2
  15. package/dist/cjs/src/bithumb.js +0 -1
  16. package/dist/cjs/src/bitmart.js +3 -4
  17. package/dist/cjs/src/bitmex.js +5 -6
  18. package/dist/cjs/src/bitopro.js +4 -5
  19. package/dist/cjs/src/bitrue.js +5 -7
  20. package/dist/cjs/src/bitso.js +1 -2
  21. package/dist/cjs/src/bitstamp.js +1 -2
  22. package/dist/cjs/src/bitteam.js +1 -3
  23. package/dist/cjs/src/bitvavo.js +2 -4
  24. package/dist/cjs/src/blockchaincom.js +5 -5
  25. package/dist/cjs/src/blofin.js +10 -10
  26. package/dist/cjs/src/btcalpha.js +0 -1
  27. package/dist/cjs/src/btcbox.js +0 -1
  28. package/dist/cjs/src/btcmarkets.js +1 -3
  29. package/dist/cjs/src/bybit.js +2 -3
  30. package/dist/cjs/src/cex.js +1 -1
  31. package/dist/cjs/src/coinbase.js +77 -1
  32. package/dist/cjs/src/coinbaseexchange.js +1 -1
  33. package/dist/cjs/src/coinbaseinternational.js +62 -0
  34. package/dist/cjs/src/coincatch.js +1 -1
  35. package/dist/cjs/src/coinex.js +9 -9
  36. package/dist/cjs/src/coinlist.js +1 -1
  37. package/dist/cjs/src/coinmetro.js +1 -1
  38. package/dist/cjs/src/cryptocom.js +91 -2
  39. package/dist/cjs/src/currencycom.js +1 -1
  40. package/dist/cjs/src/defx.js +1 -2
  41. package/dist/cjs/src/delta.js +1 -1
  42. package/dist/cjs/src/digifinex.js +1 -1
  43. package/dist/cjs/src/exmo.js +2 -2
  44. package/dist/cjs/src/gate.js +1 -1
  45. package/dist/cjs/src/hashkey.js +3 -5
  46. package/dist/cjs/src/htx.js +1 -1
  47. package/dist/cjs/src/hyperliquid.js +1 -1
  48. package/dist/cjs/src/kraken.js +1 -1
  49. package/dist/cjs/src/kucoin.js +24 -24
  50. package/dist/cjs/src/luno.js +1 -1
  51. package/dist/cjs/src/mexc.js +138 -2
  52. package/dist/cjs/src/ndax.js +1 -1
  53. package/dist/cjs/src/okcoin.js +18 -18
  54. package/dist/cjs/src/okx.js +21 -21
  55. package/dist/cjs/src/phemex.js +12 -8
  56. package/dist/cjs/src/poloniex.js +1 -1
  57. package/dist/cjs/src/poloniexfutures.js +6 -6
  58. package/dist/cjs/src/pro/bitget.js +1 -1
  59. package/dist/cjs/src/pro/bybit.js +13 -1
  60. package/dist/cjs/src/pro/coinex.js +2 -2
  61. package/dist/cjs/src/pro/gate.js +6 -6
  62. package/dist/cjs/src/pro/kucoin.js +3 -3
  63. package/dist/cjs/src/pro/okx.js +11 -11
  64. package/dist/cjs/src/pro/upbit.js +3 -3
  65. package/dist/cjs/src/vertex.js +11 -11
  66. package/dist/cjs/src/woo.js +33 -33
  67. package/dist/cjs/src/woofipro.js +24 -24
  68. package/dist/cjs/src/xt.js +26 -26
  69. package/dist/cjs/src/zonda.js +1 -1
  70. package/js/ccxt.d.ts +1 -1
  71. package/js/ccxt.js +1 -1
  72. package/js/src/ascendex.d.ts +2 -2
  73. package/js/src/ascendex.js +9 -9
  74. package/js/src/base/Exchange.js +12 -18
  75. package/js/src/binance.d.ts +9 -9
  76. package/js/src/binance.js +13 -19
  77. package/js/src/bingx.d.ts +1 -1
  78. package/js/src/bingx.js +1 -2
  79. package/js/src/bit2c.js +0 -1
  80. package/js/src/bitbank.js +0 -1
  81. package/js/src/bitbns.js +0 -1
  82. package/js/src/bitfinex.d.ts +3 -3
  83. package/js/src/bitfinex.js +17 -18
  84. package/js/src/bitfinex1.js +0 -1
  85. package/js/src/bitflyer.js +0 -1
  86. package/js/src/bitget.d.ts +1 -1
  87. package/js/src/bitget.js +1 -2
  88. package/js/src/bithumb.js +0 -1
  89. package/js/src/bitmart.d.ts +1 -1
  90. package/js/src/bitmart.js +3 -4
  91. package/js/src/bitmex.d.ts +1 -1
  92. package/js/src/bitmex.js +5 -6
  93. package/js/src/bitopro.js +4 -5
  94. package/js/src/bitrue.js +5 -7
  95. package/js/src/bitso.d.ts +1 -1
  96. package/js/src/bitso.js +1 -2
  97. package/js/src/bitstamp.d.ts +1 -1
  98. package/js/src/bitstamp.js +1 -2
  99. package/js/src/bitteam.js +1 -3
  100. package/js/src/bitvavo.d.ts +1 -1
  101. package/js/src/bitvavo.js +2 -4
  102. package/js/src/blockchaincom.js +5 -5
  103. package/js/src/blofin.d.ts +3 -3
  104. package/js/src/blofin.js +10 -10
  105. package/js/src/btcalpha.js +0 -1
  106. package/js/src/btcbox.js +0 -1
  107. package/js/src/btcmarkets.js +1 -3
  108. package/js/src/bybit.d.ts +1 -1
  109. package/js/src/bybit.js +2 -3
  110. package/js/src/cex.d.ts +1 -1
  111. package/js/src/cex.js +1 -1
  112. package/js/src/coinbase.d.ts +1 -1
  113. package/js/src/coinbase.js +77 -1
  114. package/js/src/coinbaseexchange.d.ts +1 -1
  115. package/js/src/coinbaseexchange.js +1 -1
  116. package/js/src/coinbaseinternational.js +62 -0
  117. package/js/src/coincatch.d.ts +1 -1
  118. package/js/src/coincatch.js +1 -1
  119. package/js/src/coinex.js +9 -9
  120. package/js/src/coinlist.d.ts +1 -1
  121. package/js/src/coinlist.js +1 -1
  122. package/js/src/coinmetro.d.ts +1 -1
  123. package/js/src/coinmetro.js +1 -1
  124. package/js/src/cryptocom.d.ts +2 -2
  125. package/js/src/cryptocom.js +91 -2
  126. package/js/src/currencycom.d.ts +1 -1
  127. package/js/src/currencycom.js +1 -1
  128. package/js/src/defx.d.ts +1 -2
  129. package/js/src/defx.js +1 -2
  130. package/js/src/delta.d.ts +1 -1
  131. package/js/src/delta.js +1 -1
  132. package/js/src/digifinex.d.ts +1 -1
  133. package/js/src/digifinex.js +1 -1
  134. package/js/src/exmo.js +2 -2
  135. package/js/src/gate.d.ts +1 -1
  136. package/js/src/gate.js +1 -1
  137. package/js/src/hashkey.d.ts +1 -1
  138. package/js/src/hashkey.js +3 -5
  139. package/js/src/htx.d.ts +1 -1
  140. package/js/src/htx.js +1 -1
  141. package/js/src/hyperliquid.d.ts +1 -1
  142. package/js/src/hyperliquid.js +1 -1
  143. package/js/src/kraken.d.ts +1 -1
  144. package/js/src/kraken.js +1 -1
  145. package/js/src/kucoin.d.ts +13 -13
  146. package/js/src/kucoin.js +24 -24
  147. package/js/src/luno.d.ts +1 -1
  148. package/js/src/luno.js +1 -1
  149. package/js/src/mexc.d.ts +1 -2
  150. package/js/src/mexc.js +138 -2
  151. package/js/src/ndax.d.ts +1 -1
  152. package/js/src/ndax.js +1 -1
  153. package/js/src/okcoin.d.ts +4 -4
  154. package/js/src/okcoin.js +18 -18
  155. package/js/src/okx.d.ts +3 -3
  156. package/js/src/okx.js +21 -21
  157. package/js/src/phemex.js +12 -8
  158. package/js/src/poloniex.d.ts +1 -1
  159. package/js/src/poloniex.js +1 -1
  160. package/js/src/poloniexfutures.d.ts +1 -1
  161. package/js/src/poloniexfutures.js +6 -6
  162. package/js/src/pro/bitget.d.ts +1 -1
  163. package/js/src/pro/bitget.js +1 -1
  164. package/js/src/pro/bybit.d.ts +1 -1
  165. package/js/src/pro/bybit.js +13 -1
  166. package/js/src/pro/coinex.js +2 -2
  167. package/js/src/pro/gate.d.ts +2 -2
  168. package/js/src/pro/gate.js +6 -6
  169. package/js/src/pro/kucoin.d.ts +1 -1
  170. package/js/src/pro/kucoin.js +3 -3
  171. package/js/src/pro/okx.d.ts +2 -2
  172. package/js/src/pro/okx.js +11 -11
  173. package/js/src/pro/upbit.d.ts +3 -3
  174. package/js/src/pro/upbit.js +3 -3
  175. package/js/src/vertex.d.ts +3 -3
  176. package/js/src/vertex.js +11 -11
  177. package/js/src/woo.d.ts +7 -7
  178. package/js/src/woo.js +33 -33
  179. package/js/src/woofipro.d.ts +1 -1
  180. package/js/src/woofipro.js +24 -24
  181. package/js/src/xt.d.ts +7 -7
  182. package/js/src/xt.js +26 -26
  183. package/js/src/zonda.d.ts +1 -1
  184. package/js/src/zonda.js +1 -1
  185. package/package.json +1 -1
@@ -3399,9 +3399,9 @@ class okx extends okx$1 {
3399
3399
  if (symbol === undefined) {
3400
3400
  throw new errors.ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
3401
3401
  }
3402
- const stop = this.safeValue2(params, 'stop', 'trigger');
3402
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
3403
3403
  const trailing = this.safeBool(params, 'trailing', false);
3404
- if (stop || trailing) {
3404
+ if (trigger || trailing) {
3405
3405
  const orderInner = await this.cancelOrders([id], symbol, params);
3406
3406
  return this.safeValue(orderInner, 0);
3407
3407
  }
@@ -3467,9 +3467,9 @@ class okx extends okx$1 {
3467
3467
  let method = this.safeString(params, 'method', defaultMethod);
3468
3468
  const clientOrderIds = this.parseIds(this.safeValue2(params, 'clOrdId', 'clientOrderId'));
3469
3469
  const algoIds = this.parseIds(this.safeValue(params, 'algoId'));
3470
- const stop = this.safeValue2(params, 'stop', 'trigger');
3470
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
3471
3471
  const trailing = this.safeBool(params, 'trailing', false);
3472
- if (stop || trailing) {
3472
+ if (trigger || trailing) {
3473
3473
  method = 'privatePostTradeCancelAlgos';
3474
3474
  }
3475
3475
  if (clientOrderIds === undefined) {
@@ -3483,7 +3483,7 @@ class okx extends okx$1 {
3483
3483
  }
3484
3484
  }
3485
3485
  for (let i = 0; i < ids.length; i++) {
3486
- if (trailing || stop) {
3486
+ if (trailing || trigger) {
3487
3487
  request.push({
3488
3488
  'algoId': ids[i],
3489
3489
  'instId': market['id'],
@@ -3562,9 +3562,9 @@ class okx extends okx$1 {
3562
3562
  const options = this.safeDict(this.options, 'cancelOrders', {});
3563
3563
  const defaultMethod = this.safeString(options, 'method', 'privatePostTradeCancelBatchOrders');
3564
3564
  let method = this.safeString(params, 'method', defaultMethod);
3565
- const stop = this.safeBool2(params, 'stop', 'trigger');
3565
+ const trigger = this.safeBool2(params, 'stop', 'trigger');
3566
3566
  const trailing = this.safeBool(params, 'trailing', false);
3567
- const isStopOrTrailing = stop || trailing;
3567
+ const isStopOrTrailing = trigger || trailing;
3568
3568
  if (isStopOrTrailing) {
3569
3569
  method = 'privatePostTradeCancelAlgos';
3570
3570
  }
@@ -3903,8 +3903,8 @@ class okx extends okx$1 {
3903
3903
  const options = this.safeValue(this.options, 'fetchOrder', {});
3904
3904
  const defaultMethod = this.safeString(options, 'method', 'privateGetTradeOrder');
3905
3905
  let method = this.safeString(params, 'method', defaultMethod);
3906
- const stop = this.safeValue2(params, 'stop', 'trigger');
3907
- if (stop) {
3906
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
3907
+ if (trigger) {
3908
3908
  method = 'privateGetTradeOrderAlgo';
3909
3909
  if (clientOrderId !== undefined) {
3910
3910
  request['algoClOrdId'] = clientOrderId;
@@ -4039,7 +4039,7 @@ class okx extends okx$1 {
4039
4039
  * @param {int} [since] the earliest time in ms to fetch open orders for
4040
4040
  * @param {int} [limit] the maximum number of open orders structures to retrieve
4041
4041
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4042
- * @param {bool} [params.stop] True if fetching trigger or conditional orders
4042
+ * @param {bool} [params.trigger] True if fetching trigger or conditional orders
4043
4043
  * @param {string} [params.ordType] "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"
4044
4044
  * @param {string} [params.algoId] Algo ID "'433845797218942976'"
4045
4045
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
@@ -4076,15 +4076,15 @@ class okx extends okx$1 {
4076
4076
  const defaultMethod = this.safeString(options, 'method', 'privateGetTradeOrdersPending');
4077
4077
  let method = this.safeString(params, 'method', defaultMethod);
4078
4078
  const ordType = this.safeString(params, 'ordType');
4079
- const stop = this.safeValue2(params, 'stop', 'trigger');
4079
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
4080
4080
  const trailing = this.safeBool(params, 'trailing', false);
4081
- if (trailing || stop || (ordType in algoOrderTypes)) {
4081
+ if (trailing || trigger || (ordType in algoOrderTypes)) {
4082
4082
  method = 'privateGetTradeOrdersAlgoPending';
4083
4083
  }
4084
4084
  if (trailing) {
4085
4085
  request['ordType'] = 'move_order_stop';
4086
4086
  }
4087
- else if (stop && (ordType === undefined)) {
4087
+ else if (trigger && (ordType === undefined)) {
4088
4088
  request['ordType'] = 'trigger';
4089
4089
  }
4090
4090
  const query = this.omit(params, ['method', 'stop', 'trigger', 'trailing']);
@@ -4203,7 +4203,7 @@ class okx extends okx$1 {
4203
4203
  * @param {int} [since] timestamp in ms of the earliest order, default is undefined
4204
4204
  * @param {int} [limit] max number of orders to return, default is undefined
4205
4205
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4206
- * @param {bool} [params.stop] True if fetching trigger or conditional orders
4206
+ * @param {bool} [params.trigger] True if fetching trigger or conditional orders
4207
4207
  * @param {string} [params.ordType] "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"
4208
4208
  * @param {string} [params.algoId] Algo ID "'433845797218942976'"
4209
4209
  * @param {int} [params.until] timestamp in ms to fetch orders for
@@ -4241,20 +4241,20 @@ class okx extends okx$1 {
4241
4241
  const defaultMethod = this.safeString(options, 'method', 'privateGetTradeOrdersHistory');
4242
4242
  let method = this.safeString(params, 'method', defaultMethod);
4243
4243
  const ordType = this.safeString(params, 'ordType');
4244
- const stop = this.safeValue2(params, 'stop', 'trigger');
4244
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
4245
4245
  const trailing = this.safeBool(params, 'trailing', false);
4246
4246
  if (trailing) {
4247
4247
  method = 'privateGetTradeOrdersAlgoHistory';
4248
4248
  request['ordType'] = 'move_order_stop';
4249
4249
  }
4250
- else if (stop || (ordType in algoOrderTypes)) {
4250
+ else if (trigger || (ordType in algoOrderTypes)) {
4251
4251
  method = 'privateGetTradeOrdersAlgoHistory';
4252
4252
  const algoId = this.safeString(params, 'algoId');
4253
4253
  if (algoId !== undefined) {
4254
4254
  request['algoId'] = algoId;
4255
4255
  params = this.omit(params, 'algoId');
4256
4256
  }
4257
- if (stop) {
4257
+ if (trigger) {
4258
4258
  if (ordType === undefined) {
4259
4259
  throw new errors.ArgumentsRequired(this.id + ' fetchCanceledOrders() requires an "ordType" string parameter, "conditional", "oco", "trigger", "move_order_stop", "iceberg", or "twap"');
4260
4260
  }
@@ -4435,16 +4435,16 @@ class okx extends okx$1 {
4435
4435
  const defaultMethod = this.safeString(options, 'method', 'privateGetTradeOrdersHistory');
4436
4436
  let method = this.safeString(params, 'method', defaultMethod);
4437
4437
  const ordType = this.safeString(params, 'ordType');
4438
- const stop = this.safeBool2(params, 'stop', 'trigger');
4438
+ const trigger = this.safeBool2(params, 'stop', 'trigger');
4439
4439
  const trailing = this.safeBool(params, 'trailing', false);
4440
- if (trailing || stop || (ordType in algoOrderTypes)) {
4440
+ if (trailing || trigger || (ordType in algoOrderTypes)) {
4441
4441
  method = 'privateGetTradeOrdersAlgoHistory';
4442
4442
  request['state'] = 'effective';
4443
4443
  }
4444
4444
  if (trailing) {
4445
4445
  request['ordType'] = 'move_order_stop';
4446
4446
  }
4447
- else if (stop) {
4447
+ else if (trigger) {
4448
4448
  if (ordType === undefined) {
4449
4449
  request['ordType'] = 'trigger';
4450
4450
  }
@@ -4677,7 +4677,7 @@ class okx extends okx$1 {
4677
4677
  * @param {string} [params.marginMode] 'cross' or 'isolated'
4678
4678
  * @param {int} [params.until] the latest time in ms to fetch entries for
4679
4679
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
4680
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
4680
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
4681
4681
  */
4682
4682
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
4683
4683
  await this.loadMarkets();
@@ -2962,15 +2962,15 @@ class phemex extends phemex$1 {
2962
2962
  }
2963
2963
  await this.loadMarkets();
2964
2964
  const market = this.market(symbol);
2965
- const stop = this.safeValue2(params, 'stop', 'trigger', false);
2966
- params = this.omit(params, 'stop', 'trigger');
2965
+ const trigger = this.safeValue2(params, 'stop', 'trigger', false);
2966
+ params = this.omit(params, ['stop', 'trigger']);
2967
2967
  const request = {
2968
2968
  'symbol': market['id'],
2969
2969
  // 'untriggerred': false, // false to cancel non-conditional orders, true to cancel conditional orders
2970
2970
  // 'text': 'up to 40 characters max',
2971
2971
  };
2972
- if (stop) {
2973
- request['untriggerred'] = stop;
2972
+ if (trigger) {
2973
+ request['untriggerred'] = trigger;
2974
2974
  }
2975
2975
  let response = undefined;
2976
2976
  if (market['settle'] === 'USDT') {
@@ -4144,19 +4144,23 @@ class phemex extends phemex$1 {
4144
4144
  const marketId = this.safeString(contract, 'symbol');
4145
4145
  const symbol = this.safeSymbol(marketId, market);
4146
4146
  const timestamp = this.safeIntegerProduct(contract, 'timestamp', 0.000001);
4147
+ const markEp = this.fromEp(this.safeString(contract, 'markEp'), market);
4148
+ const indexEp = this.fromEp(this.safeString(contract, 'indexEp'), market);
4149
+ const fundingRateEr = this.fromEr(this.safeString(contract, 'fundingRateEr'), market);
4150
+ const nextFundingRateEr = this.fromEr(this.safeString(contract, 'predFundingRateEr'), market);
4147
4151
  return {
4148
4152
  'info': contract,
4149
4153
  'symbol': symbol,
4150
- 'markPrice': this.fromEp(this.safeString2(contract, 'markEp', 'markPriceRp'), market),
4151
- 'indexPrice': this.fromEp(this.safeString2(contract, 'indexEp', 'indexPriceRp'), market),
4154
+ 'markPrice': this.safeNumber(contract, 'markPriceRp', markEp),
4155
+ 'indexPrice': this.safeNumber(contract, 'indexPriceRp', indexEp),
4152
4156
  'interestRate': undefined,
4153
4157
  'estimatedSettlePrice': undefined,
4154
4158
  'timestamp': timestamp,
4155
4159
  'datetime': this.iso8601(timestamp),
4156
- 'fundingRate': this.fromEr(this.safeString(contract, 'fundingRateEr'), market),
4160
+ 'fundingRate': this.safeNumber(contract, 'fundingRateRr', fundingRateEr),
4157
4161
  'fundingTimestamp': undefined,
4158
4162
  'fundingDatetime': undefined,
4159
- 'nextFundingRate': this.fromEr(this.safeString2(contract, 'predFundingRateEr', 'predFundingRateRr'), market),
4163
+ 'nextFundingRate': this.safeNumber(contract, 'predFundingRateRr', nextFundingRateEr),
4160
4164
  'nextFundingTimestamp': undefined,
4161
4165
  'nextFundingDatetime': undefined,
4162
4166
  'previousFundingRate': undefined,
@@ -1207,7 +1207,7 @@ class poloniex extends poloniex$1 {
1207
1207
  * @param {int} [since] the earliest time in ms to fetch open orders for
1208
1208
  * @param {int} [limit] the maximum number of open orders structures to retrieve
1209
1209
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1210
- * @param {boolean} [params.stop] set true to fetch trigger orders instead of regular orders
1210
+ * @param {boolean} [params.trigger] set true to fetch trigger orders instead of regular orders
1211
1211
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1212
1212
  */
1213
1213
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1206,7 +1206,7 @@ class poloniexfutures extends poloniexfutures$1 {
1206
1206
  * @description cancel all open orders
1207
1207
  * @param {string} symbol unified market symbol, only orders in the market of this symbol are cancelled when symbol is not undefined
1208
1208
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1209
- * @param {object} [params.stop] When true, all the trigger orders will be cancelled
1209
+ * @param {object} [params.trigger] When true, all the trigger orders will be cancelled
1210
1210
  * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1211
1211
  */
1212
1212
  async cancelAllOrders(symbol = undefined, params = {}) {
@@ -1215,10 +1215,10 @@ class poloniexfutures extends poloniexfutures$1 {
1215
1215
  if (symbol !== undefined) {
1216
1216
  request['symbol'] = this.marketId(symbol);
1217
1217
  }
1218
- const stop = this.safeValue2(params, 'stop', 'trigger');
1218
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
1219
1219
  params = this.omit(params, ['stop', 'trigger']);
1220
1220
  let response = undefined;
1221
- if (stop) {
1221
+ if (trigger) {
1222
1222
  response = await this.privateDeleteStopOrders(this.extend(request, params));
1223
1223
  }
1224
1224
  else {
@@ -1285,14 +1285,14 @@ class poloniexfutures extends poloniexfutures$1 {
1285
1285
  */
1286
1286
  async fetchOrdersByStatus(status, symbol = undefined, since = undefined, limit = undefined, params = {}) {
1287
1287
  await this.loadMarkets();
1288
- const stop = this.safeValue2(params, 'stop', 'trigger');
1288
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
1289
1289
  const until = this.safeInteger(params, 'until');
1290
1290
  params = this.omit(params, ['trigger', 'stop', 'until']);
1291
1291
  if (status === 'closed') {
1292
1292
  status = 'done';
1293
1293
  }
1294
1294
  const request = {};
1295
- if (!stop) {
1295
+ if (!trigger) {
1296
1296
  request['status'] = (status === 'open') ? 'active' : 'done';
1297
1297
  }
1298
1298
  else if (status !== 'open') {
@@ -1310,7 +1310,7 @@ class poloniexfutures extends poloniexfutures$1 {
1310
1310
  request['endAt'] = until;
1311
1311
  }
1312
1312
  let response = undefined;
1313
- if (stop) {
1313
+ if (trigger) {
1314
1314
  response = await this.privateGetStopOrders(this.extend(request, params));
1315
1315
  }
1316
1316
  else {
@@ -1121,7 +1121,7 @@ class bitget extends bitget$1 {
1121
1121
  * @param {int} [since] the earliest time in ms to fetch orders for
1122
1122
  * @param {int} [limit] the maximum number of order structures to retrieve
1123
1123
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1124
- * @param {boolean} [params.stop] *contract only* set to true for watching trigger orders
1124
+ * @param {boolean} [params.trigger] *contract only* set to true for watching trigger orders
1125
1125
  * @param {string} [params.marginMode] 'isolated' or 'cross' for watching spot margin orders]
1126
1126
  * @param {string} [params.type] 'spot', 'swap'
1127
1127
  * @param {string} [params.subType] 'linear', 'inverse'
@@ -106,6 +106,12 @@ class bybit extends bybit$1 {
106
106
  'fetchPositionsSnapshot': true,
107
107
  'awaitPositionsSnapshot': true, // whether to wait for the positions snapshot before providing updates
108
108
  },
109
+ 'watchMyTrades': {
110
+ // filter execType: https://bybit-exchange.github.io/docs/api-explorer/v5/position/execution
111
+ 'filterExecTypes': [
112
+ 'Trade', 'AdlTrade', 'BustTrade', 'Settle',
113
+ ],
114
+ },
109
115
  'spot': {
110
116
  'timeframes': {
111
117
  '1m': '1m',
@@ -306,7 +312,7 @@ class bybit extends bybit$1 {
306
312
  * @param {string} id order id
307
313
  * @param {string} symbol unified symbol of the market the order was made in
308
314
  * @param {object} [params] extra parameters specific to the exchange API endpoint
309
- * @param {boolean} [params.stop] *spot only* whether the order is a stop order
315
+ * @param {boolean} [params.trigger] *spot only* whether the order is a trigger order
310
316
  * @param {string} [params.orderFilter] *spot only* 'Order' or 'StopOrder' or 'tpslOrder'
311
317
  * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
312
318
  */
@@ -1350,6 +1356,7 @@ class bybit extends bybit$1 {
1350
1356
  }
1351
1357
  const trades = this.myTrades;
1352
1358
  const symbols = {};
1359
+ const filterExecTypes = this.handleOption('watchMyTrades', 'filterExecTypes', []);
1353
1360
  for (let i = 0; i < data.length; i++) {
1354
1361
  const rawTrade = data[i];
1355
1362
  let parsed = undefined;
@@ -1357,6 +1364,11 @@ class bybit extends bybit$1 {
1357
1364
  parsed = this.parseWsTrade(rawTrade);
1358
1365
  }
1359
1366
  else {
1367
+ // filter unified trades
1368
+ const execType = this.safeString(rawTrade, 'execType', '');
1369
+ if (!this.inArray(execType, filterExecTypes)) {
1370
+ continue;
1371
+ }
1360
1372
  parsed = this.parseTrade(rawTrade);
1361
1373
  }
1362
1374
  const symbol = parsed['symbol'];
@@ -893,7 +893,7 @@ class coinex extends coinex$1 {
893
893
  */
894
894
  async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
895
895
  await this.loadMarkets();
896
- const stop = this.safeBool2(params, 'trigger', 'stop');
896
+ const trigger = this.safeBool2(params, 'trigger', 'stop');
897
897
  params = this.omit(params, ['trigger', 'stop']);
898
898
  let messageHash = 'orders';
899
899
  let market = undefined;
@@ -919,7 +919,7 @@ class coinex extends coinex$1 {
919
919
  }
920
920
  }
921
921
  let method = undefined;
922
- if (stop) {
922
+ if (trigger) {
923
923
  method = 'stop.subscribe';
924
924
  }
925
925
  else {
@@ -200,14 +200,14 @@ class gate extends gate$1 {
200
200
  async cancelAllOrdersWs(symbol = undefined, params = {}) {
201
201
  await this.loadMarkets();
202
202
  const market = (symbol === undefined) ? undefined : this.market(symbol);
203
- const stop = this.safeBool2(params, 'stop', 'trigger');
203
+ const trigger = this.safeBool2(params, 'stop', 'trigger');
204
204
  const messageType = this.getTypeByMarket(market);
205
205
  let channel = messageType + '.order_cancel_cp';
206
206
  [channel, params] = this.handleOptionAndParams(params, 'cancelAllOrdersWs', 'channel', channel);
207
207
  const url = this.getUrlByMarket(market);
208
208
  params = this.omit(params, ['stop', 'trigger']);
209
209
  const [type, query] = this.handleMarketTypeAndParams('cancelAllOrders', market, params);
210
- const [request, requestParams] = (type === 'spot') ? this.multiOrderSpotPrepareRequest(market, stop, query) : this.prepareRequest(market, type, query);
210
+ const [request, requestParams] = (type === 'spot') ? this.multiOrderSpotPrepareRequest(market, trigger, query) : this.prepareRequest(market, type, query);
211
211
  await this.authenticate(url, messageType);
212
212
  const rawOrders = await this.requestPrivate(url, this.extend(request, requestParams), channel);
213
213
  return this.parseOrders(rawOrders, market);
@@ -221,16 +221,16 @@ class gate extends gate$1 {
221
221
  * @param {string} id Order id
222
222
  * @param {string} symbol Unified market symbol
223
223
  * @param {object} [params] Parameters specified by the exchange api
224
- * @param {bool} [params.stop] True if the order to be cancelled is a trigger order
224
+ * @param {bool} [params.trigger] True if the order to be cancelled is a trigger order
225
225
  * @returns An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
226
226
  */
227
227
  async cancelOrderWs(id, symbol = undefined, params = {}) {
228
228
  await this.loadMarkets();
229
229
  const market = (symbol === undefined) ? undefined : this.market(symbol);
230
- const stop = this.safeValueN(params, ['is_stop_order', 'stop', 'trigger'], false);
230
+ const trigger = this.safeValueN(params, ['is_stop_order', 'stop', 'trigger'], false);
231
231
  params = this.omit(params, ['is_stop_order', 'stop', 'trigger']);
232
232
  const [type, query] = this.handleMarketTypeAndParams('cancelOrder', market, params);
233
- const [request, requestParams] = (type === 'spot' || type === 'margin') ? this.spotOrderPrepareRequest(market, stop, query) : this.prepareRequest(market, type, query);
233
+ const [request, requestParams] = (type === 'spot' || type === 'margin') ? this.spotOrderPrepareRequest(market, trigger, query) : this.prepareRequest(market, type, query);
234
234
  const messageType = this.getTypeByMarket(market);
235
235
  const channel = messageType + '.order_cancel';
236
236
  const url = this.getUrlByMarket(market);
@@ -274,7 +274,7 @@ class gate extends gate$1 {
274
274
  * @param {string} id Order id
275
275
  * @param {string} symbol Unified market symbol, *required for spot and margin*
276
276
  * @param {object} [params] Parameters specified by the exchange api
277
- * @param {bool} [params.stop] True if the order being fetched is a trigger order
277
+ * @param {bool} [params.trigger] True if the order being fetched is a trigger order
278
278
  * @param {string} [params.marginMode] 'cross' or 'isolated' - marginMode for margin trading if not provided this.options['defaultMarginMode'] is used
279
279
  * @param {string} [params.type] 'spot', 'swap', or 'future', if not provided this.options['defaultMarginMode'] is used
280
280
  * @param {string} [params.settle] 'btc' or 'usdt' - settle currency for perpetual swap and future - market settle currency is used if symbol !== undefined, default="usdt" for swap and "btc" for future
@@ -948,15 +948,15 @@ class kucoin extends kucoin$1 {
948
948
  * @param {int} [since] the earliest time in ms to fetch orders for
949
949
  * @param {int} [limit] the maximum number of order structures to retrieve
950
950
  * @param {object} [params] extra parameters specific to the exchange API endpoint
951
- * @param {boolean} [params.stop] trigger orders are watched if true
951
+ * @param {boolean} [params.trigger] trigger orders are watched if true
952
952
  * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
953
953
  */
954
954
  async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
955
955
  await this.loadMarkets();
956
- const stop = this.safeValue2(params, 'stop', 'trigger');
956
+ const trigger = this.safeValue2(params, 'stop', 'trigger');
957
957
  params = this.omit(params, ['stop', 'trigger']);
958
958
  const url = await this.negotiate(true);
959
- const topic = stop ? '/spotMarket/advancedOrders' : '/spotMarket/tradeOrders';
959
+ const topic = trigger ? '/spotMarket/advancedOrders' : '/spotMarket/tradeOrders';
960
960
  const request = {
961
961
  'privateChannel': true,
962
962
  };
@@ -744,9 +744,9 @@ class okx extends okx$1 {
744
744
  */
745
745
  async watchMyLiquidationsForSymbols(symbols = undefined, since = undefined, limit = undefined, params = {}) {
746
746
  await this.loadMarkets();
747
- const isStop = this.safeValue2(params, 'stop', 'trigger', false);
747
+ const isTrigger = this.safeValue2(params, 'stop', 'trigger', false);
748
748
  params = this.omit(params, ['stop', 'trigger']);
749
- await this.authenticate({ 'access': isStop ? 'business' : 'private' });
749
+ await this.authenticate({ 'access': isTrigger ? 'business' : 'private' });
750
750
  symbols = this.marketSymbols(symbols, undefined, true, true);
751
751
  const messageHash = 'myLiquidations';
752
752
  const messageHashes = [];
@@ -1591,7 +1591,7 @@ class okx extends okx$1 {
1591
1591
  * @param {int} [since] the earliest time in ms to fetch trades for
1592
1592
  * @param {int} [limit] the maximum number of trade structures to retrieve
1593
1593
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1594
- * @param {bool} [params.stop] true if fetching trigger or conditional trades
1594
+ * @param {bool} [params.trigger] true if fetching trigger or conditional trades
1595
1595
  * @param {string} [params.type] 'spot', 'swap', 'future', 'option', 'ANY', 'SPOT', 'MARGIN', 'SWAP', 'FUTURES' or 'OPTION'
1596
1596
  * @param {string} [params.marginMode] 'cross' or 'isolated', for automatically setting the type to spot margin
1597
1597
  * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
@@ -1600,11 +1600,11 @@ class okx extends okx$1 {
1600
1600
  // By default, receive order updates from any instrument type
1601
1601
  let type = undefined;
1602
1602
  [type, params] = this.handleOptionAndParams(params, 'watchMyTrades', 'type', 'ANY');
1603
- const isStop = this.safeBool(params, 'stop', false);
1604
- params = this.omit(params, ['stop']);
1603
+ const isTrigger = this.safeBool2(params, 'trigger', 'stop', false);
1604
+ params = this.omit(params, ['trigger', 'stop']);
1605
1605
  await this.loadMarkets();
1606
- await this.authenticate({ 'access': isStop ? 'business' : 'private' });
1607
- const channel = isStop ? 'orders-algo' : 'orders';
1606
+ await this.authenticate({ 'access': isTrigger ? 'business' : 'private' });
1607
+ const channel = isTrigger ? 'orders-algo' : 'orders';
1608
1608
  let messageHash = channel + '::myTrades';
1609
1609
  let market = undefined;
1610
1610
  if (symbol !== undefined) {
@@ -1780,7 +1780,7 @@ class okx extends okx$1 {
1780
1780
  * @param {int} [since] the earliest time in ms to fetch orders for
1781
1781
  * @param {int} [limit] the maximum number of order structures to retrieve
1782
1782
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1783
- * @param {bool} [params.stop] true if fetching trigger or conditional orders
1783
+ * @param {bool} [params.trigger] true if fetching trigger or conditional orders
1784
1784
  * @param {string} [params.type] 'spot', 'swap', 'future', 'option', 'ANY', 'SPOT', 'MARGIN', 'SWAP', 'FUTURES' or 'OPTION'
1785
1785
  * @param {string} [params.marginMode] 'cross' or 'isolated', for automatically setting the type to spot margin
1786
1786
  * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
@@ -1789,10 +1789,10 @@ class okx extends okx$1 {
1789
1789
  let type = undefined;
1790
1790
  // By default, receive order updates from any instrument type
1791
1791
  [type, params] = this.handleOptionAndParams(params, 'watchOrders', 'type', 'ANY');
1792
- const isStop = this.safeValue2(params, 'stop', 'trigger', false);
1792
+ const isTrigger = this.safeValue2(params, 'stop', 'trigger', false);
1793
1793
  params = this.omit(params, ['stop', 'trigger']);
1794
1794
  await this.loadMarkets();
1795
- await this.authenticate({ 'access': isStop ? 'business' : 'private' });
1795
+ await this.authenticate({ 'access': isTrigger ? 'business' : 'private' });
1796
1796
  let market = undefined;
1797
1797
  if (symbol !== undefined) {
1798
1798
  market = this.market(symbol);
@@ -1813,7 +1813,7 @@ class okx extends okx$1 {
1813
1813
  const request = {
1814
1814
  'instType': uppercaseType,
1815
1815
  };
1816
- const channel = isStop ? 'orders-algo' : 'orders';
1816
+ const channel = isTrigger ? 'orders-algo' : 'orders';
1817
1817
  const orders = await this.subscribe('private', channel, channel, symbol, this.extend(request, params));
1818
1818
  if (this.newUpdates) {
1819
1819
  limit = orders.getLimit(symbol, limit);
@@ -98,10 +98,10 @@ class upbit extends upbit$1 {
98
98
  }
99
99
  /**
100
100
  * @method
101
- * @name upbit#watchTicker
102
- * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
101
+ * @name upbit#watchTickers
102
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
103
103
  * @see https://global-docs.upbit.com/reference/websocket-ticker
104
- * @param symbols
104
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
105
105
  * @param {object} [params] extra parameters specific to the exchange API endpoint
106
106
  * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
107
107
  */
@@ -2015,7 +2015,7 @@ class vertex extends vertex$1 {
2015
2015
  * @param {int} [since] the earliest time in ms to fetch open orders for
2016
2016
  * @param {int} [limit] the maximum number of open orders structures to retrieve
2017
2017
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2018
- * @param {boolean} [params.stop] whether the order is a stop/algo order
2018
+ * @param {boolean} [params.trigger] whether the order is a trigger/algo order
2019
2019
  * @param {string} [params.user] user address, will default to this.walletAddress if not provided
2020
2020
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
2021
2021
  */
@@ -2026,14 +2026,14 @@ class vertex extends vertex$1 {
2026
2026
  [userAddress, params] = this.handlePublicAddress('fetchOpenOrders', params);
2027
2027
  const request = {};
2028
2028
  let market = undefined;
2029
- const stop = this.safeBool2(params, 'stop', 'trigger');
2029
+ const trigger = this.safeBool2(params, 'stop', 'trigger');
2030
2030
  params = this.omit(params, ['stop', 'trigger']);
2031
2031
  if (symbol !== undefined) {
2032
2032
  market = this.market(symbol);
2033
2033
  request['product_id'] = this.parseToNumeric(market['id']);
2034
2034
  }
2035
2035
  let response = undefined;
2036
- if (stop) {
2036
+ if (trigger) {
2037
2037
  const contracts = await this.queryContracts();
2038
2038
  const chainId = this.safeString(contracts, 'chain_id');
2039
2039
  const verifyingContractAddress = this.safeString(contracts, 'endpoint_addr');
@@ -2132,15 +2132,15 @@ class vertex extends vertex$1 {
2132
2132
  * @param {int} [since] the earliest time in ms to fetch open orders for
2133
2133
  * @param {int} [limit] the maximum number of open orders structures to retrieve
2134
2134
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2135
- * @param {boolean} [params.stop] whether the order is a stop/algo order
2135
+ * @param {boolean} [params.trigger] whether the order is a trigger/algo order
2136
2136
  * @param {string} [params.user] user address, will default to this.walletAddress if not provided
2137
2137
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
2138
2138
  */
2139
2139
  async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
2140
2140
  this.checkRequiredCredentials();
2141
- const stop = this.safeBool2(params, 'stop', 'trigger');
2141
+ const trigger = this.safeBool2(params, 'stop', 'trigger');
2142
2142
  params = this.omit(params, ['stop', 'trigger']);
2143
- if (!stop) {
2143
+ if (!trigger) {
2144
2144
  throw new errors.NotSupported(this.id + ' fetchOrders only support trigger orders');
2145
2145
  }
2146
2146
  let userAddress = undefined;
@@ -2218,7 +2218,7 @@ class vertex extends vertex$1 {
2218
2218
  * @description cancel all open orders in a market
2219
2219
  * @param {string} symbol unified market symbol
2220
2220
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2221
- * @param {boolean} [params.stop] whether the order is a stop/algo order
2221
+ * @param {boolean} [params.trigger] whether the order is a trigger/algo order
2222
2222
  * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
2223
2223
  */
2224
2224
  async cancelAllOrders(symbol = undefined, params = {}) {
@@ -2251,10 +2251,10 @@ class vertex extends vertex$1 {
2251
2251
  'signature': this.buildCancelAllOrdersSig(cancels, chainId, verifyingContractAddress),
2252
2252
  },
2253
2253
  };
2254
- const stop = this.safeBool2(params, 'stop', 'trigger');
2254
+ const trigger = this.safeBool2(params, 'stop', 'trigger');
2255
2255
  params = this.omit(params, ['stop', 'trigger']);
2256
2256
  let response = undefined;
2257
- if (stop) {
2257
+ if (trigger) {
2258
2258
  response = await this.v1TriggerPostExecute(this.extend(request, params));
2259
2259
  //
2260
2260
  // {
@@ -2352,10 +2352,10 @@ class vertex extends vertex$1 {
2352
2352
  'signature': this.buildCancelOrdersSig(cancels, chainId, verifyingContractAddress),
2353
2353
  },
2354
2354
  };
2355
- const stop = this.safeBool2(params, 'stop', 'trigger');
2355
+ const trigger = this.safeBool2(params, 'stop', 'trigger');
2356
2356
  params = this.omit(params, ['stop', 'trigger']);
2357
2357
  let response = undefined;
2358
- if (stop) {
2358
+ if (trigger) {
2359
2359
  response = await this.v1TriggerPostExecute(this.extend(request, params));
2360
2360
  //
2361
2361
  // {