ccxt 4.1.57 → 4.1.59

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 (68) hide show
  1. package/README.md +5 -5
  2. package/build.sh +2 -2
  3. package/dist/ccxt.browser.js +778 -830
  4. package/dist/ccxt.browser.min.js +2 -2
  5. package/dist/cjs/ccxt.js +1 -19
  6. package/dist/cjs/src/base/Exchange.js +38 -17
  7. package/dist/cjs/src/base/ws/Client.js +1 -1
  8. package/dist/cjs/src/binance.js +70 -22
  9. package/dist/cjs/src/bitget.js +74 -52
  10. package/dist/cjs/src/bitmart.js +14 -22
  11. package/dist/cjs/src/bitrue.js +1 -1
  12. package/dist/cjs/src/bybit.js +36 -33
  13. package/dist/cjs/src/coinex.js +25 -30
  14. package/dist/cjs/src/htx.js +82 -39
  15. package/dist/cjs/src/kucoin.js +83 -35
  16. package/dist/cjs/src/mexc.js +3 -105
  17. package/dist/cjs/src/okx.js +8 -16
  18. package/dist/cjs/src/pro/bitget.js +7 -0
  19. package/dist/cjs/src/pro/bitmart.js +7 -0
  20. package/dist/cjs/src/pro/bittrex.js +9 -0
  21. package/dist/cjs/src/pro/bitvavo.js +9 -0
  22. package/dist/cjs/src/pro/bybit.js +9 -0
  23. package/dist/cjs/src/pro/htx.js +16 -5
  24. package/dist/cjs/src/pro/kucoin.js +7 -0
  25. package/dist/cjs/src/pro/mexc.js +9 -0
  26. package/js/ccxt.d.ts +2 -23
  27. package/js/ccxt.js +2 -16
  28. package/js/src/abstract/mexc.d.ts +0 -4
  29. package/js/src/base/Exchange.d.ts +7 -0
  30. package/js/src/base/Exchange.js +38 -17
  31. package/js/src/base/ws/Client.js +1 -1
  32. package/js/src/binance.d.ts +20 -2
  33. package/js/src/binance.js +70 -22
  34. package/js/src/bitget.d.ts +20 -2
  35. package/js/src/bitget.js +74 -52
  36. package/js/src/bitmart.d.ts +2 -2
  37. package/js/src/bitmart.js +14 -22
  38. package/js/src/bitrue.js +1 -1
  39. package/js/src/bybit.d.ts +2 -2
  40. package/js/src/bybit.js +36 -33
  41. package/js/src/coinex.d.ts +2 -2
  42. package/js/src/coinex.js +25 -30
  43. package/js/src/htx.d.ts +5 -3
  44. package/js/src/htx.js +82 -39
  45. package/js/src/kucoin.d.ts +20 -2
  46. package/js/src/kucoin.js +83 -35
  47. package/js/src/mexc.d.ts +0 -11
  48. package/js/src/mexc.js +3 -105
  49. package/js/src/okx.d.ts +18 -2
  50. package/js/src/okx.js +8 -16
  51. package/js/src/pro/bitget.js +7 -0
  52. package/js/src/pro/bitmart.js +7 -0
  53. package/js/src/pro/bittrex.js +9 -0
  54. package/js/src/pro/bitvavo.js +9 -0
  55. package/js/src/pro/bybit.js +9 -0
  56. package/js/src/pro/htx.js +16 -5
  57. package/js/src/pro/kucoin.js +7 -0
  58. package/js/src/pro/mexc.js +9 -0
  59. package/package.json +1 -1
  60. package/skip-tests.json +5 -0
  61. package/js/src/abstract/huobipro.d.ts +0 -547
  62. package/js/src/abstract/huobipro.js +0 -11
  63. package/js/src/abstract/mexc3.d.ts +0 -180
  64. package/js/src/abstract/mexc3.js +0 -11
  65. package/js/src/abstract/okex.d.ts +0 -280
  66. package/js/src/abstract/okex.js +0 -11
  67. package/js/src/abstract/okex5.d.ts +0 -280
  68. package/js/src/abstract/okex5.js +0 -11
@@ -9016,17 +9016,17 @@ class Exchange {
9016
9016
  return result;
9017
9017
  }
9018
9018
  safeTicker(ticker, market = undefined) {
9019
- let open = this.safeValue(ticker, 'open');
9020
- let close = this.safeValue(ticker, 'close');
9021
- let last = this.safeValue(ticker, 'last');
9022
- let change = this.safeValue(ticker, 'change');
9023
- let percentage = this.safeValue(ticker, 'percentage');
9024
- let average = this.safeValue(ticker, 'average');
9025
- let vwap = this.safeValue(ticker, 'vwap');
9019
+ let open = this.omitZero(this.safeString(ticker, 'open'));
9020
+ let close = this.omitZero(this.safeString(ticker, 'close'));
9021
+ let last = this.omitZero(this.safeString(ticker, 'last'));
9022
+ let change = this.omitZero(this.safeString(ticker, 'change'));
9023
+ let percentage = this.omitZero(this.safeString(ticker, 'percentage'));
9024
+ let average = this.omitZero(this.safeString(ticker, 'average'));
9025
+ let vwap = this.omitZero(this.safeString(ticker, 'vwap'));
9026
9026
  const baseVolume = this.safeString(ticker, 'baseVolume');
9027
9027
  const quoteVolume = this.safeString(ticker, 'quoteVolume');
9028
9028
  if (vwap === undefined) {
9029
- vwap = _Precise_js__WEBPACK_IMPORTED_MODULE_8__/* .Precise */ .O.stringDiv(quoteVolume, baseVolume);
9029
+ vwap = _Precise_js__WEBPACK_IMPORTED_MODULE_8__/* .Precise */ .O.stringDiv(this.omitZero(quoteVolume), baseVolume);
9030
9030
  }
9031
9031
  if ((last !== undefined) && (close === undefined)) {
9032
9032
  close = last;
@@ -9054,24 +9054,45 @@ class Exchange {
9054
9054
  // timestamp and symbol operations don't belong in safeTicker
9055
9055
  // they should be done in the derived classes
9056
9056
  return this.extend(ticker, {
9057
- 'bid': this.omitZero(this.safeNumber(ticker, 'bid')),
9057
+ 'bid': this.parseNumber(this.omitZero(this.safeNumber(ticker, 'bid'))),
9058
9058
  'bidVolume': this.safeNumber(ticker, 'bidVolume'),
9059
- 'ask': this.omitZero(this.safeNumber(ticker, 'ask')),
9059
+ 'ask': this.parseNumber(this.omitZero(this.safeNumber(ticker, 'ask'))),
9060
9060
  'askVolume': this.safeNumber(ticker, 'askVolume'),
9061
- 'high': this.omitZero(this.safeNumber(ticker, 'high')),
9062
- 'low': this.omitZero(this.safeNumber(ticker, 'low')),
9063
- 'open': this.omitZero(this.parseNumber(open)),
9064
- 'close': this.omitZero(this.parseNumber(close)),
9065
- 'last': this.omitZero(this.parseNumber(last)),
9061
+ 'high': this.parseNumber(this.omitZero(this.safeString(ticker, 'high"'))),
9062
+ 'low': this.parseNumber(this.omitZero(this.safeNumber(ticker, 'low'))),
9063
+ 'open': this.parseNumber(this.omitZero(this.parseNumber(open))),
9064
+ 'close': this.parseNumber(this.omitZero(this.parseNumber(close))),
9065
+ 'last': this.parseNumber(this.omitZero(this.parseNumber(last))),
9066
9066
  'change': this.parseNumber(change),
9067
9067
  'percentage': this.parseNumber(percentage),
9068
- 'average': this.omitZero(this.parseNumber(average)),
9069
- 'vwap': this.omitZero(this.parseNumber(vwap)),
9068
+ 'average': this.parseNumber(average),
9069
+ 'vwap': this.parseNumber(vwap),
9070
9070
  'baseVolume': this.parseNumber(baseVolume),
9071
9071
  'quoteVolume': this.parseNumber(quoteVolume),
9072
9072
  'previousClose': this.safeNumber(ticker, 'previousClose'),
9073
9073
  });
9074
9074
  }
9075
+ async fetchBorrowRate(code, amount, params = {}) {
9076
+ throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' fetchBorrowRate is deprecated, please use fetchCrossBorrowRate or fetchIsolatedBorrowRate instead');
9077
+ }
9078
+ async repayCrossMargin(code, amount, params = {}) {
9079
+ throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' repayCrossMargin is not support yet');
9080
+ }
9081
+ async repayIsolatedMargin(symbol, code, amount, params = {}) {
9082
+ throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' repayIsolatedMargin is not support yet');
9083
+ }
9084
+ async borrowCrossMargin(code, amount, params = {}) {
9085
+ throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' borrowCrossMargin is not support yet');
9086
+ }
9087
+ async borrowIsolatedMargin(symbol, code, amount, params = {}) {
9088
+ throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' borrowIsolatedMargin is not support yet');
9089
+ }
9090
+ async borrowMargin(code, amount, symbol = undefined, params = {}) {
9091
+ throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' borrowMargin is deprecated, please use borrowCrossMargin or borrowIsolatedMargin instead');
9092
+ }
9093
+ async repayMargin(code, amount, symbol = undefined, params = {}) {
9094
+ throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' repayMargin is deprecated, please use repayCrossMargin or repayIsolatedMargin instead');
9095
+ }
9075
9096
  async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
9076
9097
  let message = '';
9077
9098
  if (this.has['fetchTrades']) {
@@ -13635,8 +13656,8 @@ class ArrayCacheBySymbolBySide extends ArrayCache {
13635
13656
  /* harmony import */ var _static_dependencies_fflake_browser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7348);
13636
13657
  /* harmony import */ var _Future_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2367);
13637
13658
  /* harmony import */ var _base_functions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(927);
13638
- /* harmony import */ var _base_functions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1621);
13639
- /* harmony import */ var _base_functions_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(9125);
13659
+ /* harmony import */ var _base_functions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(9125);
13660
+ /* harmony import */ var _base_functions_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(1621);
13640
13661
  /* harmony import */ var _base_functions_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(1237);
13641
13662
  /* harmony import */ var _static_dependencies_scure_base_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(9651);
13642
13663
 
@@ -13745,7 +13766,7 @@ class Client {
13745
13766
  if (!this.isOpen()) {
13746
13767
  const error = new _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.RequestTimeout('Connection to ' + this.url + ' failed due to a connection timeout');
13747
13768
  this.onError(error);
13748
- this.connection.close(1006);
13769
+ this.connection.close(_base_functions_js__WEBPACK_IMPORTED_MODULE_4__/* .isNode */ .UG ? 1006 : 1000);
13749
13770
  }
13750
13771
  }
13751
13772
  setConnectionTimeout() {
@@ -13772,7 +13793,7 @@ class Client {
13772
13793
  }
13773
13794
  onPingInterval() {
13774
13795
  if (this.keepAlive && this.isOpen()) {
13775
- const now = (0,_base_functions_js__WEBPACK_IMPORTED_MODULE_4__/* .milliseconds */ .m)();
13796
+ const now = (0,_base_functions_js__WEBPACK_IMPORTED_MODULE_5__/* .milliseconds */ .m)();
13776
13797
  this.lastPong = this.lastPong || now;
13777
13798
  if ((this.lastPong + this.keepAlive * this.maxPingPongMisses) < now) {
13778
13799
  this.onError(new _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.RequestTimeout('Connection to ' + this.url + ' timed out due to a ping-pong keepalive missing on time'));
@@ -13781,7 +13802,7 @@ class Client {
13781
13802
  if (this.ping) {
13782
13803
  this.send(this.ping(this));
13783
13804
  }
13784
- else if (_base_functions_js__WEBPACK_IMPORTED_MODULE_5__/* .isNode */ .UG) {
13805
+ else if (_base_functions_js__WEBPACK_IMPORTED_MODULE_4__/* .isNode */ .UG) {
13785
13806
  // can't do this inside browser
13786
13807
  // https://stackoverflow.com/questions/10585355/sending-websocket-ping-pong-frame-from-browser
13787
13808
  this.connection.ping();
@@ -13800,7 +13821,7 @@ class Client {
13800
13821
  if (this.verbose) {
13801
13822
  this.log(new Date(), 'onOpen');
13802
13823
  }
13803
- this.connectionEstablished = (0,_base_functions_js__WEBPACK_IMPORTED_MODULE_4__/* .milliseconds */ .m)();
13824
+ this.connectionEstablished = (0,_base_functions_js__WEBPACK_IMPORTED_MODULE_5__/* .milliseconds */ .m)();
13804
13825
  this.isConnected = true;
13805
13826
  this.connected.resolve(this.url);
13806
13827
  // this.connection.terminate () // debugging
@@ -13817,7 +13838,7 @@ class Client {
13817
13838
  }
13818
13839
  }
13819
13840
  onPong() {
13820
- this.lastPong = (0,_base_functions_js__WEBPACK_IMPORTED_MODULE_4__/* .milliseconds */ .m)();
13841
+ this.lastPong = (0,_base_functions_js__WEBPACK_IMPORTED_MODULE_5__/* .milliseconds */ .m)();
13821
13842
  if (this.verbose) {
13822
13843
  this.log(new Date(), 'onPong');
13823
13844
  }
@@ -13860,7 +13881,7 @@ class Client {
13860
13881
  }
13861
13882
  message = (typeof message === 'string') ? message : JSON.stringify(message);
13862
13883
  const future = (0,_Future_js__WEBPACK_IMPORTED_MODULE_2__/* .createFuture */ .N)();
13863
- if (_base_functions_js__WEBPACK_IMPORTED_MODULE_5__/* .isNode */ .UG) {
13884
+ if (_base_functions_js__WEBPACK_IMPORTED_MODULE_4__/* .isNode */ .UG) {
13864
13885
  function onSendComplete(error) {
13865
13886
  if (error) {
13866
13887
  future.reject(error);
@@ -16464,7 +16485,8 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
16464
16485
  'future': true,
16465
16486
  'option': true,
16466
16487
  'addMargin': true,
16467
- 'borrowMargin': true,
16488
+ 'borrowCrossMargin': true,
16489
+ 'borrowIsolatedMargin': true,
16468
16490
  'cancelAllOrders': true,
16469
16491
  'cancelOrder': true,
16470
16492
  'cancelOrders': true,
@@ -16551,7 +16573,8 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
16551
16573
  'fetchWithdrawals': true,
16552
16574
  'fetchWithdrawalWhitelist': false,
16553
16575
  'reduceMargin': true,
16554
- 'repayMargin': true,
16576
+ 'repayCrossMargin': true,
16577
+ 'repayIsolatedMargin': true,
16555
16578
  'setLeverage': true,
16556
16579
  'setMargin': false,
16557
16580
  'setMarginMode': true,
@@ -25533,32 +25556,55 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
25533
25556
  'info': info,
25534
25557
  };
25535
25558
  }
25536
- async repayMargin(code, amount, symbol = undefined, params = {}) {
25559
+ async repayCrossMargin(code, amount, params = {}) {
25537
25560
  /**
25538
25561
  * @method
25539
- * @name binance#repayMargin
25562
+ * @name binance#repayCrossMargin
25540
25563
  * @description repay borrowed margin and interest
25541
25564
  * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-repay-margin
25542
25565
  * @param {string} code unified currency code of the currency to repay
25543
25566
  * @param {float} amount the amount to repay
25567
+ * @param {object} [params] extra parameters specific to the binance api endpoint
25568
+ * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
25569
+ */
25570
+ await this.loadMarkets();
25571
+ const currency = this.currency(code);
25572
+ const request = {
25573
+ 'asset': currency['id'],
25574
+ 'amount': this.currencyToPrecision(code, amount),
25575
+ 'isIsolated': 'FALSE',
25576
+ };
25577
+ const response = await this.sapiPostMarginRepay(this.extend(request, params));
25578
+ //
25579
+ // {
25580
+ // "tranId": 108988250265,
25581
+ // "clientTag":""
25582
+ // }
25583
+ //
25584
+ return this.parseMarginLoan(response, currency);
25585
+ }
25586
+ async repayIsolatedMargin(symbol, code, amount, params = {}) {
25587
+ /**
25588
+ * @method
25589
+ * @name binance#repayIsolatedMargin
25590
+ * @description repay borrowed margin and interest
25591
+ * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-repay-margin
25544
25592
  * @param {string} symbol unified market symbol, required for isolated margin
25593
+ * @param {string} code unified currency code of the currency to repay
25594
+ * @param {float} amount the amount to repay
25545
25595
  * @param {object} [params] extra parameters specific to the binance api endpoint
25546
25596
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
25547
25597
  */
25548
- const [marginMode, query] = this.handleMarginModeAndParams('repayMargin', params); // cross or isolated
25549
- this.checkRequiredMarginArgument('repayMargin', symbol, marginMode);
25550
25598
  await this.loadMarkets();
25551
25599
  const currency = this.currency(code);
25600
+ const market = this.market(symbol);
25552
25601
  const request = {
25553
25602
  'asset': currency['id'],
25554
25603
  'amount': this.currencyToPrecision(code, amount),
25604
+ 'symbol': market['id'],
25605
+ 'isIsolated': 'TRUE',
25555
25606
  };
25556
- if (symbol !== undefined) {
25557
- const market = this.market(symbol);
25558
- request['symbol'] = market['id'];
25559
- request['isIsolated'] = 'TRUE';
25560
- }
25561
- const response = await this.sapiPostMarginRepay(this.extend(request, query));
25607
+ const response = await this.sapiPostMarginRepay(this.extend(request, params));
25562
25608
  //
25563
25609
  // {
25564
25610
  // "tranId": 108988250265,
@@ -25567,32 +25613,55 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
25567
25613
  //
25568
25614
  return this.parseMarginLoan(response, currency);
25569
25615
  }
25570
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
25616
+ async borrowCrossMargin(code, amount, params = {}) {
25571
25617
  /**
25572
25618
  * @method
25573
- * @name binance#borrowMargin
25619
+ * @name binance#borrowCrossMargin
25574
25620
  * @description create a loan to borrow margin
25575
25621
  * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-borrow-margin
25576
25622
  * @param {string} code unified currency code of the currency to borrow
25577
25623
  * @param {float} amount the amount to borrow
25624
+ * @param {object} [params] extra parameters specific to the binance api endpoint
25625
+ * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
25626
+ */
25627
+ await this.loadMarkets();
25628
+ const currency = this.currency(code);
25629
+ const request = {
25630
+ 'asset': currency['id'],
25631
+ 'amount': this.currencyToPrecision(code, amount),
25632
+ 'isIsolated': 'FALSE',
25633
+ };
25634
+ const response = await this.sapiPostMarginLoan(this.extend(request, params));
25635
+ //
25636
+ // {
25637
+ // "tranId": 108988250265,
25638
+ // "clientTag":""
25639
+ // }
25640
+ //
25641
+ return this.parseMarginLoan(response, currency);
25642
+ }
25643
+ async borrowIsolatedMargin(symbol, code, amount, params = {}) {
25644
+ /**
25645
+ * @method
25646
+ * @name binance#borrowIsolatedMargin
25647
+ * @description create a loan to borrow margin
25648
+ * @see https://binance-docs.github.io/apidocs/spot/en/#margin-account-borrow-margin
25578
25649
  * @param {string} symbol unified market symbol, required for isolated margin
25650
+ * @param {string} code unified currency code of the currency to borrow
25651
+ * @param {float} amount the amount to borrow
25579
25652
  * @param {object} [params] extra parameters specific to the binance api endpoint
25580
25653
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
25581
25654
  */
25582
- const [marginMode, query] = this.handleMarginModeAndParams('borrowMargin', params); // cross or isolated
25583
- this.checkRequiredMarginArgument('borrowMargin', symbol, marginMode);
25584
25655
  await this.loadMarkets();
25585
25656
  const currency = this.currency(code);
25657
+ const market = this.market(symbol);
25586
25658
  const request = {
25587
25659
  'asset': currency['id'],
25588
25660
  'amount': this.currencyToPrecision(code, amount),
25661
+ 'symbol': market['id'],
25662
+ 'isIsolated': 'TRUE',
25589
25663
  };
25590
- if (symbol !== undefined) {
25591
- const market = this.market(symbol);
25592
- request['symbol'] = market['id'];
25593
- request['isIsolated'] = 'TRUE';
25594
- }
25595
- const response = await this.sapiPostMarginLoan(this.extend(request, query));
25664
+ const response = await this.sapiPostMarginLoan(this.extend(request, params));
25596
25665
  //
25597
25666
  // {
25598
25667
  // "tranId": 108988250265,
@@ -39537,7 +39606,8 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
39537
39606
  'future': true,
39538
39607
  'option': false,
39539
39608
  'addMargin': true,
39540
- 'borrowMargin': true,
39609
+ 'borrowCrossMargin': true,
39610
+ 'borrowIsolatedMargin': true,
39541
39611
  'cancelAllOrders': true,
39542
39612
  'cancelOrder': true,
39543
39613
  'cancelOrders': true,
@@ -39601,7 +39671,8 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
39601
39671
  'fetchWithdrawal': false,
39602
39672
  'fetchWithdrawals': true,
39603
39673
  'reduceMargin': true,
39604
- 'repayMargin': true,
39674
+ 'repayCrossMargin': true,
39675
+ 'repayIsolatedMargin': true,
39605
39676
  'setLeverage': true,
39606
39677
  'setMarginMode': true,
39607
39678
  'setPositionMode': true,
@@ -45802,18 +45873,15 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
45802
45873
  'info': interest,
45803
45874
  }, market);
45804
45875
  }
45805
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
45876
+ async borrowCrossMargin(code, amount, params = {}) {
45806
45877
  /**
45807
45878
  * @method
45808
- * @name bitget#borrowMargin
45879
+ * @name bitget#borrowCrossMargin
45809
45880
  * @description create a loan to borrow margin
45810
45881
  * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-borrow
45811
- * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-borrow
45812
45882
  * @param {string} code unified currency code of the currency to borrow
45813
45883
  * @param {string} amount the amount to borrow
45814
- * @param {string} [symbol] unified market symbol
45815
45884
  * @param {object} [params] extra parameters specific to the bitget api endpoint
45816
- * @param {string} [params.marginMode] 'isolated' or 'cross', symbol is required for 'isolated'
45817
45885
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
45818
45886
  */
45819
45887
  await this.loadMarkets();
@@ -45822,91 +45890,91 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
45822
45890
  'coin': currency['info']['coinName'],
45823
45891
  'borrowAmount': this.currencyToPrecision(code, amount),
45824
45892
  };
45825
- let response = undefined;
45826
- let marginMode = undefined;
45827
- [marginMode, params] = this.handleMarginModeAndParams('borrowMargin', params);
45828
- if ((symbol !== undefined) || (marginMode === 'isolated')) {
45829
- if (symbol === undefined) {
45830
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' borrowMargin() requires a symbol argument');
45831
- }
45832
- const market = this.market(symbol);
45833
- const marketId = market['id'];
45834
- const parts = marketId.split('_');
45835
- const marginMarketId = this.safeStringUpper(parts, 0);
45836
- request['symbol'] = marginMarketId;
45837
- response = await this.privateMarginPostMarginV1IsolatedAccountBorrow(this.extend(request, params));
45838
- }
45839
- else {
45840
- response = await this.privateMarginPostMarginV1CrossAccountBorrow(this.extend(request, params));
45841
- }
45893
+ const response = await this.privateMarginPostMarginV1CrossAccountBorrow(this.extend(request, params));
45842
45894
  //
45843
- // isolated
45895
+ // cross
45844
45896
  //
45845
45897
  // {
45846
45898
  // "code": "00000",
45847
45899
  // "msg": "success",
45848
- // "requestTime": 1697250952516,
45900
+ // "requestTime": 1697251314271,
45849
45901
  // "data": {
45850
45902
  // "clientOid": null,
45851
- // "symbol": "BTCUSDT",
45852
45903
  // "coin": "BTC",
45853
- // "borrowAmount": "0.001"
45904
+ // "borrowAmount": "0.0001"
45854
45905
  // }
45855
45906
  // }
45856
45907
  //
45857
- // cross
45908
+ const data = this.safeValue(response, 'data', {});
45909
+ return this.parseMarginLoan(data, currency);
45910
+ }
45911
+ async borrowIsolatedMargin(symbol, code, amount, params = {}) {
45912
+ /**
45913
+ * @method
45914
+ * @name bitget#borrowIsolatedMargin
45915
+ * @description create a loan to borrow margin
45916
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-borrow
45917
+ * @param {string} symbol unified market symbol
45918
+ * @param {string} code unified currency code of the currency to borrow
45919
+ * @param {string} amount the amount to borrow
45920
+ * @param {object} [params] extra parameters specific to the bitget api endpoint
45921
+ * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
45922
+ */
45923
+ await this.loadMarkets();
45924
+ const currency = this.currency(code);
45925
+ const market = this.market(symbol);
45926
+ const marketId = market['id'];
45927
+ const parts = marketId.split('_');
45928
+ const marginMarketId = this.safeStringUpper(parts, 0);
45929
+ const request = {
45930
+ 'coin': currency['info']['coinName'],
45931
+ 'borrowAmount': this.currencyToPrecision(code, amount),
45932
+ 'symbol': marginMarketId,
45933
+ };
45934
+ const response = await this.privateMarginPostMarginV1IsolatedAccountBorrow(this.extend(request, params));
45935
+ //
45936
+ // isolated
45858
45937
  //
45859
45938
  // {
45860
45939
  // "code": "00000",
45861
45940
  // "msg": "success",
45862
- // "requestTime": 1697251314271,
45941
+ // "requestTime": 1697250952516,
45863
45942
  // "data": {
45864
45943
  // "clientOid": null,
45944
+ // "symbol": "BTCUSDT",
45865
45945
  // "coin": "BTC",
45866
- // "borrowAmount": "0.0001"
45946
+ // "borrowAmount": "0.001"
45867
45947
  // }
45868
45948
  // }
45869
45949
  //
45870
45950
  const data = this.safeValue(response, 'data', {});
45871
45951
  return this.parseMarginLoan(data, currency);
45872
45952
  }
45873
- async repayMargin(code, amount, symbol = undefined, params = {}) {
45953
+ async repayIsolatedMargin(symbol, code, amount, params = {}) {
45874
45954
  /**
45875
45955
  * @method
45876
- * @name bitget#repayMargin
45956
+ * @name bitget#repayIsolatedMargin
45877
45957
  * @description repay borrowed margin and interest
45878
45958
  * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-repay
45879
45959
  * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-repay
45960
+ * @param {string} symbol unified market symbol
45880
45961
  * @param {string} code unified currency code of the currency to repay
45881
45962
  * @param {string} amount the amount to repay
45882
- * @param {string} [symbol] unified market symbol
45883
45963
  * @param {object} [params] extra parameters specific to the bitget api endpoint
45884
- * @param {string} [params.marginMode] 'isolated' or 'cross', symbol is required for 'isolated'
45885
45964
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
45886
45965
  */
45887
45966
  await this.loadMarkets();
45888
45967
  const currency = this.currency(code);
45968
+ const market = this.market(symbol);
45969
+ const marketId = market['id'];
45970
+ const parts = marketId.split('_');
45971
+ const marginMarketId = this.safeStringUpper(parts, 0);
45889
45972
  const request = {
45890
45973
  'coin': currency['info']['coinName'],
45891
45974
  'repayAmount': this.currencyToPrecision(code, amount),
45975
+ 'symbol': marginMarketId,
45892
45976
  };
45893
- let response = undefined;
45894
- let marginMode = undefined;
45895
- [marginMode, params] = this.handleMarginModeAndParams('repayMargin', params);
45896
- if ((symbol !== undefined) || (marginMode === 'isolated')) {
45897
- if (symbol === undefined) {
45898
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' repayMargin() requires a symbol argument');
45899
- }
45900
- const market = this.market(symbol);
45901
- const marketId = market['id'];
45902
- const parts = marketId.split('_');
45903
- const marginMarketId = this.safeStringUpper(parts, 0);
45904
- request['symbol'] = marginMarketId;
45905
- response = await this.privateMarginPostMarginV1IsolatedAccountRepay(this.extend(request, params));
45906
- }
45907
- else {
45908
- response = await this.privateMarginPostMarginV1CrossAccountRepay(this.extend(request, params));
45909
- }
45977
+ const response = await this.privateMarginPostMarginV1IsolatedAccountRepay(this.extend(request, params));
45910
45978
  //
45911
45979
  // isolated
45912
45980
  //
@@ -45923,6 +45991,29 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
45923
45991
  // }
45924
45992
  // }
45925
45993
  //
45994
+ const data = this.safeValue(response, 'data', {});
45995
+ return this.parseMarginLoan(data, currency);
45996
+ }
45997
+ async repayCrossMargin(code, amount, params = {}) {
45998
+ /**
45999
+ * @method
46000
+ * @name bitget#repayCrossMargin
46001
+ * @description repay borrowed margin and interest
46002
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-repay
46003
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-repay
46004
+ * @param {string} code unified currency code of the currency to repay
46005
+ * @param {string} amount the amount to repay
46006
+ * @param {object} [params] extra parameters specific to the bitget api endpoint
46007
+ * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
46008
+ */
46009
+ await this.loadMarkets();
46010
+ const currency = this.currency(code);
46011
+ const request = {
46012
+ 'coin': currency['info']['coinName'],
46013
+ 'repayAmount': this.currencyToPrecision(code, amount),
46014
+ };
46015
+ const response = await this.privateMarginPostMarginV1CrossAccountRepay(this.extend(request, params));
46016
+ //
45926
46017
  // cross
45927
46018
  //
45928
46019
  // {
@@ -47716,7 +47807,8 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
47716
47807
  'swap': true,
47717
47808
  'future': false,
47718
47809
  'option': false,
47719
- 'borrowMargin': true,
47810
+ 'borrowCrossMargin': false,
47811
+ 'borrowIsolatedMargin': true,
47720
47812
  'cancelAllOrders': true,
47721
47813
  'cancelOrder': true,
47722
47814
  'cancelOrders': false,
@@ -47778,7 +47870,8 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
47778
47870
  'fetchWithdrawal': true,
47779
47871
  'fetchWithdrawals': true,
47780
47872
  'reduceMargin': false,
47781
- 'repayMargin': true,
47873
+ 'repayCrossMargin': false,
47874
+ 'repayIsolatedMargin': true,
47782
47875
  'setLeverage': true,
47783
47876
  'setMarginMode': false,
47784
47877
  'transfer': true,
@@ -47814,15 +47907,15 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
47814
47907
  'spot/v1/symbols/details': 5,
47815
47908
  'spot/quotation/v3/tickers': 6,
47816
47909
  'spot/quotation/v3/ticker': 4,
47817
- 'spot/quotation/v3/lite-klines': 4,
47818
- 'spot/quotation/v3/klines': 6,
47910
+ 'spot/quotation/v3/lite-klines': 5,
47911
+ 'spot/quotation/v3/klines': 7,
47819
47912
  'spot/quotation/v3/books': 4,
47820
47913
  'spot/quotation/v3/trades': 4,
47821
47914
  'spot/v1/ticker': 5,
47822
47915
  'spot/v2/ticker': 30,
47823
47916
  'spot/v1/ticker_detail': 5,
47824
47917
  'spot/v1/steps': 30,
47825
- 'spot/v1/symbols/kline': 5,
47918
+ 'spot/v1/symbols/kline': 6,
47826
47919
  'spot/v1/symbols/book': 5,
47827
47920
  'spot/v1/symbols/trades': 5,
47828
47921
  // contract markets
@@ -47831,7 +47924,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
47831
47924
  'contract/public/depth': 5,
47832
47925
  'contract/public/open-interest': 30,
47833
47926
  'contract/public/funding-rate': 30,
47834
- 'contract/public/kline': 5,
47927
+ 'contract/public/kline': 6,
47835
47928
  'account/v1/currencies': 30,
47836
47929
  },
47837
47930
  },
@@ -50882,22 +50975,18 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50882
50975
  'fee': fee,
50883
50976
  };
50884
50977
  }
50885
- async repayMargin(code, amount, symbol = undefined, params = {}) {
50978
+ async repayIsolatedMargin(symbol, code, amount, params = {}) {
50886
50979
  /**
50887
50980
  * @method
50888
- * @name bitmart#repayMargin
50981
+ * @name bitmart#repayIsolatedMargin
50889
50982
  * @description repay borrowed margin and interest
50890
50983
  * @see https://developer-pro.bitmart.com/en/spot/#margin-repay-isolated
50984
+ * @param {string} symbol unified market symbol
50891
50985
  * @param {string} code unified currency code of the currency to repay
50892
50986
  * @param {string} amount the amount to repay
50893
- * @param {string} symbol unified market symbol
50894
50987
  * @param {object} [params] extra parameters specific to the bitmart api endpoint
50895
- * @param {string} [params.marginMode] 'isolated' is the default and 'cross' is unavailable
50896
50988
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
50897
50989
  */
50898
- if (symbol === undefined) {
50899
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' repayMargin() requires a symbol argument');
50900
- }
50901
50990
  await this.loadMarkets();
50902
50991
  const market = this.market(symbol);
50903
50992
  const currency = this.currency(code);
@@ -50906,7 +50995,6 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50906
50995
  'currency': currency['id'],
50907
50996
  'amount': this.currencyToPrecision(code, amount),
50908
50997
  };
50909
- params = this.omit(params, 'marginMode');
50910
50998
  const response = await this.privatePostSpotV1MarginIsolatedRepay(this.extend(request, params));
50911
50999
  //
50912
51000
  // {
@@ -50925,22 +51013,18 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50925
51013
  'symbol': symbol,
50926
51014
  });
50927
51015
  }
50928
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
51016
+ async borrowIsolatedMargin(symbol, code, amount, params = {}) {
50929
51017
  /**
50930
51018
  * @method
50931
- * @name bitmart#borrowMargin
51019
+ * @name bitmart#borrowIsolatedMargin
50932
51020
  * @description create a loan to borrow margin
50933
51021
  * @see https://developer-pro.bitmart.com/en/spot/#margin-borrow-isolated
51022
+ * @param {string} symbol unified market symbol
50934
51023
  * @param {string} code unified currency code of the currency to borrow
50935
51024
  * @param {string} amount the amount to borrow
50936
- * @param {string} symbol unified market symbol
50937
51025
  * @param {object} [params] extra parameters specific to the bitmart api endpoint
50938
- * @param {string} [params.marginMode] 'isolated' is the default and 'cross' is unavailable
50939
51026
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
50940
51027
  */
50941
- if (symbol === undefined) {
50942
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' borrowMargin() requires a symbol argument');
50943
- }
50944
51028
  await this.loadMarkets();
50945
51029
  const market = this.market(symbol);
50946
51030
  const currency = this.currency(code);
@@ -50949,7 +51033,6 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50949
51033
  'currency': currency['id'],
50950
51034
  'amount': this.currencyToPrecision(code, amount),
50951
51035
  };
50952
- params = this.omit(params, 'marginMode');
50953
51036
  const response = await this.privatePostSpotV1MarginIsolatedBorrow(this.extend(request, params));
50954
51037
  //
50955
51038
  // {
@@ -58594,7 +58677,7 @@ class bitrue extends _abstract_bitrue_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
58594
58677
  'kline': 'https://www.bitrue.com/kline-api',
58595
58678
  },
58596
58679
  'www': 'https://www.bitrue.com',
58597
- 'referral': 'https://www.bitrue.com/activity/task/task-landing?inviteCode=EZWETQE&cn=900000',
58680
+ 'referral': 'https://www.bitrue.com/affiliate/landing?cn=600000&inviteCode=EZWETQE',
58598
58681
  'doc': [
58599
58682
  'https://github.com/Bitrue-exchange/bitrue-official-api-docs',
58600
58683
  ],
@@ -74161,6 +74244,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74161
74244
  'swap': true,
74162
74245
  'future': true,
74163
74246
  'option': true,
74247
+ 'borrowCrossMargin': true,
74164
74248
  'cancelAllOrders': true,
74165
74249
  'cancelOrder': true,
74166
74250
  'createOrder': true,
@@ -74223,6 +74307,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74223
74307
  'fetchUnderlyingAssets': false,
74224
74308
  'fetchVolatilityHistory': true,
74225
74309
  'fetchWithdrawals': true,
74310
+ 'repayCrossMargin': true,
74226
74311
  'setLeverage': true,
74227
74312
  'setMarginMode': true,
74228
74313
  'setPositionMode': true,
@@ -77560,7 +77645,9 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
77560
77645
  const result = await this.fetchOrders(symbol, undefined, undefined, this.extend(request, params));
77561
77646
  const length = result.length;
77562
77647
  if (length === 0) {
77563
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.OrderNotFound('Order ' + id.toString() + ' does not exist.');
77648
+ const isTrigger = this.safeValueN(params, ['trigger', 'stop'], false);
77649
+ const extra = isTrigger ? '' : 'If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = true';
77650
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.OrderNotFound('Order ' + id.toString() + ' was not found.' + extra);
77564
77651
  }
77565
77652
  if (length > 1) {
77566
77653
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidOrder(this.id + ' returned more than one order');
@@ -77586,7 +77673,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
77586
77673
  * @param {boolean} [params.isLeverage] *unified spot only* false then spot trading true then margin trading
77587
77674
  * @param {string} [params.tpslMode] *contract only* 'full' or 'partial'
77588
77675
  * @param {string} [params.mmp] *option only* market maker protection
77589
- * @param {string} [params.triggerDirection] *contract only* the direction for trigger orders, 'up' or 'down'
77676
+ * @param {string} [params.triggerDirection] *contract only* the direction for trigger orders, 'above' or 'below'
77590
77677
  * @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
77591
77678
  * @param {float} [params.stopLossPrice] The price at which a stop loss order is triggered at
77592
77679
  * @param {float} [params.takeProfitPrice] The price at which a take profit order is triggered at
@@ -77718,21 +77805,30 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
77718
77805
  const isStopLoss = stopLoss !== undefined;
77719
77806
  const isTakeProfit = takeProfit !== undefined;
77720
77807
  const isBuy = side === 'buy';
77721
- const setTriggerDirection = (stopLossTriggerPrice || triggerPrice) ? !isBuy : isBuy;
77722
- const defaultTriggerDirection = setTriggerDirection ? 2 : 1;
77723
- const triggerDirection = this.safeString(params, 'triggerDirection');
77724
- params = this.omit(params, 'triggerDirection');
77725
- let selectedDirection = defaultTriggerDirection;
77726
- if (triggerDirection !== undefined) {
77727
- const isAsending = ((triggerDirection === 'up') || (triggerDirection === '1'));
77728
- selectedDirection = isAsending ? 1 : 2;
77729
- }
77730
77808
  if (triggerPrice !== undefined) {
77731
- request['triggerDirection'] = selectedDirection;
77809
+ const triggerDirection = this.safeString(params, 'triggerDirection');
77810
+ params = this.omit(params, ['triggerPrice', 'stopPrice', 'triggerDirection']);
77811
+ if (market['spot']) {
77812
+ if (triggerDirection !== undefined) {
77813
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' createOrder() : trigger order does not support triggerDirection for spot markets yet');
77814
+ }
77815
+ }
77816
+ else {
77817
+ if (triggerDirection === undefined) {
77818
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' stop/trigger orders require a triggerDirection parameter, either "above" or "below" to determine the direction of the trigger.');
77819
+ }
77820
+ const isAsending = ((triggerDirection === 'above') || (triggerDirection === '1'));
77821
+ request['triggerDirection'] = isAsending ? 1 : 2;
77822
+ }
77732
77823
  request['triggerPrice'] = this.priceToPrecision(symbol, triggerPrice);
77733
77824
  }
77734
77825
  else if (isStopLossTriggerOrder || isTakeProfitTriggerOrder) {
77735
- request['triggerDirection'] = selectedDirection;
77826
+ if (isBuy) {
77827
+ request['triggerDirection'] = isStopLossTriggerOrder ? 1 : 2;
77828
+ }
77829
+ else {
77830
+ request['triggerDirection'] = isStopLossTriggerOrder ? 2 : 1;
77831
+ }
77736
77832
  triggerPrice = isStopLossTriggerOrder ? stopLossTriggerPrice : takeProfitTriggerPrice;
77737
77833
  request['triggerPrice'] = this.priceToPrecision(symbol, triggerPrice);
77738
77834
  request['reduceOnly'] = true;
@@ -78532,8 +78628,8 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
78532
78628
  return await this.fetchUsdcOrders(symbol, since, limit, params);
78533
78629
  }
78534
78630
  request['category'] = type;
78535
- const isStop = this.safeValue(params, 'stop', false);
78536
- params = this.omit(params, ['stop']);
78631
+ const isStop = this.safeValueN(params, ['trigger', 'stop'], false);
78632
+ params = this.omit(params, ['trigger', 'stop']);
78537
78633
  if (isStop) {
78538
78634
  if (type === 'spot') {
78539
78635
  request['orderFilter'] = 'tpslOrder';
@@ -80739,29 +80835,24 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
80739
80835
  const data = this.addPaginationCursorToResult(response);
80740
80836
  return this.parseTransfers(data, currency, since, limit);
80741
80837
  }
80742
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
80838
+ async borrowCrossMargin(code, amount, params = {}) {
80743
80839
  /**
80744
80840
  * @method
80745
- * @name bybit#borrowMargin
80841
+ * @name bybit#borrowCrossMargin
80746
80842
  * @description create a loan to borrow margin
80747
80843
  * @see https://bybit-exchange.github.io/docs/v5/spot-margin-normal/borrow
80748
80844
  * @param {string} code unified currency code of the currency to borrow
80749
80845
  * @param {float} amount the amount to borrow
80750
- * @param {string} symbol not used by bybit.borrowMargin ()
80751
80846
  * @param {object} [params] extra parameters specific to the bybit api endpoint
80752
80847
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
80753
80848
  */
80754
80849
  await this.loadMarkets();
80755
80850
  const currency = this.currency(code);
80756
- const [marginMode, query] = this.handleMarginModeAndParams('borrowMargin', params);
80757
- if (marginMode === 'isolated') {
80758
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' borrowMargin () cannot use isolated margin');
80759
- }
80760
80851
  const request = {
80761
80852
  'coin': currency['id'],
80762
80853
  'qty': this.currencyToPrecision(code, amount),
80763
80854
  };
80764
- const response = await this.privatePostV5SpotCrossMarginTradeLoan(this.extend(request, query));
80855
+ const response = await this.privatePostV5SpotCrossMarginTradeLoan(this.extend(request, params));
80765
80856
  //
80766
80857
  // {
80767
80858
  // "retCode": 0,
@@ -80776,33 +80867,28 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
80776
80867
  const result = this.safeValue(response, 'result', {});
80777
80868
  const transaction = this.parseMarginLoan(result, currency);
80778
80869
  return this.extend(transaction, {
80779
- 'symbol': symbol,
80870
+ 'symbol': undefined,
80780
80871
  'amount': amount,
80781
80872
  });
80782
80873
  }
80783
- async repayMargin(code, amount, symbol = undefined, params = {}) {
80874
+ async repayCrossMargin(code, amount, params = {}) {
80784
80875
  /**
80785
80876
  * @method
80786
- * @name bybit#repayMargin
80877
+ * @name bybit#repayCrossMargin
80787
80878
  * @description repay borrowed margin and interest
80788
80879
  * @see https://bybit-exchange.github.io/docs/v5/spot-margin-normal/repay
80789
80880
  * @param {string} code unified currency code of the currency to repay
80790
80881
  * @param {float} amount the amount to repay
80791
- * @param {string} symbol not used by bybit.repayMargin ()
80792
80882
  * @param {object} [params] extra parameters specific to the bybit api endpoint
80793
80883
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
80794
80884
  */
80795
80885
  await this.loadMarkets();
80796
80886
  const currency = this.currency(code);
80797
- const [marginMode, query] = this.handleMarginModeAndParams('repayMargin', params);
80798
- if (marginMode === 'isolated') {
80799
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' repayMargin () cannot use isolated margin');
80800
- }
80801
80887
  const request = {
80802
80888
  'coin': currency['id'],
80803
80889
  'qty': this.numberToString(amount),
80804
80890
  };
80805
- const response = await this.privatePostV5SpotCrossMarginTradeRepay(this.extend(request, query));
80891
+ const response = await this.privatePostV5SpotCrossMarginTradeRepay(this.extend(request, params));
80806
80892
  //
80807
80893
  // {
80808
80894
  // "retCode": 0,
@@ -80817,7 +80903,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
80817
80903
  const result = this.safeValue(response, 'result', {});
80818
80904
  const transaction = this.parseMarginLoan(result, currency);
80819
80905
  return this.extend(transaction, {
80820
- 'symbol': symbol,
80906
+ 'symbol': undefined,
80821
80907
  'amount': amount,
80822
80908
  });
80823
80909
  }
@@ -89267,7 +89353,8 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
89267
89353
  'future': false,
89268
89354
  'option': false,
89269
89355
  'addMargin': true,
89270
- 'borrowMargin': true,
89356
+ 'borrowCrossMargin': false,
89357
+ 'borrowIsolatedMargin': true,
89271
89358
  'cancelAllOrders': true,
89272
89359
  'cancelOrder': true,
89273
89360
  'createDepositAddress': true,
@@ -89320,7 +89407,8 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
89320
89407
  'fetchWithdrawal': false,
89321
89408
  'fetchWithdrawals': true,
89322
89409
  'reduceMargin': true,
89323
- 'repayMargin': true,
89410
+ 'repayCrossMargin': false,
89411
+ 'repayIsolatedMargin': true,
89324
89412
  'setLeverage': true,
89325
89413
  'setMarginMode': true,
89326
89414
  'setPositionMode': false,
@@ -92485,16 +92573,19 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
92485
92573
  const maintenanceMargin = this.safeString(position, 'mainten_margin_amount');
92486
92574
  const maintenanceMarginPercentage = this.safeString(position, 'mainten_margin');
92487
92575
  const collateral = this.safeString(position, 'margin_amount');
92488
- const leverage = this.safeNumber(position, 'leverage');
92576
+ const leverage = this.safeString(position, 'leverage');
92577
+ const notional = this.safeString(position, 'open_val');
92578
+ const initialMargin = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.stringDiv(notional, leverage);
92579
+ const initialMarginPercentage = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.stringDiv('1', leverage);
92489
92580
  return this.safePosition({
92490
92581
  'info': position,
92491
92582
  'id': positionId,
92492
92583
  'symbol': symbol,
92493
- 'notional': undefined,
92584
+ 'notional': this.parseNumber(notional),
92494
92585
  'marginMode': marginMode,
92495
92586
  'liquidationPrice': liquidationPrice,
92496
- 'entryPrice': entryPrice,
92497
- 'unrealizedPnl': unrealizedPnl,
92587
+ 'entryPrice': this.parseNumber(entryPrice),
92588
+ 'unrealizedPnl': this.parseNumber(unrealizedPnl),
92498
92589
  'percentage': undefined,
92499
92590
  'contracts': contracts,
92500
92591
  'contractSize': this.safeNumber(market, 'contractSize'),
@@ -92505,15 +92596,15 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
92505
92596
  'timestamp': timestamp,
92506
92597
  'datetime': this.iso8601(timestamp),
92507
92598
  'lastUpdateTimestamp': undefined,
92508
- 'maintenanceMargin': maintenanceMargin,
92509
- 'maintenanceMarginPercentage': maintenanceMarginPercentage,
92510
- 'collateral': collateral,
92511
- 'initialMargin': undefined,
92512
- 'initialMarginPercentage': undefined,
92513
- 'leverage': leverage,
92599
+ 'maintenanceMargin': this.parseNumber(maintenanceMargin),
92600
+ 'maintenanceMarginPercentage': this.parseNumber(maintenanceMarginPercentage),
92601
+ 'collateral': this.parseNumber(collateral),
92602
+ 'initialMargin': this.parseNumber(initialMargin),
92603
+ 'initialMarginPercentage': this.parseNumber(initialMarginPercentage),
92604
+ 'leverage': this.parseNumber(leverage),
92514
92605
  'marginRatio': undefined,
92515
- 'stopLossPrice': this.safeNumber(position, 'stop_loss_price'),
92516
- 'takeProfitPrice': this.safeNumber(position, 'take_profit_price'),
92606
+ 'stopLossPrice': this.omitZero(this.safeString(position, 'stop_loss_price')),
92607
+ 'takeProfitPrice': this.omitZero(this.safeString(position, 'take_profit_price')),
92517
92608
  });
92518
92609
  }
92519
92610
  async setMarginMode(marginMode, symbol = undefined, params = {}) {
@@ -93832,21 +93923,18 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
93832
93923
  'info': info,
93833
93924
  };
93834
93925
  }
93835
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
93926
+ async borrowIsolatedMargin(symbol, code, amount, params = {}) {
93836
93927
  /**
93837
93928
  * @method
93838
- * @name coinex#borrowMargin
93929
+ * @name coinex#borrowIsolatedMargin
93839
93930
  * @description create a loan to borrow margin
93840
93931
  * @see https://github.com/coinexcom/coinex_exchange_api/wiki/086margin_loan
93932
+ * @param {string} symbol unified market symbol, required for coinex
93841
93933
  * @param {string} code unified currency code of the currency to borrow
93842
93934
  * @param {float} amount the amount to borrow
93843
- * @param {string} symbol unified market symbol, required for coinex
93844
93935
  * @param {object} [params] extra parameters specific to the coinex api endpoint
93845
93936
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
93846
93937
  */
93847
- if (symbol === undefined) {
93848
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' borrowMargin() requires a symbol argument');
93849
- }
93850
93938
  await this.loadMarkets();
93851
93939
  const market = this.market(symbol);
93852
93940
  const currency = this.currency(code);
@@ -93872,22 +93960,19 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
93872
93960
  'symbol': symbol,
93873
93961
  });
93874
93962
  }
93875
- async repayMargin(code, amount, symbol = undefined, params = {}) {
93963
+ async repayIsolatedMargin(symbol, code, amount, params = {}) {
93876
93964
  /**
93877
93965
  * @method
93878
- * @name coinex#repayMargin
93966
+ * @name coinex#repayIsolatedMargin
93879
93967
  * @description repay borrowed margin and interest
93880
93968
  * @see https://github.com/coinexcom/coinex_exchange_api/wiki/087margin_flat
93969
+ * @param {string} symbol unified market symbol, required for coinex
93881
93970
  * @param {string} code unified currency code of the currency to repay
93882
93971
  * @param {float} amount the amount to repay
93883
- * @param {string} symbol unified market symbol, required for coinex
93884
93972
  * @param {object} [params] extra parameters specific to the coinex api endpoint
93885
93973
  * @param {string} [params.loan_id] extra parameter that is not required
93886
93974
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
93887
93975
  */
93888
- if (symbol === undefined) {
93889
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' repayMargin() requires a symbol argument');
93890
- }
93891
93976
  await this.loadMarkets();
93892
93977
  const market = this.market(symbol);
93893
93978
  const currency = this.currency(code);
@@ -93896,10 +93981,6 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
93896
93981
  'coin_type': currency['id'],
93897
93982
  'amount': this.currencyToPrecision(code, amount),
93898
93983
  };
93899
- const loanId = this.safeInteger(params, 'loan_id');
93900
- if (loanId !== undefined) {
93901
- request['loan_id'] = loanId;
93902
- }
93903
93984
  const response = await this.privatePostMarginFlat(this.extend(request, params));
93904
93985
  //
93905
93986
  // {
@@ -133572,7 +133653,8 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
133572
133653
  'future': true,
133573
133654
  'option': undefined,
133574
133655
  'addMargin': undefined,
133575
- 'borrowMargin': true,
133656
+ 'borrowCrossMargin': true,
133657
+ 'borrowIsolatedMargin': true,
133576
133658
  'cancelAllOrders': true,
133577
133659
  'cancelOrder': true,
133578
133660
  'cancelOrders': true,
@@ -133652,7 +133734,8 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
133652
133734
  'fetchWithdrawals': true,
133653
133735
  'fetchWithdrawalWhitelist': undefined,
133654
133736
  'reduceMargin': undefined,
133655
- 'repayMargin': true,
133737
+ 'repayCrossMargin': true,
133738
+ 'repayIsolatedMargin': true,
133656
133739
  'setLeverage': true,
133657
133740
  'setMarginMode': false,
133658
133741
  'setPositionMode': false,
@@ -134702,10 +134785,6 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
134702
134785
  'deposit-earning': 'deposit-earning',
134703
134786
  'otc-options': 'otc-options',
134704
134787
  },
134705
- 'marginAccounts': {
134706
- 'cross': 'super-margin',
134707
- 'isolated': 'margin',
134708
- },
134709
134788
  'typesByAccount': {
134710
134789
  'pro': 'spot',
134711
134790
  'futures': 'future',
@@ -141668,41 +141747,60 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
141668
141747
  'info': interest,
141669
141748
  }, market);
141670
141749
  }
141671
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
141750
+ async borrowIsolatedMargin(symbol, code, amount, params = {}) {
141672
141751
  /**
141673
141752
  * @method
141674
- * @name huobi#borrowMargin
141753
+ * @name huobi#borrowIsolatedMargin
141675
141754
  * @description create a loan to borrow margin
141676
141755
  * @see https://huobiapi.github.io/docs/spot/v1/en/#request-a-margin-loan-isolated
141677
141756
  * @see https://huobiapi.github.io/docs/spot/v1/en/#request-a-margin-loan-cross
141757
+ * @param {string} symbol unified market symbol, required for isolated margin
141678
141758
  * @param {string} code unified currency code of the currency to borrow
141679
141759
  * @param {float} amount the amount to borrow
141680
- * @param {string} symbol unified market symbol, required for isolated margin
141681
141760
  * @param {object} [params] extra parameters specific to the huobi api endpoint
141682
141761
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
141683
141762
  */
141684
141763
  await this.loadMarkets();
141685
141764
  const currency = this.currency(code);
141765
+ const market = this.market(symbol);
141686
141766
  const request = {
141687
141767
  'currency': currency['id'],
141688
141768
  'amount': this.currencyToPrecision(code, amount),
141769
+ 'symbol': market['id'],
141689
141770
  };
141690
- let marginMode = undefined;
141691
- [marginMode, params] = this.handleMarginModeAndParams('borrowMargin', params);
141692
- marginMode = (marginMode === undefined) ? 'cross' : marginMode;
141693
- let method = undefined;
141694
- if (marginMode === 'isolated') {
141695
- if (symbol === undefined) {
141696
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' borrowMargin() requires a symbol argument');
141697
- }
141698
- const market = this.market(symbol);
141699
- request['symbol'] = market['id'];
141700
- method = 'privatePostMarginOrders';
141701
- }
141702
- else if (marginMode === 'cross') {
141703
- method = 'privatePostCrossMarginOrders';
141704
- }
141705
- const response = await this[method](this.extend(request, params));
141771
+ const response = await this.privatePostMarginOrders(this.extend(request, params));
141772
+ //
141773
+ // Isolated
141774
+ //
141775
+ // {
141776
+ // "data": 1000
141777
+ // }
141778
+ //
141779
+ const transaction = this.parseMarginLoan(response, currency);
141780
+ return this.extend(transaction, {
141781
+ 'amount': amount,
141782
+ 'symbol': symbol,
141783
+ });
141784
+ }
141785
+ async borrowCrossMargin(code, amount, params = {}) {
141786
+ /**
141787
+ * @method
141788
+ * @name huobi#borrowCrossMargin
141789
+ * @description create a loan to borrow margin
141790
+ * @see https://huobiapi.github.io/docs/spot/v1/en/#request-a-margin-loan-isolated
141791
+ * @see https://huobiapi.github.io/docs/spot/v1/en/#request-a-margin-loan-cross
141792
+ * @param {string} code unified currency code of the currency to borrow
141793
+ * @param {float} amount the amount to borrow
141794
+ * @param {object} [params] extra parameters specific to the huobi api endpoint
141795
+ * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
141796
+ */
141797
+ await this.loadMarkets();
141798
+ const currency = this.currency(code);
141799
+ const request = {
141800
+ 'currency': currency['id'],
141801
+ 'amount': this.currencyToPrecision(code, amount),
141802
+ };
141803
+ const response = await this.privatePostCrossMarginOrders(this.extend(request, params));
141706
141804
  //
141707
141805
  // Cross
141708
141806
  //
@@ -141711,38 +141809,65 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
141711
141809
  // "data": null
141712
141810
  // }
141713
141811
  //
141714
- // Isolated
141812
+ const transaction = this.parseMarginLoan(response, currency);
141813
+ return this.extend(transaction, {
141814
+ 'amount': amount,
141815
+ });
141816
+ }
141817
+ async repayIsolatedMargin(symbol, code, amount, params = {}) {
141818
+ /**
141819
+ * @method
141820
+ * @name huobi#repayIsolatedMargin
141821
+ * @description repay borrowed margin and interest
141822
+ * @see https://huobiapi.github.io/docs/spot/v1/en/#repay-margin-loan-cross-isolated
141823
+ * @param {string} code unified currency code of the currency to repay
141824
+ * @param {float} amount the amount to repay
141825
+ * @param {string} symbol unified market symbol
141826
+ * @param {object} [params] extra parameters specific to the huobi api endpoint
141827
+ * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
141828
+ */
141829
+ await this.loadMarkets();
141830
+ const currency = this.currency(code);
141831
+ const accountId = await this.fetchAccountIdByType('spot', 'isolated', symbol, params);
141832
+ const request = {
141833
+ 'currency': currency['id'],
141834
+ 'amount': this.currencyToPrecision(code, amount),
141835
+ 'accountId': accountId,
141836
+ };
141837
+ const response = await this.v2PrivatePostAccountRepayment(this.extend(request, params));
141715
141838
  //
141716
141839
  // {
141717
- // "data": 1000
141840
+ // "code":200,
141841
+ // "data": [
141842
+ // {
141843
+ // "repayId":1174424,
141844
+ // "repayTime":1600747722018
141845
+ // }
141846
+ // ]
141718
141847
  // }
141719
141848
  //
141720
- const transaction = this.parseMarginLoan(response, currency);
141849
+ const data = this.safeValue(response, 'Data', []);
141850
+ const loan = this.safeValue(data, 0);
141851
+ const transaction = this.parseMarginLoan(loan, currency);
141721
141852
  return this.extend(transaction, {
141722
141853
  'amount': amount,
141723
141854
  'symbol': symbol,
141724
141855
  });
141725
141856
  }
141726
- async repayMargin(code, amount, symbol = undefined, params = {}) {
141857
+ async repayCrossMargin(code, amount, params = {}) {
141727
141858
  /**
141728
141859
  * @method
141729
- * @name huobi#repayMargin
141860
+ * @name huobi#repayCrossMargin
141730
141861
  * @description repay borrowed margin and interest
141731
141862
  * @see https://huobiapi.github.io/docs/spot/v1/en/#repay-margin-loan-cross-isolated
141732
141863
  * @param {string} code unified currency code of the currency to repay
141733
141864
  * @param {float} amount the amount to repay
141734
- * @param {string} symbol unified market symbol
141735
141865
  * @param {object} [params] extra parameters specific to the huobi api endpoint
141736
141866
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
141737
141867
  */
141738
141868
  await this.loadMarkets();
141739
141869
  const currency = this.currency(code);
141740
- let marginMode = undefined;
141741
- [marginMode, params] = this.handleMarginModeAndParams('repayMargin', params);
141742
- marginMode = (marginMode === undefined) ? 'cross' : marginMode;
141743
- const marginAccounts = this.safeValue(this.options, 'marginAccounts', {});
141744
- const accountType = this.getSupportedMapping(marginMode, marginAccounts);
141745
- const accountId = await this.fetchAccountIdByType(accountType, marginMode, symbol, params);
141870
+ const accountId = await this.fetchAccountIdByType('spot', 'cross', undefined, params);
141746
141871
  const request = {
141747
141872
  'currency': currency['id'],
141748
141873
  'amount': this.currencyToPrecision(code, amount),
@@ -141765,7 +141890,6 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
141765
141890
  const transaction = this.parseMarginLoan(loan, currency);
141766
141891
  return this.extend(transaction, {
141767
141892
  'amount': amount,
141768
- 'symbol': symbol,
141769
141893
  });
141770
141894
  }
141771
141895
  parseMarginLoan(info, currency = undefined) {
@@ -141792,7 +141916,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
141792
141916
  //
141793
141917
  const timestamp = this.safeInteger(info, 'repayTime');
141794
141918
  return {
141795
- 'id': this.safeInteger2(info, 'repayId', 'data'),
141919
+ 'id': this.safeString2(info, 'repayId', 'data'),
141796
141920
  'currency': this.safeCurrencyCode(undefined, currency),
141797
141921
  'amount': undefined,
141798
141922
  'symbol': undefined,
@@ -144139,31 +144263,6 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
144139
144263
  }
144140
144264
 
144141
144265
 
144142
- /***/ }),
144143
-
144144
- /***/ 5547:
144145
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
144146
-
144147
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
144148
- /* harmony export */ Z: () => (/* binding */ huobipro)
144149
- /* harmony export */ });
144150
- /* harmony import */ var _huobi_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8146);
144151
- // ---------------------------------------------------------------------------
144152
-
144153
- // ---------------------------------------------------------------------------
144154
- class huobipro extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
144155
- describe() {
144156
- // this is an alias for backward-compatibility
144157
- // to be removed soon
144158
- return this.deepExtend(super.describe(), {
144159
- 'id': 'huobipro',
144160
- 'alias': true,
144161
- 'name': 'Huobi Pro',
144162
- });
144163
- }
144164
- }
144165
-
144166
-
144167
144266
  /***/ }),
144168
144267
 
144169
144268
  /***/ 8232:
@@ -152914,7 +153013,8 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
152914
153013
  'swap': false,
152915
153014
  'future': false,
152916
153015
  'option': false,
152917
- 'borrowMargin': true,
153016
+ 'borrowCrossMargin': true,
153017
+ 'borrowIsolatedMargin': true,
152918
153018
  'cancelAllOrders': true,
152919
153019
  'cancelOrder': true,
152920
153020
  'createDepositAddress': true,
@@ -152975,7 +153075,8 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
152975
153075
  'fetchTransactionFee': true,
152976
153076
  'fetchTransfers': false,
152977
153077
  'fetchWithdrawals': true,
152978
- 'repayMargin': true,
153078
+ 'repayCrossMargin': true,
153079
+ 'repayIsolatedMargin': true,
152979
153080
  'setLeverage': false,
152980
153081
  'setMarginMode': false,
152981
153082
  'setPositionMode': false,
@@ -156991,41 +157092,64 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
156991
157092
  'info': info,
156992
157093
  };
156993
157094
  }
156994
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
157095
+ async borrowCrossMargin(code, amount, params = {}) {
156995
157096
  /**
156996
157097
  * @method
156997
- * @name kucoin#borrowMargin
157098
+ * @name kucoin#borrowCrossMargin
156998
157099
  * @description create a loan to borrow margin
156999
157100
  * @see https://docs.kucoin.com/#1-margin-borrowing
157000
157101
  * @param {string} code unified currency code of the currency to borrow
157001
157102
  * @param {float} amount the amount to borrow
157103
+ * @param {object} [params] extra parameters specific to the kucoin api endpoints
157104
+ * @param {string} [params.timeInForce] either IOC or FOK
157105
+ * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
157106
+ */
157107
+ await this.loadMarkets();
157108
+ const currency = this.currency(code);
157109
+ const request = {
157110
+ 'currency': currency['id'],
157111
+ 'size': this.currencyToPrecision(code, amount),
157112
+ 'timeInForce': 'FOK',
157113
+ };
157114
+ const response = await this.privatePostMarginBorrow(this.extend(request, params));
157115
+ //
157116
+ // {
157117
+ // "success": true,
157118
+ // "code": "200",
157119
+ // "msg": "success",
157120
+ // "retry": false,
157121
+ // "data": {
157122
+ // "orderNo": "5da6dba0f943c0c81f5d5db5",
157123
+ // "actualSize": 10
157124
+ // }
157125
+ // }
157126
+ //
157127
+ const data = this.safeValue(response, 'data', {});
157128
+ return this.parseMarginLoan(data, currency);
157129
+ }
157130
+ async borrowIsolatedMargin(symbol, code, amount, params = {}) {
157131
+ /**
157132
+ * @method
157133
+ * @name kucoin#borrowIsolatedMargin
157134
+ * @description create a loan to borrow margin
157135
+ * @see https://docs.kucoin.com/#1-margin-borrowing
157002
157136
  * @param {string} symbol unified market symbol, required for isolated margin
157137
+ * @param {string} code unified currency code of the currency to borrow
157138
+ * @param {float} amount the amount to borrow
157003
157139
  * @param {object} [params] extra parameters specific to the kucoin api endpoints
157004
157140
  * @param {string} [params.timeInForce] either IOC or FOK
157005
- * @param {string} [params.marginMode] 'cross' or 'isolated' default is 'cross'
157006
157141
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
157007
157142
  */
157008
- const marginMode = this.safeString(params, 'marginMode'); // cross or isolated
157009
- const isIsolated = marginMode === 'isolated';
157010
- params = this.omit(params, 'marginMode');
157011
- this.checkRequiredMarginArgument('borrowMargin', symbol, marginMode);
157012
157143
  await this.loadMarkets();
157144
+ const market = this.market(symbol);
157013
157145
  const currency = this.currency(code);
157014
157146
  const request = {
157015
157147
  'currency': currency['id'],
157016
157148
  'size': this.currencyToPrecision(code, amount),
157149
+ 'symbol': market['id'],
157150
+ 'timeInForce': 'FOK',
157151
+ 'isIsolated': true,
157017
157152
  };
157018
- const timeInForce = this.safeStringN(params, ['timeInForce', 'type', 'borrowStrategy'], 'IOC');
157019
- if (isIsolated) {
157020
- if (symbol === undefined) {
157021
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' borrowMargin() requires a symbol parameter for isolated margin');
157022
- }
157023
- const market = this.market(symbol);
157024
- request['symbol'] = market['id'];
157025
- request['isIsolated'] = true;
157026
- }
157027
- params = this.omit(params, ['timeInForce', 'type', 'borrowStrategy']);
157028
- request['timeInForce'] = timeInForce;
157029
157153
  const response = await this.privatePostMarginBorrow(this.extend(request, params));
157030
157154
  //
157031
157155
  // {
@@ -157042,37 +157166,60 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
157042
157166
  const data = this.safeValue(response, 'data', {});
157043
157167
  return this.parseMarginLoan(data, currency);
157044
157168
  }
157045
- async repayMargin(code, amount, symbol = undefined, params = {}) {
157169
+ async repayCrossMargin(code, amount, params = {}) {
157046
157170
  /**
157047
157171
  * @method
157048
- * @name kucoin#repayMargin
157172
+ * @name kucoin#repayCrossMargin
157049
157173
  * @description repay borrowed margin and interest
157050
157174
  * @see https://docs.kucoin.com/#2-repayment
157051
157175
  * @param {string} code unified currency code of the currency to repay
157052
157176
  * @param {float} amount the amount to repay
157177
+ * @param {object} [params] extra parameters specific to the kucoin api endpoints
157178
+ * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
157179
+ */
157180
+ await this.loadMarkets();
157181
+ const currency = this.currency(code);
157182
+ const request = {
157183
+ 'currency': currency['id'],
157184
+ 'size': this.currencyToPrecision(code, amount),
157185
+ };
157186
+ const response = await this.privatePostMarginRepay(this.extend(request, params));
157187
+ //
157188
+ // {
157189
+ // "success": true,
157190
+ // "code": "200",
157191
+ // "msg": "success",
157192
+ // "retry": false,
157193
+ // "data": {
157194
+ // "orderNo": "5da6dba0f943c0c81f5d5db5",
157195
+ // "actualSize": 10
157196
+ // }
157197
+ // }
157198
+ //
157199
+ const data = this.safeValue(response, 'data', {});
157200
+ return this.parseMarginLoan(data, currency);
157201
+ }
157202
+ async repayIsolatedMargin(symbol, code, amount, params = {}) {
157203
+ /**
157204
+ * @method
157205
+ * @name kucoin#repayIsolatedMargin
157206
+ * @description repay borrowed margin and interest
157207
+ * @see https://docs.kucoin.com/#2-repayment
157053
157208
  * @param {string} symbol unified market symbol
157209
+ * @param {string} code unified currency code of the currency to repay
157210
+ * @param {float} amount the amount to repay
157054
157211
  * @param {object} [params] extra parameters specific to the kucoin api endpoints
157055
- * @param {string} [params.marginMode] 'cross' or 'isolated' default is 'cross'
157056
157212
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
157057
157213
  */
157058
- const marginMode = this.safeString(params, 'marginMode'); // cross or isolated
157059
- const isIsolated = marginMode === 'isolated';
157060
- params = this.omit(params, 'marginMode');
157061
- this.checkRequiredMarginArgument('repayMargin', symbol, marginMode);
157062
157214
  await this.loadMarkets();
157215
+ const market = this.market(symbol);
157063
157216
  const currency = this.currency(code);
157064
157217
  const request = {
157065
157218
  'currency': currency['id'],
157066
157219
  'size': this.currencyToPrecision(code, amount),
157220
+ 'symbol': market['id'],
157221
+ 'isIsolated': true,
157067
157222
  };
157068
- if (isIsolated) {
157069
- if (symbol === undefined) {
157070
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' repayMargin() requires a symbol parameter for isolated margin');
157071
- }
157072
- const market = this.market(symbol);
157073
- request['symbol'] = market['id'];
157074
- request['isIsolated'] = true;
157075
- }
157076
157223
  const response = await this.privatePostMarginRepay(this.extend(request, params));
157077
157224
  //
157078
157225
  // {
@@ -169429,7 +169576,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
169429
169576
  'future': false,
169430
169577
  'option': false,
169431
169578
  'addMargin': true,
169432
- 'borrowMargin': true,
169579
+ 'borrowMargin': false,
169433
169580
  'cancelAllOrders': true,
169434
169581
  'cancelOrder': true,
169435
169582
  'cancelOrders': undefined,
@@ -169501,7 +169648,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
169501
169648
  'fetchWithdrawal': undefined,
169502
169649
  'fetchWithdrawals': true,
169503
169650
  'reduceMargin': true,
169504
- 'repayMargin': true,
169651
+ 'repayMargin': false,
169505
169652
  'setLeverage': true,
169506
169653
  'setMarginMode': undefined,
169507
169654
  'setPositionMode': true,
@@ -169612,10 +169759,6 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
169612
169759
  'capital/deposit/address': 1,
169613
169760
  'capital/sub-account/universalTransfer': 1,
169614
169761
  'capital/convert': 1,
169615
- 'margin/tradeMode': 1,
169616
- 'margin/order': 1,
169617
- 'margin/loan': 1,
169618
- 'margin/repay': 1,
169619
169762
  'mxDeduct/enable': 1,
169620
169763
  'userDataStream': 1,
169621
169764
  },
@@ -171529,13 +171672,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
171529
171672
  async createSpotOrder(market, type, side, amount, price = undefined, marginMode = undefined, params = {}) {
171530
171673
  await this.loadMarkets();
171531
171674
  const request = this.createSpotOrderRequest(market, type, side, amount, price, marginMode, params);
171532
- let response = undefined;
171533
- if (marginMode !== undefined) {
171534
- response = await this.spotPrivatePostMarginOrder(this.extend(request, params));
171535
- }
171536
- else {
171537
- response = await this.spotPrivatePostOrder(this.extend(request, params));
171538
- }
171675
+ const response = await this.spotPrivatePostOrder(this.extend(request, params));
171539
171676
  //
171540
171677
  // spot
171541
171678
  //
@@ -174422,82 +174559,6 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
174422
174559
  'hedged': (positionMode === 1),
174423
174560
  };
174424
174561
  }
174425
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
174426
- /**
174427
- * @method
174428
- * @name mexc3#borrowMargin
174429
- * @description create a loan to borrow margin
174430
- * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#loan
174431
- * @param {string} code unified currency code of the currency to borrow
174432
- * @param {float} amount the amount to borrow
174433
- * @param {string} symbol unified market symbol
174434
- * @param {object} [params] extra parameters specific to the mexc3 api endpoint
174435
- * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
174436
- */
174437
- if (symbol === undefined) {
174438
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' borrowMargin() requires a symbol argument');
174439
- }
174440
- await this.loadMarkets();
174441
- const market = this.market(symbol);
174442
- const currency = this.currency(code);
174443
- const request = {
174444
- 'asset': currency['id'],
174445
- 'amount': this.currencyToPrecision(code, amount),
174446
- 'symbol': market['id'],
174447
- };
174448
- const response = await this.spotPrivatePostMarginLoan(this.extend(request, params));
174449
- //
174450
- // {
174451
- // "tranId": "762407666453712896"
174452
- // }
174453
- //
174454
- const transaction = this.parseMarginLoan(response, currency);
174455
- return this.extend(transaction, {
174456
- 'amount': amount,
174457
- 'symbol': symbol,
174458
- });
174459
- }
174460
- async repayMargin(code, amount, symbol = undefined, params = {}) {
174461
- /**
174462
- * @method
174463
- * @name mexc3#repayMargin
174464
- * @description repay borrowed margin and interest
174465
- * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#repayment
174466
- * @param {string} code unified currency code of the currency to repay
174467
- * @param {float} amount the amount to repay
174468
- * @param {string} symbol unified market symbol
174469
- * @param {object} [params] extra parameters specific to the mexc3 api endpoint
174470
- * @param {string} [params.borrowId] transaction id '762407666453712896'
174471
- * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
174472
- */
174473
- if (symbol === undefined) {
174474
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' repayMargin() requires a symbol argument');
174475
- }
174476
- await this.loadMarkets();
174477
- const id = this.safeString2(params, 'id', 'borrowId');
174478
- if (id === undefined) {
174479
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' repayMargin() requires a borrowId argument in the params');
174480
- }
174481
- const market = this.market(symbol);
174482
- const currency = this.currency(code);
174483
- const request = {
174484
- 'asset': currency['id'],
174485
- 'amount': this.currencyToPrecision(code, amount),
174486
- 'borrowId': id,
174487
- 'symbol': market['id'],
174488
- };
174489
- const response = await this.spotPrivatePostMarginRepay(this.extend(request, params));
174490
- //
174491
- // {
174492
- // "tranId": "762407666453712896"
174493
- // }
174494
- //
174495
- const transaction = this.parseMarginLoan(response, currency);
174496
- return this.extend(transaction, {
174497
- 'amount': amount,
174498
- 'symbol': symbol,
174499
- });
174500
- }
174501
174562
  async fetchTransactionFees(codes = undefined, params = {}) {
174502
174563
  /**
174503
174564
  * @method
@@ -174685,22 +174746,6 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
174685
174746
  }
174686
174747
  return this.assignDefaultDepositWithdrawFees(result);
174687
174748
  }
174688
- parseMarginLoan(info, currency = undefined) {
174689
- //
174690
- // {
174691
- // "tranId": "762407666453712896"
174692
- // }
174693
- //
174694
- return {
174695
- 'id': this.safeString(info, 'tranId'),
174696
- 'currency': this.safeCurrencyCode(undefined, currency),
174697
- 'amount': undefined,
174698
- 'symbol': undefined,
174699
- 'timestamp': undefined,
174700
- 'datetime': undefined,
174701
- 'info': info,
174702
- };
174703
- }
174704
174749
  handleMarginModeAndParams(methodName, params = {}, defaultValue = undefined) {
174705
174750
  /**
174706
174751
  * @ignore
@@ -174819,28 +174864,6 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
174819
174864
  }
174820
174865
 
174821
174866
 
174822
- /***/ }),
174823
-
174824
- /***/ 2305:
174825
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
174826
-
174827
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
174828
- /* harmony export */ Z: () => (/* binding */ mexc3)
174829
- /* harmony export */ });
174830
- /* harmony import */ var _mexc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6641);
174831
- // ---------------------------------------------------------------------------
174832
-
174833
- // ---------------------------------------------------------------------------
174834
- class mexc3 extends _mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
174835
- describe() {
174836
- return this.deepExtend(super.describe(), {
174837
- 'id': 'mexc3',
174838
- 'alias': true,
174839
- });
174840
- }
174841
- }
174842
-
174843
-
174844
174867
  /***/ }),
174845
174868
 
174846
174869
  /***/ 4531:
@@ -182889,50 +182912,6 @@ class okcoin extends _abstract_okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
182889
182912
  }
182890
182913
 
182891
182914
 
182892
- /***/ }),
182893
-
182894
- /***/ 5322:
182895
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
182896
-
182897
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
182898
- /* harmony export */ Z: () => (/* binding */ okex)
182899
- /* harmony export */ });
182900
- /* harmony import */ var _okx_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4042);
182901
- // ---------------------------------------------------------------------------
182902
-
182903
- // ---------------------------------------------------------------------------
182904
- class okex extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
182905
- describe() {
182906
- return this.deepExtend(super.describe(), {
182907
- 'id': 'okex',
182908
- 'alias': true,
182909
- });
182910
- }
182911
- }
182912
-
182913
-
182914
- /***/ }),
182915
-
182916
- /***/ 7826:
182917
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
182918
-
182919
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
182920
- /* harmony export */ Z: () => (/* binding */ okex5)
182921
- /* harmony export */ });
182922
- /* harmony import */ var _okex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5322);
182923
- // ---------------------------------------------------------------------------
182924
-
182925
- // ---------------------------------------------------------------------------
182926
- class okex5 extends _okex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
182927
- describe() {
182928
- return this.deepExtend(super.describe(), {
182929
- 'id': 'okex5',
182930
- 'alias': true,
182931
- });
182932
- }
182933
- }
182934
-
182935
-
182936
182915
  /***/ }),
182937
182916
 
182938
182917
  /***/ 4042:
@@ -183061,7 +183040,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
183061
183040
  'fetchWithdrawals': true,
183062
183041
  'fetchWithdrawalWhitelist': false,
183063
183042
  'reduceMargin': true,
183064
- 'repayMargin': true,
183043
+ 'repayCrossMargin': true,
183065
183044
  'setLeverage': true,
183066
183045
  'setMargin': false,
183067
183046
  'setMarginMode': true,
@@ -189348,15 +189327,14 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
189348
189327
  'info': info,
189349
189328
  };
189350
189329
  }
189351
- async borrowMargin(code, amount, symbol = undefined, params = {}) {
189330
+ async borrowCrossMargin(code, amount, params = {}) {
189352
189331
  /**
189353
189332
  * @method
189354
- * @name okx#borrowMargin
189355
- * @description create a loan to borrow margin
189333
+ * @name okx#borrowCrossMargin
189334
+ * @description create a loan to borrow margin (need to be VIP 5 and above)
189356
189335
  * @see https://www.okx.com/docs-v5/en/#rest-api-account-vip-loans-borrow-and-repay
189357
189336
  * @param {string} code unified currency code of the currency to borrow
189358
189337
  * @param {float} amount the amount to borrow
189359
- * @param {string} symbol not used by okx.borrowMargin ()
189360
189338
  * @param {object} [params] extra parameters specific to the okx api endpoint
189361
189339
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
189362
189340
  */
@@ -189387,20 +189365,16 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
189387
189365
  //
189388
189366
  const data = this.safeValue(response, 'data', []);
189389
189367
  const loan = this.safeValue(data, 0);
189390
- const transaction = this.parseMarginLoan(loan, currency);
189391
- return this.extend(transaction, {
189392
- 'symbol': symbol,
189393
- });
189368
+ return this.parseMarginLoan(loan, currency);
189394
189369
  }
189395
- async repayMargin(code, amount, symbol = undefined, params = {}) {
189370
+ async repayCrossMargin(code, amount, params = {}) {
189396
189371
  /**
189397
189372
  * @method
189398
- * @name okx#repayMargin
189373
+ * @name okx#repayCrossMargin
189399
189374
  * @description repay borrowed margin and interest
189400
189375
  * @see https://www.okx.com/docs-v5/en/#rest-api-account-vip-loans-borrow-and-repay
189401
189376
  * @param {string} code unified currency code of the currency to repay
189402
189377
  * @param {float} amount the amount to repay
189403
- * @param {string} symbol not used by okx.repayMargin ()
189404
189378
  * @param {object} [params] extra parameters specific to the okx api endpoint
189405
189379
  * @returns {object} a [margin loan structure]{@link https://docs.ccxt.com/#/?id=margin-loan-structure}
189406
189380
  */
@@ -189431,10 +189405,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
189431
189405
  //
189432
189406
  const data = this.safeValue(response, 'data', []);
189433
189407
  const loan = this.safeValue(data, 0);
189434
- const transaction = this.parseMarginLoan(loan, currency);
189435
- return this.extend(transaction, {
189436
- 'symbol': symbol,
189437
- });
189408
+ return this.parseMarginLoan(loan, currency);
189438
189409
  }
189439
189410
  parseMarginLoan(info, currency = undefined) {
189440
189411
  //
@@ -208055,6 +208026,13 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
208055
208026
  return this.deepExtend(super.describe(), {
208056
208027
  'has': {
208057
208028
  'ws': true,
208029
+ 'createOrderWs': false,
208030
+ 'editOrderWs': false,
208031
+ 'fetchOpenOrdersWs': false,
208032
+ 'fetchOrderWs': false,
208033
+ 'cancelOrderWs': false,
208034
+ 'cancelOrdersWs': false,
208035
+ 'cancelAllOrdersWs': false,
208058
208036
  'watchBalance': true,
208059
208037
  'watchMyTrades': true,
208060
208038
  'watchOHLCV': true,
@@ -209737,6 +209715,13 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
209737
209715
  describe() {
209738
209716
  return this.deepExtend(super.describe(), {
209739
209717
  'has': {
209718
+ 'createOrderWs': false,
209719
+ 'editOrderWs': false,
209720
+ 'fetchOpenOrdersWs': false,
209721
+ 'fetchOrderWs': false,
209722
+ 'cancelOrderWs': false,
209723
+ 'cancelOrdersWs': false,
209724
+ 'cancelAllOrdersWs': false,
209740
209725
  'ws': true,
209741
209726
  'watchTicker': true,
209742
209727
  'watchOrderBook': true,
@@ -214494,6 +214479,15 @@ class bittrex extends _bittrex_js__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */
214494
214479
  return this.deepExtend(super.describe(), {
214495
214480
  'has': {
214496
214481
  'ws': true,
214482
+ 'cancelAllOrdersWs': false,
214483
+ 'cancelOrdersWs': false,
214484
+ 'cancelOrderWs': false,
214485
+ 'createOrderWs': false,
214486
+ 'editOrderWs': false,
214487
+ 'fetchBalanceWs': false,
214488
+ 'fetchOpenOrdersWs': false,
214489
+ 'fetchOrderWs': false,
214490
+ 'fetchTradesWs': false,
214497
214491
  'watchBalance': true,
214498
214492
  'watchHeartbeat': true,
214499
214493
  'watchMyTrades': true,
@@ -215452,6 +215446,15 @@ class bitvavo extends _bitvavo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
215452
215446
  return this.deepExtend(super.describe(), {
215453
215447
  'has': {
215454
215448
  'ws': true,
215449
+ 'createOrderWs': false,
215450
+ 'editOrderWs': false,
215451
+ 'fetchOpenOrdersWs': false,
215452
+ 'fetchOrderWs': false,
215453
+ 'cancelOrderWs': false,
215454
+ 'cancelOrdersWs': false,
215455
+ 'cancelAllOrdersWs': false,
215456
+ 'fetchTradesWs': false,
215457
+ 'fetchBalanceWs': false,
215455
215458
  'watchOrderBook': true,
215456
215459
  'watchTrades': true,
215457
215460
  'watchTicker': true,
@@ -216984,6 +216987,15 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
216984
216987
  return this.deepExtend(super.describe(), {
216985
216988
  'has': {
216986
216989
  'ws': true,
216990
+ 'createOrderWs': false,
216991
+ 'editOrderWs': false,
216992
+ 'fetchOpenOrdersWs': false,
216993
+ 'fetchOrderWs': false,
216994
+ 'cancelOrderWs': false,
216995
+ 'cancelOrdersWs': false,
216996
+ 'cancelAllOrdersWs': false,
216997
+ 'fetchTradesWs': false,
216998
+ 'fetchBalanceWs': false,
216987
216999
  'watchBalance': true,
216988
217000
  'watchMyTrades': true,
216989
217001
  'watchOHLCV': true,
@@ -229760,6 +229772,15 @@ class htx extends _htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
229760
229772
  return this.deepExtend(super.describe(), {
229761
229773
  'has': {
229762
229774
  'ws': true,
229775
+ 'createOrderWs': false,
229776
+ 'editOrderWs': false,
229777
+ 'fetchOpenOrdersWs': false,
229778
+ 'fetchOrderWs': false,
229779
+ 'cancelOrderWs': false,
229780
+ 'cancelOrdersWs': false,
229781
+ 'cancelAllOrdersWs': false,
229782
+ 'fetchTradesWs': false,
229783
+ 'fetchBalanceWs': false,
229763
229784
  'watchOrderBook': true,
229764
229785
  'watchOrders': true,
229765
229786
  'watchTickers': false,
@@ -230449,8 +230470,8 @@ class htx extends _htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
230449
230470
  let orderType = this.safeString(this.options, 'orderType', 'orders'); // orders or matchOrders
230450
230471
  orderType = this.safeString(params, 'orderType', orderType);
230451
230472
  params = this.omit(params, 'orderType');
230452
- const marketCode = (market !== undefined) ? market['lowercaseId'] : undefined;
230453
- const baseId = (market !== undefined) ? market['lowercaseBaseId'] : undefined;
230473
+ const marketCode = (market !== undefined) ? market['lowercaseId'].toLowerCase() : undefined;
230474
+ const baseId = (market !== undefined) ? market['baseId'] : undefined;
230454
230475
  const prefix = orderType;
230455
230476
  messageHash = prefix;
230456
230477
  if (subType === 'linear') {
@@ -230469,7 +230490,7 @@ class htx extends _htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
230469
230490
  else if (type === 'future') {
230470
230491
  // inverse futures Example: BCH/USD:BCH-220408
230471
230492
  if (baseId !== undefined) {
230472
- channel = prefix + '.' + baseId;
230493
+ channel = prefix + '.' + baseId.toLowerCase();
230473
230494
  messageHash = channel;
230474
230495
  }
230475
230496
  else {
@@ -230703,7 +230724,8 @@ class htx extends _htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
230703
230724
  // when we make a global subscription (for contracts only) our message hash can't have a symbol/currency attached
230704
230725
  // so we're removing it here
230705
230726
  let genericMessageHash = messageHash.replace('.' + market['lowercaseId'], '');
230706
- genericMessageHash = genericMessageHash.replace('.' + market['lowercaseBaseId'], '');
230727
+ const lowerCaseBaseId = this.safeStringLower(market, 'baseId');
230728
+ genericMessageHash = genericMessageHash.replace('.' + lowerCaseBaseId, '');
230707
230729
  client.resolve(this.orders, genericMessageHash);
230708
230730
  }
230709
230731
  parseWsOrder(order, market = undefined) {
@@ -231877,7 +231899,8 @@ class htx extends _htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
231877
231899
  // since this is a global sub, our messageHash does not specify any symbol (ex: orders_cross:trade)
231878
231900
  // so we must remove it
231879
231901
  let genericOrderHash = messageHash.replace('.' + market['lowercaseId'], '');
231880
- genericOrderHash = genericOrderHash.replace('.' + market['lowercaseBaseId'], '');
231902
+ const lowerCaseBaseId = this.safeStringLower(market, 'baseId');
231903
+ genericOrderHash = genericOrderHash.replace('.' + lowerCaseBaseId, '');
231881
231904
  const genericTradesHash = genericOrderHash + ':' + 'trade';
231882
231905
  client.resolve(this.myTrades, genericTradesHash);
231883
231906
  }
@@ -232738,28 +232761,6 @@ class huobijp extends _huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
232738
232761
  }
232739
232762
 
232740
232763
 
232741
- /***/ }),
232742
-
232743
- /***/ 4625:
232744
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
232745
-
232746
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
232747
- /* harmony export */ Z: () => (/* binding */ huobipro)
232748
- /* harmony export */ });
232749
- /* harmony import */ var _huobi_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8384);
232750
- // ---------------------------------------------------------------------------
232751
-
232752
- // ---------------------------------------------------------------------------
232753
- class huobipro extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
232754
- describe() {
232755
- return this.deepExtend(super.describe(), {
232756
- 'alias': true,
232757
- 'id': 'huobipro',
232758
- });
232759
- }
232760
- }
232761
-
232762
-
232763
232764
  /***/ }),
232764
232765
 
232765
232766
  /***/ 3484:
@@ -236674,6 +236675,13 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
236674
236675
  return this.deepExtend(super.describe(), {
236675
236676
  'has': {
236676
236677
  'ws': true,
236678
+ 'createOrderWs': false,
236679
+ 'editOrderWs': false,
236680
+ 'fetchOpenOrdersWs': false,
236681
+ 'fetchOrderWs': false,
236682
+ 'cancelOrderWs': false,
236683
+ 'cancelOrdersWs': false,
236684
+ 'cancelAllOrdersWs': false,
236677
236685
  'watchOrderBook': true,
236678
236686
  'watchOrders': true,
236679
236687
  'watchMyTrades': true,
@@ -239027,6 +239035,15 @@ class mexc extends _mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
239027
239035
  return this.deepExtend(super.describe(), {
239028
239036
  'has': {
239029
239037
  'ws': true,
239038
+ 'cancelAllOrdersWs': false,
239039
+ 'cancelOrdersWs': false,
239040
+ 'cancelOrderWs': false,
239041
+ 'createOrderWs': false,
239042
+ 'editOrderWs': false,
239043
+ 'fetchBalanceWs': false,
239044
+ 'fetchOpenOrdersWs': false,
239045
+ 'fetchOrderWs': false,
239046
+ 'fetchTradesWs': false,
239030
239047
  'watchBalance': true,
239031
239048
  'watchMyTrades': true,
239032
239049
  'watchOHLCV': true,
@@ -240174,28 +240191,6 @@ class mexc extends _mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
240174
240191
  }
240175
240192
 
240176
240193
 
240177
- /***/ }),
240178
-
240179
- /***/ 5351:
240180
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
240181
-
240182
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
240183
- /* harmony export */ Z: () => (/* binding */ mexc3)
240184
- /* harmony export */ });
240185
- /* harmony import */ var _mexc_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6484);
240186
- // ---------------------------------------------------------------------------
240187
-
240188
- // ---------------------------------------------------------------------------
240189
- class mexc3 extends _mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
240190
- describe() {
240191
- return this.deepExtend(super.describe(), {
240192
- 'id': 'mexc3',
240193
- 'alias': true,
240194
- });
240195
- }
240196
- }
240197
-
240198
-
240199
240194
  /***/ }),
240200
240195
 
240201
240196
  /***/ 8080:
@@ -241517,28 +241512,6 @@ class okcoin extends _okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
241517
241512
  }
241518
241513
 
241519
241514
 
241520
- /***/ }),
241521
-
241522
- /***/ 1530:
241523
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
241524
-
241525
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
241526
- /* harmony export */ Z: () => (/* binding */ okex)
241527
- /* harmony export */ });
241528
- /* harmony import */ var _okx_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2214);
241529
- // ---------------------------------------------------------------------------
241530
-
241531
- // ---------------------------------------------------------------------------
241532
- class okex extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
241533
- describe() {
241534
- return this.deepExtend(super.describe(), {
241535
- 'alias': true,
241536
- 'id': 'okex',
241537
- });
241538
- }
241539
- }
241540
-
241541
-
241542
241515
  /***/ }),
241543
241516
 
241544
241517
  /***/ 2214:
@@ -285554,39 +285527,39 @@ var __webpack_exports__ = {};
285554
285527
  (() => {
285555
285528
  __webpack_require__.r(__webpack_exports__);
285556
285529
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
285557
- /* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.AccountNotEnabled),
285558
- /* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.AccountSuspended),
285559
- /* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.AddressPending),
285560
- /* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.ArgumentsRequired),
285561
- /* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.AuthenticationError),
285562
- /* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.BadRequest),
285563
- /* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.BadResponse),
285564
- /* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.BadSymbol),
285565
- /* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.BaseError),
285566
- /* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.CancelPending),
285567
- /* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.DDoSProtection),
285568
- /* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.DuplicateOrderId),
285530
+ /* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.AccountNotEnabled),
285531
+ /* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.AccountSuspended),
285532
+ /* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.AddressPending),
285533
+ /* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.ArgumentsRequired),
285534
+ /* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.AuthenticationError),
285535
+ /* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.BadRequest),
285536
+ /* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.BadResponse),
285537
+ /* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.BadSymbol),
285538
+ /* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.BaseError),
285539
+ /* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.CancelPending),
285540
+ /* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.DDoSProtection),
285541
+ /* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.DuplicateOrderId),
285569
285542
  /* harmony export */ Exchange: () => (/* reexport safe */ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__.e),
285570
- /* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.ExchangeError),
285571
- /* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.ExchangeNotAvailable),
285572
- /* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.InsufficientFunds),
285573
- /* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.InvalidAddress),
285574
- /* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.InvalidNonce),
285575
- /* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.InvalidOrder),
285576
- /* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.MarginModeAlreadySet),
285577
- /* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.NetworkError),
285578
- /* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.NoChange),
285579
- /* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.NotSupported),
285580
- /* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.NullResponse),
285581
- /* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.OnMaintenance),
285582
- /* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.OrderImmediatelyFillable),
285583
- /* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.OrderNotCached),
285584
- /* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.OrderNotFillable),
285585
- /* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.OrderNotFound),
285586
- /* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.PermissionDenied),
285587
- /* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_166__.O),
285588
- /* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.RateLimitExceeded),
285589
- /* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__.RequestTimeout),
285543
+ /* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.ExchangeError),
285544
+ /* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.ExchangeNotAvailable),
285545
+ /* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.InsufficientFunds),
285546
+ /* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.InvalidAddress),
285547
+ /* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.InvalidNonce),
285548
+ /* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.InvalidOrder),
285549
+ /* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.MarginModeAlreadySet),
285550
+ /* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.NetworkError),
285551
+ /* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.NoChange),
285552
+ /* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.NotSupported),
285553
+ /* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.NullResponse),
285554
+ /* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.OnMaintenance),
285555
+ /* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.OrderImmediatelyFillable),
285556
+ /* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.OrderNotCached),
285557
+ /* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.OrderNotFillable),
285558
+ /* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.OrderNotFound),
285559
+ /* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.PermissionDenied),
285560
+ /* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_159__.O),
285561
+ /* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.RateLimitExceeded),
285562
+ /* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__.RequestTimeout),
285590
285563
  /* harmony export */ ace: () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_1__.Z),
285591
285564
  /* harmony export */ alpaca: () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__.Z),
285592
285565
  /* harmony export */ ascendex: () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__.Z),
@@ -285641,11 +285614,11 @@ __webpack_require__.r(__webpack_exports__);
285641
285614
  /* harmony export */ delta: () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_51__.Z),
285642
285615
  /* harmony export */ deribit: () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_52__.Z),
285643
285616
  /* harmony export */ digifinex: () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_53__.Z),
285644
- /* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__),
285617
+ /* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__),
285645
285618
  /* harmony export */ exchanges: () => (/* binding */ exchanges),
285646
285619
  /* harmony export */ exmo: () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_54__.Z),
285647
285620
  /* harmony export */ fmfwio: () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_55__.Z),
285648
- /* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_167__),
285621
+ /* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_160__),
285649
285622
  /* harmony export */ gate: () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_56__.Z),
285650
285623
  /* harmony export */ gateio: () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_57__.Z),
285651
285624
  /* harmony export */ gemini: () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_58__.Z),
@@ -285655,53 +285628,49 @@ __webpack_require__.r(__webpack_exports__);
285655
285628
  /* harmony export */ htx: () => (/* reexport safe */ _src_htx_js__WEBPACK_IMPORTED_MODULE_62__.Z),
285656
285629
  /* harmony export */ huobi: () => (/* reexport safe */ _src_huobi_js__WEBPACK_IMPORTED_MODULE_63__.Z),
285657
285630
  /* harmony export */ huobijp: () => (/* reexport safe */ _src_huobijp_js__WEBPACK_IMPORTED_MODULE_64__.Z),
285658
- /* harmony export */ huobipro: () => (/* reexport safe */ _src_huobipro_js__WEBPACK_IMPORTED_MODULE_65__.Z),
285659
- /* harmony export */ idex: () => (/* reexport safe */ _src_idex_js__WEBPACK_IMPORTED_MODULE_66__.Z),
285660
- /* harmony export */ independentreserve: () => (/* reexport safe */ _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_67__.Z),
285661
- /* harmony export */ indodax: () => (/* reexport safe */ _src_indodax_js__WEBPACK_IMPORTED_MODULE_68__.Z),
285662
- /* harmony export */ kraken: () => (/* reexport safe */ _src_kraken_js__WEBPACK_IMPORTED_MODULE_69__.Z),
285663
- /* harmony export */ krakenfutures: () => (/* reexport safe */ _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_70__.Z),
285664
- /* harmony export */ kucoin: () => (/* reexport safe */ _src_kucoin_js__WEBPACK_IMPORTED_MODULE_71__.Z),
285665
- /* harmony export */ kucoinfutures: () => (/* reexport safe */ _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_72__.Z),
285666
- /* harmony export */ kuna: () => (/* reexport safe */ _src_kuna_js__WEBPACK_IMPORTED_MODULE_73__.Z),
285667
- /* harmony export */ latoken: () => (/* reexport safe */ _src_latoken_js__WEBPACK_IMPORTED_MODULE_74__.Z),
285668
- /* harmony export */ lbank: () => (/* reexport safe */ _src_lbank_js__WEBPACK_IMPORTED_MODULE_75__.Z),
285669
- /* harmony export */ luno: () => (/* reexport safe */ _src_luno_js__WEBPACK_IMPORTED_MODULE_76__.Z),
285670
- /* harmony export */ lykke: () => (/* reexport safe */ _src_lykke_js__WEBPACK_IMPORTED_MODULE_77__.Z),
285671
- /* harmony export */ mercado: () => (/* reexport safe */ _src_mercado_js__WEBPACK_IMPORTED_MODULE_78__.Z),
285672
- /* harmony export */ mexc: () => (/* reexport safe */ _src_mexc_js__WEBPACK_IMPORTED_MODULE_79__.Z),
285673
- /* harmony export */ mexc3: () => (/* reexport safe */ _src_mexc3_js__WEBPACK_IMPORTED_MODULE_80__.Z),
285674
- /* harmony export */ ndax: () => (/* reexport safe */ _src_ndax_js__WEBPACK_IMPORTED_MODULE_81__.Z),
285675
- /* harmony export */ novadax: () => (/* reexport safe */ _src_novadax_js__WEBPACK_IMPORTED_MODULE_82__.Z),
285676
- /* harmony export */ oceanex: () => (/* reexport safe */ _src_oceanex_js__WEBPACK_IMPORTED_MODULE_83__.Z),
285677
- /* harmony export */ okcoin: () => (/* reexport safe */ _src_okcoin_js__WEBPACK_IMPORTED_MODULE_84__.Z),
285678
- /* harmony export */ okex: () => (/* reexport safe */ _src_okex_js__WEBPACK_IMPORTED_MODULE_85__.Z),
285679
- /* harmony export */ okex5: () => (/* reexport safe */ _src_okex5_js__WEBPACK_IMPORTED_MODULE_86__.Z),
285680
- /* harmony export */ okx: () => (/* reexport safe */ _src_okx_js__WEBPACK_IMPORTED_MODULE_87__.Z),
285681
- /* harmony export */ p2b: () => (/* reexport safe */ _src_p2b_js__WEBPACK_IMPORTED_MODULE_88__.Z),
285682
- /* harmony export */ paymium: () => (/* reexport safe */ _src_paymium_js__WEBPACK_IMPORTED_MODULE_89__.Z),
285683
- /* harmony export */ phemex: () => (/* reexport safe */ _src_phemex_js__WEBPACK_IMPORTED_MODULE_90__.Z),
285684
- /* harmony export */ poloniex: () => (/* reexport safe */ _src_poloniex_js__WEBPACK_IMPORTED_MODULE_91__.Z),
285685
- /* harmony export */ poloniexfutures: () => (/* reexport safe */ _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_92__.Z),
285631
+ /* harmony export */ idex: () => (/* reexport safe */ _src_idex_js__WEBPACK_IMPORTED_MODULE_65__.Z),
285632
+ /* harmony export */ independentreserve: () => (/* reexport safe */ _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_66__.Z),
285633
+ /* harmony export */ indodax: () => (/* reexport safe */ _src_indodax_js__WEBPACK_IMPORTED_MODULE_67__.Z),
285634
+ /* harmony export */ kraken: () => (/* reexport safe */ _src_kraken_js__WEBPACK_IMPORTED_MODULE_68__.Z),
285635
+ /* harmony export */ krakenfutures: () => (/* reexport safe */ _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_69__.Z),
285636
+ /* harmony export */ kucoin: () => (/* reexport safe */ _src_kucoin_js__WEBPACK_IMPORTED_MODULE_70__.Z),
285637
+ /* harmony export */ kucoinfutures: () => (/* reexport safe */ _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_71__.Z),
285638
+ /* harmony export */ kuna: () => (/* reexport safe */ _src_kuna_js__WEBPACK_IMPORTED_MODULE_72__.Z),
285639
+ /* harmony export */ latoken: () => (/* reexport safe */ _src_latoken_js__WEBPACK_IMPORTED_MODULE_73__.Z),
285640
+ /* harmony export */ lbank: () => (/* reexport safe */ _src_lbank_js__WEBPACK_IMPORTED_MODULE_74__.Z),
285641
+ /* harmony export */ luno: () => (/* reexport safe */ _src_luno_js__WEBPACK_IMPORTED_MODULE_75__.Z),
285642
+ /* harmony export */ lykke: () => (/* reexport safe */ _src_lykke_js__WEBPACK_IMPORTED_MODULE_76__.Z),
285643
+ /* harmony export */ mercado: () => (/* reexport safe */ _src_mercado_js__WEBPACK_IMPORTED_MODULE_77__.Z),
285644
+ /* harmony export */ mexc: () => (/* reexport safe */ _src_mexc_js__WEBPACK_IMPORTED_MODULE_78__.Z),
285645
+ /* harmony export */ ndax: () => (/* reexport safe */ _src_ndax_js__WEBPACK_IMPORTED_MODULE_79__.Z),
285646
+ /* harmony export */ novadax: () => (/* reexport safe */ _src_novadax_js__WEBPACK_IMPORTED_MODULE_80__.Z),
285647
+ /* harmony export */ oceanex: () => (/* reexport safe */ _src_oceanex_js__WEBPACK_IMPORTED_MODULE_81__.Z),
285648
+ /* harmony export */ okcoin: () => (/* reexport safe */ _src_okcoin_js__WEBPACK_IMPORTED_MODULE_82__.Z),
285649
+ /* harmony export */ okx: () => (/* reexport safe */ _src_okx_js__WEBPACK_IMPORTED_MODULE_83__.Z),
285650
+ /* harmony export */ p2b: () => (/* reexport safe */ _src_p2b_js__WEBPACK_IMPORTED_MODULE_84__.Z),
285651
+ /* harmony export */ paymium: () => (/* reexport safe */ _src_paymium_js__WEBPACK_IMPORTED_MODULE_85__.Z),
285652
+ /* harmony export */ phemex: () => (/* reexport safe */ _src_phemex_js__WEBPACK_IMPORTED_MODULE_86__.Z),
285653
+ /* harmony export */ poloniex: () => (/* reexport safe */ _src_poloniex_js__WEBPACK_IMPORTED_MODULE_87__.Z),
285654
+ /* harmony export */ poloniexfutures: () => (/* reexport safe */ _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_88__.Z),
285686
285655
  /* harmony export */ pro: () => (/* binding */ pro),
285687
- /* harmony export */ probit: () => (/* reexport safe */ _src_probit_js__WEBPACK_IMPORTED_MODULE_93__.Z),
285688
- /* harmony export */ tidex: () => (/* reexport safe */ _src_tidex_js__WEBPACK_IMPORTED_MODULE_94__.Z),
285689
- /* harmony export */ timex: () => (/* reexport safe */ _src_timex_js__WEBPACK_IMPORTED_MODULE_95__.Z),
285690
- /* harmony export */ tokocrypto: () => (/* reexport safe */ _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_96__.Z),
285691
- /* harmony export */ upbit: () => (/* reexport safe */ _src_upbit_js__WEBPACK_IMPORTED_MODULE_97__.Z),
285656
+ /* harmony export */ probit: () => (/* reexport safe */ _src_probit_js__WEBPACK_IMPORTED_MODULE_89__.Z),
285657
+ /* harmony export */ tidex: () => (/* reexport safe */ _src_tidex_js__WEBPACK_IMPORTED_MODULE_90__.Z),
285658
+ /* harmony export */ timex: () => (/* reexport safe */ _src_timex_js__WEBPACK_IMPORTED_MODULE_91__.Z),
285659
+ /* harmony export */ tokocrypto: () => (/* reexport safe */ _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_92__.Z),
285660
+ /* harmony export */ upbit: () => (/* reexport safe */ _src_upbit_js__WEBPACK_IMPORTED_MODULE_93__.Z),
285692
285661
  /* harmony export */ version: () => (/* binding */ version),
285693
- /* harmony export */ wavesexchange: () => (/* reexport safe */ _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_98__.Z),
285694
- /* harmony export */ wazirx: () => (/* reexport safe */ _src_wazirx_js__WEBPACK_IMPORTED_MODULE_99__.Z),
285695
- /* harmony export */ whitebit: () => (/* reexport safe */ _src_whitebit_js__WEBPACK_IMPORTED_MODULE_100__.Z),
285696
- /* harmony export */ woo: () => (/* reexport safe */ _src_woo_js__WEBPACK_IMPORTED_MODULE_101__.Z),
285697
- /* harmony export */ yobit: () => (/* reexport safe */ _src_yobit_js__WEBPACK_IMPORTED_MODULE_102__.Z),
285698
- /* harmony export */ zaif: () => (/* reexport safe */ _src_zaif_js__WEBPACK_IMPORTED_MODULE_103__.Z),
285699
- /* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_104__.Z)
285662
+ /* harmony export */ wavesexchange: () => (/* reexport safe */ _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_94__.Z),
285663
+ /* harmony export */ wazirx: () => (/* reexport safe */ _src_wazirx_js__WEBPACK_IMPORTED_MODULE_95__.Z),
285664
+ /* harmony export */ whitebit: () => (/* reexport safe */ _src_whitebit_js__WEBPACK_IMPORTED_MODULE_96__.Z),
285665
+ /* harmony export */ woo: () => (/* reexport safe */ _src_woo_js__WEBPACK_IMPORTED_MODULE_97__.Z),
285666
+ /* harmony export */ yobit: () => (/* reexport safe */ _src_yobit_js__WEBPACK_IMPORTED_MODULE_98__.Z),
285667
+ /* harmony export */ zaif: () => (/* reexport safe */ _src_zaif_js__WEBPACK_IMPORTED_MODULE_99__.Z),
285668
+ /* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_100__.Z)
285700
285669
  /* harmony export */ });
285701
285670
  /* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
285702
- /* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(2194);
285703
- /* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(7100);
285704
- /* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__ = __webpack_require__(6689);
285671
+ /* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(2194);
285672
+ /* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(7100);
285673
+ /* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(6689);
285705
285674
  /* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9869);
285706
285675
  /* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5660);
285707
285676
  /* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9612);
@@ -285766,107 +285735,100 @@ __webpack_require__.r(__webpack_exports__);
285766
285735
  /* harmony import */ var _src_htx_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(5939);
285767
285736
  /* harmony import */ var _src_huobi_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(8146);
285768
285737
  /* harmony import */ var _src_huobijp_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(7034);
285769
- /* harmony import */ var _src_huobipro_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(5547);
285770
- /* harmony import */ var _src_idex_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(8232);
285771
- /* harmony import */ var _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(9570);
285772
- /* harmony import */ var _src_indodax_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(1605);
285773
- /* harmony import */ var _src_kraken_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(9922);
285774
- /* harmony import */ var _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(4470);
285775
- /* harmony import */ var _src_kucoin_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(3583);
285776
- /* harmony import */ var _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(1924);
285777
- /* harmony import */ var _src_kuna_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(7732);
285778
- /* harmony import */ var _src_latoken_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(2545);
285779
- /* harmony import */ var _src_lbank_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(3944);
285780
- /* harmony import */ var _src_luno_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(1758);
285781
- /* harmony import */ var _src_lykke_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(3803);
285782
- /* harmony import */ var _src_mercado_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(9013);
285783
- /* harmony import */ var _src_mexc_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(6641);
285784
- /* harmony import */ var _src_mexc3_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(2305);
285785
- /* harmony import */ var _src_ndax_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(4531);
285786
- /* harmony import */ var _src_novadax_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(2449);
285787
- /* harmony import */ var _src_oceanex_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(6749);
285788
- /* harmony import */ var _src_okcoin_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(3007);
285789
- /* harmony import */ var _src_okex_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(5322);
285790
- /* harmony import */ var _src_okex5_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(7826);
285791
- /* harmony import */ var _src_okx_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(4042);
285792
- /* harmony import */ var _src_p2b_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(2466);
285793
- /* harmony import */ var _src_paymium_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(7082);
285794
- /* harmony import */ var _src_phemex_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(79);
285795
- /* harmony import */ var _src_poloniex_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(8891);
285796
- /* harmony import */ var _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(6877);
285797
- /* harmony import */ var _src_probit_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(3657);
285798
- /* harmony import */ var _src_tidex_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(4224);
285799
- /* harmony import */ var _src_timex_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(1067);
285800
- /* harmony import */ var _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(5261);
285801
- /* harmony import */ var _src_upbit_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(7584);
285802
- /* harmony import */ var _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(3853);
285803
- /* harmony import */ var _src_wazirx_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(6536);
285804
- /* harmony import */ var _src_whitebit_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(5467);
285805
- /* harmony import */ var _src_woo_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(517);
285806
- /* harmony import */ var _src_yobit_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(3850);
285807
- /* harmony import */ var _src_zaif_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(5934);
285808
- /* harmony import */ var _src_zonda_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(5140);
285809
- /* harmony import */ var _src_pro_alpaca_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(2467);
285810
- /* harmony import */ var _src_pro_ascendex_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(2383);
285811
- /* harmony import */ var _src_pro_bequant_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(8848);
285812
- /* harmony import */ var _src_pro_binance_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(8764);
285813
- /* harmony import */ var _src_pro_binancecoinm_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(5078);
285814
- /* harmony import */ var _src_pro_binanceus_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(1326);
285815
- /* harmony import */ var _src_pro_binanceusdm_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(1230);
285816
- /* harmony import */ var _src_pro_bingx_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(6955);
285817
- /* harmony import */ var _src_pro_bitcoincom_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(453);
285818
- /* harmony import */ var _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(9772);
285819
- /* harmony import */ var _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(588);
285820
- /* harmony import */ var _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(1885);
285821
- /* harmony import */ var _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(7504);
285822
- /* harmony import */ var _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(2302);
285823
- /* harmony import */ var _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(2191);
285824
- /* harmony import */ var _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(1297);
285825
- /* harmony import */ var _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(3005);
285826
- /* harmony import */ var _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(2317);
285827
- /* harmony import */ var _src_pro_bittrex_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(2883);
285828
- /* harmony import */ var _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(6977);
285829
- /* harmony import */ var _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(2519);
285830
- /* harmony import */ var _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(5030);
285831
- /* harmony import */ var _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(5272);
285832
- /* harmony import */ var _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(3414);
285833
- /* harmony import */ var _src_pro_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(3848);
285834
- /* harmony import */ var _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(8368);
285835
- /* harmony import */ var _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(204);
285836
- /* harmony import */ var _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(6820);
285837
- /* harmony import */ var _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(2952);
285838
- /* harmony import */ var _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(1788);
285839
- /* harmony import */ var _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(9004);
285840
- /* harmony import */ var _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(8335);
285841
- /* harmony import */ var _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(1465);
285842
- /* harmony import */ var _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(9488);
285843
- /* harmony import */ var _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(5189);
285844
- /* harmony import */ var _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(8559);
285845
- /* harmony import */ var _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(7474);
285846
- /* harmony import */ var _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(8384);
285847
- /* harmony import */ var _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(9021);
285848
- /* harmony import */ var _src_pro_huobipro_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(4625);
285849
- /* harmony import */ var _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(3484);
285850
- /* harmony import */ var _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(1311);
285851
- /* harmony import */ var _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(736);
285852
- /* harmony import */ var _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(449);
285853
- /* harmony import */ var _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(2387);
285854
- /* harmony import */ var _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(7181);
285855
- /* harmony import */ var _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(627);
285856
- /* harmony import */ var _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(6484);
285857
- /* harmony import */ var _src_pro_mexc3_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(5351);
285858
- /* harmony import */ var _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(8080);
285859
- /* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(7105);
285860
- /* harmony import */ var _src_pro_okex_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(1530);
285861
- /* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(2214);
285862
- /* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(4360);
285863
- /* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(7924);
285864
- /* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(3541);
285865
- /* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(9782);
285866
- /* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(7614);
285867
- /* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(4828);
285868
- /* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(5630);
285869
- /* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(3910);
285738
+ /* harmony import */ var _src_idex_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(8232);
285739
+ /* harmony import */ var _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(9570);
285740
+ /* harmony import */ var _src_indodax_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(1605);
285741
+ /* harmony import */ var _src_kraken_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(9922);
285742
+ /* harmony import */ var _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(4470);
285743
+ /* harmony import */ var _src_kucoin_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(3583);
285744
+ /* harmony import */ var _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(1924);
285745
+ /* harmony import */ var _src_kuna_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(7732);
285746
+ /* harmony import */ var _src_latoken_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(2545);
285747
+ /* harmony import */ var _src_lbank_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(3944);
285748
+ /* harmony import */ var _src_luno_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(1758);
285749
+ /* harmony import */ var _src_lykke_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(3803);
285750
+ /* harmony import */ var _src_mercado_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(9013);
285751
+ /* harmony import */ var _src_mexc_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(6641);
285752
+ /* harmony import */ var _src_ndax_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(4531);
285753
+ /* harmony import */ var _src_novadax_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(2449);
285754
+ /* harmony import */ var _src_oceanex_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(6749);
285755
+ /* harmony import */ var _src_okcoin_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(3007);
285756
+ /* harmony import */ var _src_okx_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(4042);
285757
+ /* harmony import */ var _src_p2b_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(2466);
285758
+ /* harmony import */ var _src_paymium_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(7082);
285759
+ /* harmony import */ var _src_phemex_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(79);
285760
+ /* harmony import */ var _src_poloniex_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(8891);
285761
+ /* harmony import */ var _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(6877);
285762
+ /* harmony import */ var _src_probit_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(3657);
285763
+ /* harmony import */ var _src_tidex_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(4224);
285764
+ /* harmony import */ var _src_timex_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(1067);
285765
+ /* harmony import */ var _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(5261);
285766
+ /* harmony import */ var _src_upbit_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(7584);
285767
+ /* harmony import */ var _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(3853);
285768
+ /* harmony import */ var _src_wazirx_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(6536);
285769
+ /* harmony import */ var _src_whitebit_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(5467);
285770
+ /* harmony import */ var _src_woo_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(517);
285771
+ /* harmony import */ var _src_yobit_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(3850);
285772
+ /* harmony import */ var _src_zaif_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(5934);
285773
+ /* harmony import */ var _src_zonda_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(5140);
285774
+ /* harmony import */ var _src_pro_alpaca_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(2467);
285775
+ /* harmony import */ var _src_pro_ascendex_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(2383);
285776
+ /* harmony import */ var _src_pro_bequant_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(8848);
285777
+ /* harmony import */ var _src_pro_binance_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(8764);
285778
+ /* harmony import */ var _src_pro_binancecoinm_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(5078);
285779
+ /* harmony import */ var _src_pro_binanceus_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(1326);
285780
+ /* harmony import */ var _src_pro_binanceusdm_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(1230);
285781
+ /* harmony import */ var _src_pro_bingx_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(6955);
285782
+ /* harmony import */ var _src_pro_bitcoincom_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(453);
285783
+ /* harmony import */ var _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(9772);
285784
+ /* harmony import */ var _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(588);
285785
+ /* harmony import */ var _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(1885);
285786
+ /* harmony import */ var _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(7504);
285787
+ /* harmony import */ var _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(2302);
285788
+ /* harmony import */ var _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(2191);
285789
+ /* harmony import */ var _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(1297);
285790
+ /* harmony import */ var _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(3005);
285791
+ /* harmony import */ var _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(2317);
285792
+ /* harmony import */ var _src_pro_bittrex_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(2883);
285793
+ /* harmony import */ var _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(6977);
285794
+ /* harmony import */ var _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(2519);
285795
+ /* harmony import */ var _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(5030);
285796
+ /* harmony import */ var _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(5272);
285797
+ /* harmony import */ var _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(3414);
285798
+ /* harmony import */ var _src_pro_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(3848);
285799
+ /* harmony import */ var _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(8368);
285800
+ /* harmony import */ var _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(204);
285801
+ /* harmony import */ var _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(6820);
285802
+ /* harmony import */ var _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(2952);
285803
+ /* harmony import */ var _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(1788);
285804
+ /* harmony import */ var _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(9004);
285805
+ /* harmony import */ var _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(8335);
285806
+ /* harmony import */ var _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(1465);
285807
+ /* harmony import */ var _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(9488);
285808
+ /* harmony import */ var _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(5189);
285809
+ /* harmony import */ var _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(8559);
285810
+ /* harmony import */ var _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(7474);
285811
+ /* harmony import */ var _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(8384);
285812
+ /* harmony import */ var _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(9021);
285813
+ /* harmony import */ var _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(3484);
285814
+ /* harmony import */ var _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(1311);
285815
+ /* harmony import */ var _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(736);
285816
+ /* harmony import */ var _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(449);
285817
+ /* harmony import */ var _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(2387);
285818
+ /* harmony import */ var _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(7181);
285819
+ /* harmony import */ var _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(627);
285820
+ /* harmony import */ var _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(6484);
285821
+ /* harmony import */ var _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(8080);
285822
+ /* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(7105);
285823
+ /* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(2214);
285824
+ /* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(4360);
285825
+ /* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(7924);
285826
+ /* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(3541);
285827
+ /* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(9782);
285828
+ /* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(7614);
285829
+ /* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(4828);
285830
+ /* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(5630);
285831
+ /* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(3910);
285870
285832
  /*
285871
285833
 
285872
285834
  MIT License
@@ -285901,7 +285863,7 @@ SOFTWARE.
285901
285863
 
285902
285864
  //-----------------------------------------------------------------------------
285903
285865
  // this is updated by vss.js when building
285904
- const version = '4.1.57';
285866
+ const version = '4.1.59';
285905
285867
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
285906
285868
  //-----------------------------------------------------------------------------
285907
285869
 
@@ -285999,10 +285961,6 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
285999
285961
 
286000
285962
 
286001
285963
 
286002
-
286003
-
286004
-
286005
-
286006
285964
 
286007
285965
 
286008
285966
 
@@ -286063,9 +286021,6 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
286063
286021
 
286064
286022
 
286065
286023
 
286066
-
286067
-
286068
-
286069
286024
 
286070
286025
 
286071
286026
 
@@ -286135,109 +286090,102 @@ const exchanges = {
286135
286090
  'htx': _src_htx_js__WEBPACK_IMPORTED_MODULE_62__/* ["default"] */ .Z,
286136
286091
  'huobi': _src_huobi_js__WEBPACK_IMPORTED_MODULE_63__/* ["default"] */ .Z,
286137
286092
  'huobijp': _src_huobijp_js__WEBPACK_IMPORTED_MODULE_64__/* ["default"] */ .Z,
286138
- 'huobipro': _src_huobipro_js__WEBPACK_IMPORTED_MODULE_65__/* ["default"] */ .Z,
286139
- 'idex': _src_idex_js__WEBPACK_IMPORTED_MODULE_66__/* ["default"] */ .Z,
286140
- 'independentreserve': _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_67__/* ["default"] */ .Z,
286141
- 'indodax': _src_indodax_js__WEBPACK_IMPORTED_MODULE_68__/* ["default"] */ .Z,
286142
- 'kraken': _src_kraken_js__WEBPACK_IMPORTED_MODULE_69__/* ["default"] */ .Z,
286143
- 'krakenfutures': _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_70__/* ["default"] */ .Z,
286144
- 'kucoin': _src_kucoin_js__WEBPACK_IMPORTED_MODULE_71__/* ["default"] */ .Z,
286145
- 'kucoinfutures': _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_72__/* ["default"] */ .Z,
286146
- 'kuna': _src_kuna_js__WEBPACK_IMPORTED_MODULE_73__/* ["default"] */ .Z,
286147
- 'latoken': _src_latoken_js__WEBPACK_IMPORTED_MODULE_74__/* ["default"] */ .Z,
286148
- 'lbank': _src_lbank_js__WEBPACK_IMPORTED_MODULE_75__/* ["default"] */ .Z,
286149
- 'luno': _src_luno_js__WEBPACK_IMPORTED_MODULE_76__/* ["default"] */ .Z,
286150
- 'lykke': _src_lykke_js__WEBPACK_IMPORTED_MODULE_77__/* ["default"] */ .Z,
286151
- 'mercado': _src_mercado_js__WEBPACK_IMPORTED_MODULE_78__/* ["default"] */ .Z,
286152
- 'mexc': _src_mexc_js__WEBPACK_IMPORTED_MODULE_79__/* ["default"] */ .Z,
286153
- 'mexc3': _src_mexc3_js__WEBPACK_IMPORTED_MODULE_80__/* ["default"] */ .Z,
286154
- 'ndax': _src_ndax_js__WEBPACK_IMPORTED_MODULE_81__/* ["default"] */ .Z,
286155
- 'novadax': _src_novadax_js__WEBPACK_IMPORTED_MODULE_82__/* ["default"] */ .Z,
286156
- 'oceanex': _src_oceanex_js__WEBPACK_IMPORTED_MODULE_83__/* ["default"] */ .Z,
286157
- 'okcoin': _src_okcoin_js__WEBPACK_IMPORTED_MODULE_84__/* ["default"] */ .Z,
286158
- 'okex': _src_okex_js__WEBPACK_IMPORTED_MODULE_85__/* ["default"] */ .Z,
286159
- 'okex5': _src_okex5_js__WEBPACK_IMPORTED_MODULE_86__/* ["default"] */ .Z,
286160
- 'okx': _src_okx_js__WEBPACK_IMPORTED_MODULE_87__/* ["default"] */ .Z,
286161
- 'p2b': _src_p2b_js__WEBPACK_IMPORTED_MODULE_88__/* ["default"] */ .Z,
286162
- 'paymium': _src_paymium_js__WEBPACK_IMPORTED_MODULE_89__/* ["default"] */ .Z,
286163
- 'phemex': _src_phemex_js__WEBPACK_IMPORTED_MODULE_90__/* ["default"] */ .Z,
286164
- 'poloniex': _src_poloniex_js__WEBPACK_IMPORTED_MODULE_91__/* ["default"] */ .Z,
286165
- 'poloniexfutures': _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_92__/* ["default"] */ .Z,
286166
- 'probit': _src_probit_js__WEBPACK_IMPORTED_MODULE_93__/* ["default"] */ .Z,
286167
- 'tidex': _src_tidex_js__WEBPACK_IMPORTED_MODULE_94__/* ["default"] */ .Z,
286168
- 'timex': _src_timex_js__WEBPACK_IMPORTED_MODULE_95__/* ["default"] */ .Z,
286169
- 'tokocrypto': _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_96__/* ["default"] */ .Z,
286170
- 'upbit': _src_upbit_js__WEBPACK_IMPORTED_MODULE_97__/* ["default"] */ .Z,
286171
- 'wavesexchange': _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_98__/* ["default"] */ .Z,
286172
- 'wazirx': _src_wazirx_js__WEBPACK_IMPORTED_MODULE_99__/* ["default"] */ .Z,
286173
- 'whitebit': _src_whitebit_js__WEBPACK_IMPORTED_MODULE_100__/* ["default"] */ .Z,
286174
- 'woo': _src_woo_js__WEBPACK_IMPORTED_MODULE_101__/* ["default"] */ .Z,
286175
- 'yobit': _src_yobit_js__WEBPACK_IMPORTED_MODULE_102__/* ["default"] */ .Z,
286176
- 'zaif': _src_zaif_js__WEBPACK_IMPORTED_MODULE_103__/* ["default"] */ .Z,
286177
- 'zonda': _src_zonda_js__WEBPACK_IMPORTED_MODULE_104__/* ["default"] */ .Z,
286093
+ 'idex': _src_idex_js__WEBPACK_IMPORTED_MODULE_65__/* ["default"] */ .Z,
286094
+ 'independentreserve': _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_66__/* ["default"] */ .Z,
286095
+ 'indodax': _src_indodax_js__WEBPACK_IMPORTED_MODULE_67__/* ["default"] */ .Z,
286096
+ 'kraken': _src_kraken_js__WEBPACK_IMPORTED_MODULE_68__/* ["default"] */ .Z,
286097
+ 'krakenfutures': _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_69__/* ["default"] */ .Z,
286098
+ 'kucoin': _src_kucoin_js__WEBPACK_IMPORTED_MODULE_70__/* ["default"] */ .Z,
286099
+ 'kucoinfutures': _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_71__/* ["default"] */ .Z,
286100
+ 'kuna': _src_kuna_js__WEBPACK_IMPORTED_MODULE_72__/* ["default"] */ .Z,
286101
+ 'latoken': _src_latoken_js__WEBPACK_IMPORTED_MODULE_73__/* ["default"] */ .Z,
286102
+ 'lbank': _src_lbank_js__WEBPACK_IMPORTED_MODULE_74__/* ["default"] */ .Z,
286103
+ 'luno': _src_luno_js__WEBPACK_IMPORTED_MODULE_75__/* ["default"] */ .Z,
286104
+ 'lykke': _src_lykke_js__WEBPACK_IMPORTED_MODULE_76__/* ["default"] */ .Z,
286105
+ 'mercado': _src_mercado_js__WEBPACK_IMPORTED_MODULE_77__/* ["default"] */ .Z,
286106
+ 'mexc': _src_mexc_js__WEBPACK_IMPORTED_MODULE_78__/* ["default"] */ .Z,
286107
+ 'ndax': _src_ndax_js__WEBPACK_IMPORTED_MODULE_79__/* ["default"] */ .Z,
286108
+ 'novadax': _src_novadax_js__WEBPACK_IMPORTED_MODULE_80__/* ["default"] */ .Z,
286109
+ 'oceanex': _src_oceanex_js__WEBPACK_IMPORTED_MODULE_81__/* ["default"] */ .Z,
286110
+ 'okcoin': _src_okcoin_js__WEBPACK_IMPORTED_MODULE_82__/* ["default"] */ .Z,
286111
+ 'okx': _src_okx_js__WEBPACK_IMPORTED_MODULE_83__/* ["default"] */ .Z,
286112
+ 'p2b': _src_p2b_js__WEBPACK_IMPORTED_MODULE_84__/* ["default"] */ .Z,
286113
+ 'paymium': _src_paymium_js__WEBPACK_IMPORTED_MODULE_85__/* ["default"] */ .Z,
286114
+ 'phemex': _src_phemex_js__WEBPACK_IMPORTED_MODULE_86__/* ["default"] */ .Z,
286115
+ 'poloniex': _src_poloniex_js__WEBPACK_IMPORTED_MODULE_87__/* ["default"] */ .Z,
286116
+ 'poloniexfutures': _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_88__/* ["default"] */ .Z,
286117
+ 'probit': _src_probit_js__WEBPACK_IMPORTED_MODULE_89__/* ["default"] */ .Z,
286118
+ 'tidex': _src_tidex_js__WEBPACK_IMPORTED_MODULE_90__/* ["default"] */ .Z,
286119
+ 'timex': _src_timex_js__WEBPACK_IMPORTED_MODULE_91__/* ["default"] */ .Z,
286120
+ 'tokocrypto': _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_92__/* ["default"] */ .Z,
286121
+ 'upbit': _src_upbit_js__WEBPACK_IMPORTED_MODULE_93__/* ["default"] */ .Z,
286122
+ 'wavesexchange': _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_94__/* ["default"] */ .Z,
286123
+ 'wazirx': _src_wazirx_js__WEBPACK_IMPORTED_MODULE_95__/* ["default"] */ .Z,
286124
+ 'whitebit': _src_whitebit_js__WEBPACK_IMPORTED_MODULE_96__/* ["default"] */ .Z,
286125
+ 'woo': _src_woo_js__WEBPACK_IMPORTED_MODULE_97__/* ["default"] */ .Z,
286126
+ 'yobit': _src_yobit_js__WEBPACK_IMPORTED_MODULE_98__/* ["default"] */ .Z,
286127
+ 'zaif': _src_zaif_js__WEBPACK_IMPORTED_MODULE_99__/* ["default"] */ .Z,
286128
+ 'zonda': _src_zonda_js__WEBPACK_IMPORTED_MODULE_100__/* ["default"] */ .Z,
286178
286129
  };
286179
286130
  const pro = {
286180
- 'alpaca': _src_pro_alpaca_js__WEBPACK_IMPORTED_MODULE_105__/* ["default"] */ .Z,
286181
- 'ascendex': _src_pro_ascendex_js__WEBPACK_IMPORTED_MODULE_106__/* ["default"] */ .Z,
286182
- 'bequant': _src_pro_bequant_js__WEBPACK_IMPORTED_MODULE_107__/* ["default"] */ .Z,
286183
- 'binance': _src_pro_binance_js__WEBPACK_IMPORTED_MODULE_108__/* ["default"] */ .Z,
286184
- 'binancecoinm': _src_pro_binancecoinm_js__WEBPACK_IMPORTED_MODULE_109__/* ["default"] */ .Z,
286185
- 'binanceus': _src_pro_binanceus_js__WEBPACK_IMPORTED_MODULE_110__/* ["default"] */ .Z,
286186
- 'binanceusdm': _src_pro_binanceusdm_js__WEBPACK_IMPORTED_MODULE_111__/* ["default"] */ .Z,
286187
- 'bingx': _src_pro_bingx_js__WEBPACK_IMPORTED_MODULE_112__/* ["default"] */ .Z,
286188
- 'bitcoincom': _src_pro_bitcoincom_js__WEBPACK_IMPORTED_MODULE_113__/* ["default"] */ .Z,
286189
- 'bitfinex': _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_114__/* ["default"] */ .Z,
286190
- 'bitfinex2': _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_115__/* ["default"] */ .Z,
286191
- 'bitget': _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_116__/* ["default"] */ .Z,
286192
- 'bitmart': _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_117__/* ["default"] */ .Z,
286193
- 'bitmex': _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_118__/* ["default"] */ .Z,
286194
- 'bitopro': _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_119__/* ["default"] */ .Z,
286195
- 'bitpanda': _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_120__/* ["default"] */ .Z,
286196
- 'bitrue': _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_121__/* ["default"] */ .Z,
286197
- 'bitstamp': _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_122__/* ["default"] */ .Z,
286198
- 'bittrex': _src_pro_bittrex_js__WEBPACK_IMPORTED_MODULE_123__/* ["default"] */ .Z,
286199
- 'bitvavo': _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_124__/* ["default"] */ .Z,
286200
- 'blockchaincom': _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_125__/* ["default"] */ .Z,
286201
- 'bybit': _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_126__/* ["default"] */ .Z,
286202
- 'cex': _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_127__/* ["default"] */ .Z,
286203
- 'coinbase': _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_128__/* ["default"] */ .Z,
286204
- 'coinbaseprime': _src_pro_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_129__/* ["default"] */ .Z,
286205
- 'coinbasepro': _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_130__/* ["default"] */ .Z,
286206
- 'coinex': _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_131__/* ["default"] */ .Z,
286207
- 'cryptocom': _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_132__/* ["default"] */ .Z,
286208
- 'currencycom': _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_133__/* ["default"] */ .Z,
286209
- 'deribit': _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_134__/* ["default"] */ .Z,
286210
- 'exmo': _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_135__/* ["default"] */ .Z,
286211
- 'gate': _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_136__/* ["default"] */ .Z,
286212
- 'gateio': _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_137__/* ["default"] */ .Z,
286213
- 'gemini': _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_138__/* ["default"] */ .Z,
286214
- 'hitbtc': _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_139__/* ["default"] */ .Z,
286215
- 'hollaex': _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_140__/* ["default"] */ .Z,
286216
- 'htx': _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_141__/* ["default"] */ .Z,
286217
- 'huobi': _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_142__/* ["default"] */ .Z,
286218
- 'huobijp': _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_143__/* ["default"] */ .Z,
286219
- 'huobipro': _src_pro_huobipro_js__WEBPACK_IMPORTED_MODULE_144__/* ["default"] */ .Z,
286220
- 'idex': _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_145__/* ["default"] */ .Z,
286221
- 'independentreserve': _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_146__/* ["default"] */ .Z,
286222
- 'kraken': _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_147__/* ["default"] */ .Z,
286223
- 'krakenfutures': _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_148__/* ["default"] */ .Z,
286224
- 'kucoin': _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_149__/* ["default"] */ .Z,
286225
- 'kucoinfutures': _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
286226
- 'luno': _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
286227
- 'mexc': _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
286228
- 'mexc3': _src_pro_mexc3_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
286229
- 'ndax': _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
286230
- 'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
286231
- 'okex': _src_pro_okex_js__WEBPACK_IMPORTED_MODULE_156__/* ["default"] */ .Z,
286232
- 'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_157__/* ["default"] */ .Z,
286233
- 'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_158__/* ["default"] */ .Z,
286234
- 'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_159__/* ["default"] */ .Z,
286235
- 'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_160__/* ["default"] */ .Z,
286236
- 'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_161__/* ["default"] */ .Z,
286237
- 'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_162__/* ["default"] */ .Z,
286238
- 'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_163__/* ["default"] */ .Z,
286239
- 'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_164__/* ["default"] */ .Z,
286240
- 'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_165__/* ["default"] */ .Z,
286131
+ 'alpaca': _src_pro_alpaca_js__WEBPACK_IMPORTED_MODULE_101__/* ["default"] */ .Z,
286132
+ 'ascendex': _src_pro_ascendex_js__WEBPACK_IMPORTED_MODULE_102__/* ["default"] */ .Z,
286133
+ 'bequant': _src_pro_bequant_js__WEBPACK_IMPORTED_MODULE_103__/* ["default"] */ .Z,
286134
+ 'binance': _src_pro_binance_js__WEBPACK_IMPORTED_MODULE_104__/* ["default"] */ .Z,
286135
+ 'binancecoinm': _src_pro_binancecoinm_js__WEBPACK_IMPORTED_MODULE_105__/* ["default"] */ .Z,
286136
+ 'binanceus': _src_pro_binanceus_js__WEBPACK_IMPORTED_MODULE_106__/* ["default"] */ .Z,
286137
+ 'binanceusdm': _src_pro_binanceusdm_js__WEBPACK_IMPORTED_MODULE_107__/* ["default"] */ .Z,
286138
+ 'bingx': _src_pro_bingx_js__WEBPACK_IMPORTED_MODULE_108__/* ["default"] */ .Z,
286139
+ 'bitcoincom': _src_pro_bitcoincom_js__WEBPACK_IMPORTED_MODULE_109__/* ["default"] */ .Z,
286140
+ 'bitfinex': _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_110__/* ["default"] */ .Z,
286141
+ 'bitfinex2': _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_111__/* ["default"] */ .Z,
286142
+ 'bitget': _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_112__/* ["default"] */ .Z,
286143
+ 'bitmart': _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_113__/* ["default"] */ .Z,
286144
+ 'bitmex': _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_114__/* ["default"] */ .Z,
286145
+ 'bitopro': _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_115__/* ["default"] */ .Z,
286146
+ 'bitpanda': _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_116__/* ["default"] */ .Z,
286147
+ 'bitrue': _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_117__/* ["default"] */ .Z,
286148
+ 'bitstamp': _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_118__/* ["default"] */ .Z,
286149
+ 'bittrex': _src_pro_bittrex_js__WEBPACK_IMPORTED_MODULE_119__/* ["default"] */ .Z,
286150
+ 'bitvavo': _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_120__/* ["default"] */ .Z,
286151
+ 'blockchaincom': _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_121__/* ["default"] */ .Z,
286152
+ 'bybit': _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_122__/* ["default"] */ .Z,
286153
+ 'cex': _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_123__/* ["default"] */ .Z,
286154
+ 'coinbase': _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_124__/* ["default"] */ .Z,
286155
+ 'coinbaseprime': _src_pro_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_125__/* ["default"] */ .Z,
286156
+ 'coinbasepro': _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_126__/* ["default"] */ .Z,
286157
+ 'coinex': _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_127__/* ["default"] */ .Z,
286158
+ 'cryptocom': _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_128__/* ["default"] */ .Z,
286159
+ 'currencycom': _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_129__/* ["default"] */ .Z,
286160
+ 'deribit': _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_130__/* ["default"] */ .Z,
286161
+ 'exmo': _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_131__/* ["default"] */ .Z,
286162
+ 'gate': _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_132__/* ["default"] */ .Z,
286163
+ 'gateio': _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_133__/* ["default"] */ .Z,
286164
+ 'gemini': _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_134__/* ["default"] */ .Z,
286165
+ 'hitbtc': _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_135__/* ["default"] */ .Z,
286166
+ 'hollaex': _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_136__/* ["default"] */ .Z,
286167
+ 'htx': _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_137__/* ["default"] */ .Z,
286168
+ 'huobi': _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_138__/* ["default"] */ .Z,
286169
+ 'huobijp': _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_139__/* ["default"] */ .Z,
286170
+ 'idex': _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_140__/* ["default"] */ .Z,
286171
+ 'independentreserve': _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_141__/* ["default"] */ .Z,
286172
+ 'kraken': _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_142__/* ["default"] */ .Z,
286173
+ 'krakenfutures': _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_143__/* ["default"] */ .Z,
286174
+ 'kucoin': _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_144__/* ["default"] */ .Z,
286175
+ 'kucoinfutures': _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_145__/* ["default"] */ .Z,
286176
+ 'luno': _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_146__/* ["default"] */ .Z,
286177
+ 'mexc': _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_147__/* ["default"] */ .Z,
286178
+ 'ndax': _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_148__/* ["default"] */ .Z,
286179
+ 'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_149__/* ["default"] */ .Z,
286180
+ 'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
286181
+ 'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
286182
+ 'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
286183
+ 'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
286184
+ 'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
286185
+ 'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
286186
+ 'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_156__/* ["default"] */ .Z,
286187
+ 'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_157__/* ["default"] */ .Z,
286188
+ 'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_158__/* ["default"] */ .Z,
286241
286189
  };
286242
286190
  for (const exchange in pro) {
286243
286191
  // const ccxtExchange = exchanges[exchange]
@@ -286250,7 +286198,7 @@ for (const exchange in pro) {
286250
286198
  pro.exchanges = Object.keys(pro);
286251
286199
  pro['Exchange'] = _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e; // now the same for rest and ts
286252
286200
  //-----------------------------------------------------------------------------
286253
- const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_166__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_167__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_168__);
286201
+ const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_159__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_160__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_161__);
286254
286202
 
286255
286203
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ccxt);
286256
286204
  //-----------------------------------------------------------------------------