ccxt 4.2.15 → 4.2.16

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.
@@ -4429,12 +4429,14 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
4429
4429
  */
4430
4430
  await this.loadMarkets();
4431
4431
  await this.loadAccounts();
4432
- let query = undefined;
4433
4432
  let marketType = undefined;
4434
- [marketType, query] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
4433
+ let marginMode = undefined;
4434
+ [marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
4435
+ [marginMode, params] = this.handleMarginModeAndParams('fetchBalance', params);
4435
4436
  const isMargin = this.safeValue(params, 'margin', false);
4436
- marketType = isMargin ? 'margin' : marketType;
4437
- query = this.omit(query, 'margin');
4437
+ const isCross = marginMode === 'cross';
4438
+ marketType = (isMargin || isCross) ? 'margin' : marketType;
4439
+ params = this.omit(params, 'margin');
4438
4440
  const accountsByType = this.safeValue(this.options, 'accountsByType', {});
4439
4441
  const accountCategory = this.safeString(accountsByType, marketType, 'cash');
4440
4442
  const account = this.safeValue(this.accounts, 0, {});
@@ -4442,15 +4444,18 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
4442
4444
  const request = {
4443
4445
  'account-group': accountGroup,
4444
4446
  };
4447
+ if ((marginMode === 'isolated') && (marketType !== 'swap')) {
4448
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' does not supported isolated margin trading');
4449
+ }
4445
4450
  if ((accountCategory === 'cash') || (accountCategory === 'margin')) {
4446
4451
  request['account-category'] = accountCategory;
4447
4452
  }
4448
4453
  let response = undefined;
4449
4454
  if ((marketType === 'spot') || (marketType === 'margin')) {
4450
- response = await this.v1PrivateAccountCategoryGetBalance(this.extend(request, query));
4455
+ response = await this.v1PrivateAccountCategoryGetBalance(this.extend(request, params));
4451
4456
  }
4452
4457
  else if (marketType === 'swap') {
4453
- response = await this.v2PrivateAccountGroupGetFuturesPosition(this.extend(request, query));
4458
+ response = await this.v2PrivateAccountGroupGetFuturesPosition(this.extend(request, params));
4454
4459
  }
4455
4460
  else {
4456
4461
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' fetchBalance() is not currently supported for ' + marketType + ' markets');
@@ -8441,11 +8446,11 @@ class Exchange {
8441
8446
  let httpsProxy = undefined;
8442
8447
  let socksProxy = undefined;
8443
8448
  // httpProxy
8444
- if (this.httpProxy !== undefined) {
8449
+ if (this.valueIsDefined(this.httpProxy)) {
8445
8450
  usedProxies.push('httpProxy');
8446
8451
  httpProxy = this.httpProxy;
8447
8452
  }
8448
- if (this.http_proxy !== undefined) {
8453
+ if (this.valueIsDefined(this.http_proxy)) {
8449
8454
  usedProxies.push('http_proxy');
8450
8455
  httpProxy = this.http_proxy;
8451
8456
  }
@@ -8458,11 +8463,11 @@ class Exchange {
8458
8463
  httpProxy = this.http_proxy_callback(url, method, headers, body);
8459
8464
  }
8460
8465
  // httpsProxy
8461
- if (this.httpsProxy !== undefined) {
8466
+ if (this.valueIsDefined(this.httpsProxy)) {
8462
8467
  usedProxies.push('httpsProxy');
8463
8468
  httpsProxy = this.httpsProxy;
8464
8469
  }
8465
- if (this.https_proxy !== undefined) {
8470
+ if (this.valueIsDefined(this.https_proxy)) {
8466
8471
  usedProxies.push('https_proxy');
8467
8472
  httpsProxy = this.https_proxy;
8468
8473
  }
@@ -8475,11 +8480,11 @@ class Exchange {
8475
8480
  httpsProxy = this.https_proxy_callback(url, method, headers, body);
8476
8481
  }
8477
8482
  // socksProxy
8478
- if (this.socksProxy !== undefined) {
8483
+ if (this.valueIsDefined(this.socksProxy)) {
8479
8484
  usedProxies.push('socksProxy');
8480
8485
  socksProxy = this.socksProxy;
8481
8486
  }
8482
- if (this.socks_proxy !== undefined) {
8487
+ if (this.valueIsDefined(this.socks_proxy)) {
8483
8488
  usedProxies.push('socks_proxy');
8484
8489
  socksProxy = this.socks_proxy;
8485
8490
  }
@@ -8505,29 +8510,29 @@ class Exchange {
8505
8510
  let wssProxy = undefined;
8506
8511
  let wsSocksProxy = undefined;
8507
8512
  // ws proxy
8508
- if (this.wsProxy !== undefined) {
8513
+ if (this.valueIsDefined(this.wsProxy)) {
8509
8514
  usedProxies.push('wsProxy');
8510
8515
  wsProxy = this.wsProxy;
8511
8516
  }
8512
- if (this.ws_proxy !== undefined) {
8517
+ if (this.valueIsDefined(this.ws_proxy)) {
8513
8518
  usedProxies.push('ws_proxy');
8514
8519
  wsProxy = this.ws_proxy;
8515
8520
  }
8516
8521
  // wss proxy
8517
- if (this.wssProxy !== undefined) {
8522
+ if (this.valueIsDefined(this.wssProxy)) {
8518
8523
  usedProxies.push('wssProxy');
8519
8524
  wssProxy = this.wssProxy;
8520
8525
  }
8521
- if (this.wss_proxy !== undefined) {
8526
+ if (this.valueIsDefined(this.wss_proxy)) {
8522
8527
  usedProxies.push('wss_proxy');
8523
8528
  wssProxy = this.wss_proxy;
8524
8529
  }
8525
8530
  // ws socks proxy
8526
- if (this.wsSocksProxy !== undefined) {
8531
+ if (this.valueIsDefined(this.wsSocksProxy)) {
8527
8532
  usedProxies.push('wsSocksProxy');
8528
8533
  wsSocksProxy = this.wsSocksProxy;
8529
8534
  }
8530
- if (this.ws_socks_proxy !== undefined) {
8535
+ if (this.valueIsDefined(this.ws_socks_proxy)) {
8531
8536
  usedProxies.push('ws_socks_proxy');
8532
8537
  wsSocksProxy = this.ws_socks_proxy;
8533
8538
  }
@@ -27792,7 +27797,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27792
27797
  'has': {
27793
27798
  'CORS': undefined,
27794
27799
  'spot': true,
27795
- 'margin': true,
27800
+ 'margin': false,
27796
27801
  'swap': true,
27797
27802
  'future': false,
27798
27803
  'option': false,
@@ -27855,6 +27860,9 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27855
27860
  'account': 'https://open-api.{hostname}/openApi',
27856
27861
  'copyTrading': 'https://open-api.{hostname}/openApi',
27857
27862
  },
27863
+ 'test': {
27864
+ 'swap': 'https://open-api-vst.{hostname}/openApi', // only swap is really "test" but since the API keys are the same, we want to keep all the functionalities when the user enables the sandboxmode
27865
+ },
27858
27866
  'www': 'https://bingx.com/',
27859
27867
  'doc': 'https://bingx-api.github.io/docs/',
27860
27868
  'referral': 'https://bingx.com/invite/OHETOM',
@@ -28188,6 +28196,10 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28188
28196
  if (!this.checkRequiredCredentials(false)) {
28189
28197
  return undefined;
28190
28198
  }
28199
+ const isSandbox = this.safeValue(this.options, 'sandboxMode', false);
28200
+ if (isSandbox) {
28201
+ return undefined;
28202
+ }
28191
28203
  const response = await this.walletsV1PrivateGetCapitalConfigGetall(params);
28192
28204
  //
28193
28205
  // {
@@ -28427,7 +28439,11 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28427
28439
  * @param {object} [params] extra parameters specific to the exchange API endpoint
28428
28440
  * @returns {object[]} an array of objects representing market data
28429
28441
  */
28430
- const requests = [this.fetchSpotMarkets(params), this.fetchSwapMarkets(params)];
28442
+ const requests = [this.fetchSwapMarkets(params)];
28443
+ const isSandbox = this.safeValue(this.options, 'sandboxMode', false);
28444
+ if (!isSandbox) {
28445
+ requests.push(this.fetchSpotMarkets(params)); // sandbox is swap only
28446
+ }
28431
28447
  const promises = await Promise.all(requests);
28432
28448
  const spotMarkets = this.safeValue(promises, 0, []);
28433
28449
  const swapMarkets = this.safeValue(promises, 1, []);
@@ -30858,6 +30874,21 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
30858
30874
  // "txId": "0xb5ef8c13b968a406cc62a93a8bd80f9e9a906ef1b3fcf20a2e48573c17659268"
30859
30875
  // }
30860
30876
  //
30877
+ // withdraw
30878
+ //
30879
+ // {
30880
+ // "code":0,
30881
+ // "timestamp":1705274263621,
30882
+ // "data":{
30883
+ // "id":"1264246141278773252"
30884
+ // }
30885
+ // }
30886
+ //
30887
+ // parse withdraw-type output first...
30888
+ //
30889
+ const data = this.safeValue(transaction, 'data');
30890
+ const dataId = (data === undefined) ? undefined : this.safeString(data, 'id');
30891
+ const id = this.safeString(transaction, 'id', dataId);
30861
30892
  const address = this.safeString(transaction, 'address');
30862
30893
  const tag = this.safeString(transaction, 'addressTag');
30863
30894
  let timestamp = this.safeInteger(transaction, 'insertTime');
@@ -30878,7 +30909,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
30878
30909
  const type = (rawType === '0') ? 'deposit' : 'withdrawal';
30879
30910
  return {
30880
30911
  'info': transaction,
30881
- 'id': this.safeString(transaction, 'id'),
30912
+ 'id': id,
30882
30913
  'txid': this.safeString(transaction, 'txId'),
30883
30914
  'type': type,
30884
30915
  'currency': code,
@@ -31512,6 +31543,10 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
31512
31543
  const type = section[0];
31513
31544
  const version = section[1];
31514
31545
  const access = section[2];
31546
+ const isSandbox = this.safeValue(this.options, 'sandboxMode', false);
31547
+ if (isSandbox && (type !== 'swap')) {
31548
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' does not have a testnet/sandbox URL for ' + type + ' endpoints');
31549
+ }
31515
31550
  let url = this.implodeHostname(this.urls['api'][type]);
31516
31551
  if (type === 'spot' && version === 'v3') {
31517
31552
  url += '/api';
@@ -31554,6 +31589,10 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
31554
31589
  nonce() {
31555
31590
  return this.milliseconds();
31556
31591
  }
31592
+ setSandboxMode(enable) {
31593
+ super.setSandboxMode(enable);
31594
+ this.options['sandboxMode'] = enable;
31595
+ }
31557
31596
  handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
31558
31597
  if (response === undefined) {
31559
31598
  return undefined; // fallback to default error handler
@@ -56768,8 +56807,8 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
56768
56807
  if (fetchOHLCVOpenTimestamp) {
56769
56808
  timestamp = this.sum(timestamp, duration);
56770
56809
  }
56771
- const ymdhms = this.ymdhms(timestamp);
56772
- request['startTime'] = ymdhms; // starting date filter for results
56810
+ const startTime = this.iso8601(timestamp);
56811
+ request['startTime'] = startTime; // starting date filter for results
56773
56812
  }
56774
56813
  else {
56775
56814
  request['reverse'] = true;
@@ -57879,12 +57918,9 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
57879
57918
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' fetchDepositAddress requires params["network"]');
57880
57919
  }
57881
57920
  const currency = this.currency(code);
57882
- let currencyId = currency['id'];
57883
- const idLength = currencyId.length;
57884
- currencyId = currencyId.slice(0, idLength - 1) + currencyId.slice(idLength - 1, idLength).toLowerCase(); // make the last letter lowercase
57885
57921
  params = this.omit(params, 'network');
57886
57922
  const request = {
57887
- 'currency': currencyId,
57923
+ 'currency': currency['id'],
57888
57924
  'network': this.networkCodeToId(networkCode, currency['code']),
57889
57925
  };
57890
57926
  const response = await this.privateGetUserDepositAddress(this.extend(request, params));
@@ -103124,7 +103160,7 @@ class coinone extends _abstract_coinone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
103124
103160
  'setLeverage': false,
103125
103161
  'setMarginMode': false,
103126
103162
  'setPositionMode': false,
103127
- 'ws': false,
103163
+ 'ws': true,
103128
103164
  },
103129
103165
  'urls': {
103130
103166
  'logo': 'https://user-images.githubusercontent.com/1294454/38003300-adc12fba-323f-11e8-8525-725f53c4a659.jpg',
@@ -202601,12 +202637,14 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
202601
202637
  * @description fetch all unfilled currently open orders
202602
202638
  * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#queryopenorder
202603
202639
  * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md
202640
+ * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#spotListAllOpenOrder
202604
202641
  * @param {string} symbol unified market symbol
202605
202642
  * @param {int} [since] the earliest time in ms to fetch open orders for
202606
202643
  * @param {int} [limit] the maximum number of open order structures to retrieve
202607
202644
  * @param {object} [params] extra parameters specific to the exchange API endpoint
202608
202645
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
202609
202646
  */
202647
+ await this.loadMarkets();
202610
202648
  if (symbol === undefined) {
202611
202649
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument');
202612
202650
  }
@@ -202648,20 +202686,25 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
202648
202686
  * @name phemex#fetchClosedOrders
202649
202687
  * @description fetches information on multiple closed orders made by the user
202650
202688
  * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#queryorder
202689
+ * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#queryorder
202690
+ * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedgedd-Perpetual-API.md#query-closed-orders-by-symbol
202691
+ * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#spotDataOrdersByIds
202651
202692
  * @param {string} symbol unified market symbol of the market orders were made in
202652
202693
  * @param {int} [since] the earliest time in ms to fetch orders for
202653
202694
  * @param {int} [limit] the maximum number of order structures to retrieve
202654
202695
  * @param {object} [params] extra parameters specific to the exchange API endpoint
202696
+ * @param {string} [params.settle] the settlement currency to fetch orders for
202655
202697
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
202656
202698
  */
202657
- if (symbol === undefined) {
202658
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchClosedOrders() requires a symbol argument');
202659
- }
202660
202699
  await this.loadMarkets();
202661
- const market = this.market(symbol);
202662
- const request = {
202663
- 'symbol': market['id'],
202664
- };
202700
+ let market = undefined;
202701
+ if (symbol !== undefined) {
202702
+ market = this.market(symbol);
202703
+ }
202704
+ const request = {};
202705
+ if (market !== undefined) {
202706
+ request['symbol'] = market['id'];
202707
+ }
202665
202708
  if (since !== undefined) {
202666
202709
  request['start'] = since;
202667
202710
  }
@@ -202669,8 +202712,8 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
202669
202712
  request['limit'] = limit;
202670
202713
  }
202671
202714
  let response = undefined;
202672
- if (market['settle'] === 'USDT') {
202673
- request['currency'] = market['settle'];
202715
+ if ((symbol === undefined) || (this.safeString(market, 'settle') === 'USDT')) {
202716
+ request['currency'] = this.safeString(params, 'settle', 'USDT');
202674
202717
  response = await this.privateGetExchangeOrderV2OrderList(this.extend(request, params));
202675
202718
  }
202676
202719
  else if (market['swap']) {
@@ -202731,23 +202774,25 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
202731
202774
  * @description fetch all trades made by the user
202732
202775
  * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#query-user-trade
202733
202776
  * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#query-user-trade
202777
+ * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#spotDataTradesHist
202734
202778
  * @param {string} symbol unified market symbol
202735
202779
  * @param {int} [since] the earliest time in ms to fetch trades for
202736
202780
  * @param {int} [limit] the maximum number of trades structures to retrieve
202737
202781
  * @param {object} [params] extra parameters specific to the exchange API endpoint
202738
202782
  * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
202739
202783
  */
202740
- if (symbol === undefined) {
202741
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol argument');
202742
- }
202743
202784
  await this.loadMarkets();
202744
- const market = this.market(symbol);
202785
+ let market = undefined;
202786
+ if (symbol !== undefined) {
202787
+ market = this.market(symbol);
202788
+ }
202745
202789
  const request = {};
202746
202790
  if (limit !== undefined) {
202747
202791
  limit = Math.min(200, limit);
202748
202792
  request['limit'] = limit;
202749
202793
  }
202750
- if (market['settle'] === 'USDT') {
202794
+ const isUSDTSettled = (symbol === undefined) || (this.safeString(market, 'settle') === 'USDT');
202795
+ if (isUSDTSettled) {
202751
202796
  request['currency'] = 'USDT';
202752
202797
  request['offset'] = 0;
202753
202798
  if (limit === undefined) {
@@ -202760,18 +202805,12 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
202760
202805
  if (since !== undefined) {
202761
202806
  request['start'] = since;
202762
202807
  }
202763
- if (market['swap'] && (limit !== undefined)) {
202764
- request['limit'] = limit;
202765
- }
202766
- const isUSDTSettled = market['settle'] === 'USDT';
202767
202808
  let response = undefined;
202768
- if (market['swap']) {
202769
- if (isUSDTSettled) {
202770
- response = await this.privateGetExchangeOrderV2TradingList(this.extend(request, params));
202771
- }
202772
- else {
202773
- response = await this.privateGetExchangeOrderTrade(this.extend(request, params));
202774
- }
202809
+ if (isUSDTSettled) {
202810
+ response = await this.privateGetExchangeOrderV2TradingList(this.extend(request, params));
202811
+ }
202812
+ else if (market['swap']) {
202813
+ response = await this.privateGetExchangeOrderTrade(this.extend(request, params));
202775
202814
  }
202776
202815
  else {
202777
202816
  response = await this.privateGetExchangeSpotOrderTrades(this.extend(request, params));
@@ -231088,6 +231127,425 @@ class coinex extends _coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
231088
231127
  }
231089
231128
 
231090
231129
 
231130
+ /***/ }),
231131
+
231132
+ /***/ 5208:
231133
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
231134
+
231135
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
231136
+ /* harmony export */ Z: () => (/* binding */ coinone)
231137
+ /* harmony export */ });
231138
+ /* harmony import */ var _coinone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7811);
231139
+ /* harmony import */ var _base_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6689);
231140
+ /* harmony import */ var _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3020);
231141
+ // ---------------------------------------------------------------------------
231142
+
231143
+
231144
+
231145
+ // ---------------------------------------------------------------------------
231146
+ class coinone extends _coinone_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
231147
+ describe() {
231148
+ return this.deepExtend(super.describe(), {
231149
+ 'has': {
231150
+ 'ws': true,
231151
+ 'watchOrderBook': true,
231152
+ 'watchOrders': false,
231153
+ 'watchTrades': true,
231154
+ 'watchOHLCV': false,
231155
+ 'watchTicker': true,
231156
+ 'watchTickers': false,
231157
+ },
231158
+ 'urls': {
231159
+ 'api': {
231160
+ 'ws': 'wss://stream.coinone.co.kr',
231161
+ },
231162
+ },
231163
+ 'options': {
231164
+ 'expiresIn': '',
231165
+ 'userId': '',
231166
+ 'wsSessionToken': '',
231167
+ 'watchOrderBook': {
231168
+ 'snapshotDelay': 6,
231169
+ 'snapshotMaxRetries': 3,
231170
+ },
231171
+ 'tradesLimit': 1000,
231172
+ 'OHLCVLimit': 1000,
231173
+ },
231174
+ 'exceptions': {
231175
+ 'exact': {
231176
+ '4009': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.AuthenticationError,
231177
+ },
231178
+ },
231179
+ 'streaming': {
231180
+ 'ping': this.ping,
231181
+ 'keepAlive': 20000,
231182
+ },
231183
+ });
231184
+ }
231185
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
231186
+ /**
231187
+ * @method
231188
+ * @name coinone#watchOrderBook
231189
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
231190
+ * @see https://docs.coinone.co.kr/reference/public-websocket-orderbook
231191
+ * @param {string} symbol unified symbol of the market to fetch the order book for
231192
+ * @param {int} [limit] the maximum amount of order book entries to return
231193
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
231194
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
231195
+ */
231196
+ await this.loadMarkets();
231197
+ const market = this.market(symbol);
231198
+ const messageHash = 'orderbook:' + market['symbol'];
231199
+ const url = this.urls['api']['ws'];
231200
+ const request = {
231201
+ 'request_type': 'SUBSCRIBE',
231202
+ 'channel': 'ORDERBOOK',
231203
+ 'topic': {
231204
+ 'quote_currency': market['quote'],
231205
+ 'target_currency': market['base'],
231206
+ },
231207
+ };
231208
+ const message = this.extend(request, params);
231209
+ const orderbook = await this.watch(url, messageHash, message, messageHash);
231210
+ return orderbook.limit();
231211
+ }
231212
+ handleOrderBook(client, message) {
231213
+ //
231214
+ // {
231215
+ // "response_type": "DATA",
231216
+ // "channel": "ORDERBOOK",
231217
+ // "data": {
231218
+ // "quote_currency": "KRW",
231219
+ // "target_currency": "BTC",
231220
+ // "timestamp": 1705288918649,
231221
+ // "id": "1705288918649001",
231222
+ // "asks": [
231223
+ // {
231224
+ // "price": "58412000",
231225
+ // "qty": "0.59919807"
231226
+ // }
231227
+ // ],
231228
+ // "bids": [
231229
+ // {
231230
+ // "price": "58292000",
231231
+ // "qty": "0.1045"
231232
+ // }
231233
+ // ]
231234
+ // }
231235
+ // }
231236
+ //
231237
+ const data = this.safeValue(message, 'data', {});
231238
+ const baseId = this.safeStringUpper(data, 'target_currency');
231239
+ const quoteId = this.safeStringUpper(data, 'quote_currency');
231240
+ const base = this.safeCurrencyCode(baseId);
231241
+ const quote = this.safeCurrencyCode(quoteId);
231242
+ const symbol = this.symbol(base + '/' + quote);
231243
+ const timestamp = this.safeInteger(data, 'timestamp');
231244
+ let orderbook = this.safeValue(this.orderbooks, symbol);
231245
+ if (orderbook === undefined) {
231246
+ orderbook = this.orderBook();
231247
+ }
231248
+ else {
231249
+ orderbook.reset();
231250
+ }
231251
+ orderbook['symbol'] = symbol;
231252
+ const asks = this.safeValue(data, 'asks', []);
231253
+ const bids = this.safeValue(data, 'bids', []);
231254
+ this.handleDeltas(orderbook['asks'], asks);
231255
+ this.handleDeltas(orderbook['bids'], bids);
231256
+ orderbook['timestamp'] = timestamp;
231257
+ orderbook['datetime'] = this.iso8601(timestamp);
231258
+ const messageHash = 'orderbook:' + symbol;
231259
+ this.orderbooks[symbol] = orderbook;
231260
+ client.resolve(orderbook, messageHash);
231261
+ }
231262
+ handleDelta(bookside, delta) {
231263
+ const bidAsk = this.parseBidAsk(delta, 'price', 'qty');
231264
+ bookside.storeArray(bidAsk);
231265
+ }
231266
+ async watchTicker(symbol, params = {}) {
231267
+ /**
231268
+ * @method
231269
+ * @name coinone#watchTicker
231270
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
231271
+ * @see https://docs.coinone.co.kr/reference/public-websocket-ticker
231272
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
231273
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
231274
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
231275
+ */
231276
+ await this.loadMarkets();
231277
+ const market = this.market(symbol);
231278
+ const messageHash = 'ticker:' + market['symbol'];
231279
+ const url = this.urls['api']['ws'];
231280
+ const request = {
231281
+ 'request_type': 'SUBSCRIBE',
231282
+ 'channel': 'TICKER',
231283
+ 'topic': {
231284
+ 'quote_currency': market['quote'],
231285
+ 'target_currency': market['base'],
231286
+ },
231287
+ };
231288
+ const message = this.extend(request, params);
231289
+ return await this.watch(url, messageHash, message, messageHash);
231290
+ }
231291
+ handleTicker(client, message) {
231292
+ //
231293
+ // {
231294
+ // "response_type": "DATA",
231295
+ // "channel": "TICKER",
231296
+ // "data": {
231297
+ // "quote_currency": "KRW",
231298
+ // "target_currency": "BTC",
231299
+ // "timestamp": 1705301117198,
231300
+ // "quote_volume": "19521465345.504",
231301
+ // "target_volume": "334.81445168",
231302
+ // "high": "58710000",
231303
+ // "low": "57276000",
231304
+ // "first": "57293000",
231305
+ // "last": "58532000",
231306
+ // "volume_power": "100",
231307
+ // "ask_best_price": "58537000",
231308
+ // "ask_best_qty": "0.1961",
231309
+ // "bid_best_price": "58532000",
231310
+ // "bid_best_qty": "0.00009258",
231311
+ // "id": "1705301117198001",
231312
+ // "yesterday_high": "59140000",
231313
+ // "yesterday_low": "57273000",
231314
+ // "yesterday_first": "58897000",
231315
+ // "yesterday_last": "57301000",
231316
+ // "yesterday_quote_volume": "12967227517.4262",
231317
+ // "yesterday_target_volume": "220.09232233"
231318
+ // }
231319
+ // }
231320
+ //
231321
+ const data = this.safeValue(message, 'data', {});
231322
+ const ticker = this.parseWsTicker(data);
231323
+ const symbol = ticker['symbol'];
231324
+ this.tickers[symbol] = ticker;
231325
+ const messageHash = 'ticker:' + symbol;
231326
+ client.resolve(this.tickers[symbol], messageHash);
231327
+ }
231328
+ parseWsTicker(ticker, market = undefined) {
231329
+ //
231330
+ // {
231331
+ // "quote_currency": "KRW",
231332
+ // "target_currency": "BTC",
231333
+ // "timestamp": 1705301117198,
231334
+ // "quote_volume": "19521465345.504",
231335
+ // "target_volume": "334.81445168",
231336
+ // "high": "58710000",
231337
+ // "low": "57276000",
231338
+ // "first": "57293000",
231339
+ // "last": "58532000",
231340
+ // "volume_power": "100",
231341
+ // "ask_best_price": "58537000",
231342
+ // "ask_best_qty": "0.1961",
231343
+ // "bid_best_price": "58532000",
231344
+ // "bid_best_qty": "0.00009258",
231345
+ // "id": "1705301117198001",
231346
+ // "yesterday_high": "59140000",
231347
+ // "yesterday_low": "57273000",
231348
+ // "yesterday_first": "58897000",
231349
+ // "yesterday_last": "57301000",
231350
+ // "yesterday_quote_volume": "12967227517.4262",
231351
+ // "yesterday_target_volume": "220.09232233"
231352
+ // }
231353
+ //
231354
+ const timestamp = this.safeInteger(ticker, 'timestamp');
231355
+ const last = this.safeString(ticker, 'last');
231356
+ const baseId = this.safeString(ticker, 'target_currency');
231357
+ const quoteId = this.safeString(ticker, 'quote_currency');
231358
+ const base = this.safeCurrencyCode(baseId);
231359
+ const quote = this.safeCurrencyCode(quoteId);
231360
+ const symbol = this.symbol(base + '/' + quote);
231361
+ return this.safeTicker({
231362
+ 'symbol': symbol,
231363
+ 'timestamp': timestamp,
231364
+ 'datetime': this.iso8601(timestamp),
231365
+ 'high': this.safeString(ticker, 'high'),
231366
+ 'low': this.safeString(ticker, 'low'),
231367
+ 'bid': this.safeNumber(ticker, 'bid_best_price'),
231368
+ 'bidVolume': this.safeNumber(ticker, 'bid_best_qty'),
231369
+ 'ask': this.safeNumber(ticker, 'ask_best_price'),
231370
+ 'askVolume': this.safeNumber(ticker, 'ask_best_qty'),
231371
+ 'vwap': undefined,
231372
+ 'open': this.safeString(ticker, 'first'),
231373
+ 'close': last,
231374
+ 'last': last,
231375
+ 'previousClose': undefined,
231376
+ 'change': undefined,
231377
+ 'percentage': undefined,
231378
+ 'average': undefined,
231379
+ 'baseVolume': this.safeString(ticker, 'target_volume'),
231380
+ 'quoteVolume': this.safeString(ticker, 'quote_volume'),
231381
+ 'info': ticker,
231382
+ }, market);
231383
+ }
231384
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
231385
+ /**
231386
+ * @method
231387
+ * @name coinone#watchTrades
231388
+ * @description watches information on multiple trades made in a market
231389
+ * @see https://docs.coinone.co.kr/reference/public-websocket-trade
231390
+ * @param {string} symbol unified market symbol of the market trades were made in
231391
+ * @param {int} [since] the earliest time in ms to fetch trades for
231392
+ * @param {int} [limit] the maximum number of trade structures to retrieve
231393
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
231394
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure
231395
+ */
231396
+ await this.loadMarkets();
231397
+ const market = this.market(symbol);
231398
+ const messageHash = 'trade:' + market['symbol'];
231399
+ const url = this.urls['api']['ws'];
231400
+ const request = {
231401
+ 'request_type': 'SUBSCRIBE',
231402
+ 'channel': 'TRADE',
231403
+ 'topic': {
231404
+ 'quote_currency': market['quote'],
231405
+ 'target_currency': market['base'],
231406
+ },
231407
+ };
231408
+ const message = this.extend(request, params);
231409
+ const trades = await this.watch(url, messageHash, message, messageHash);
231410
+ if (this.newUpdates) {
231411
+ limit = trades.getLimit(market['symbol'], limit);
231412
+ }
231413
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
231414
+ }
231415
+ handleTrades(client, message) {
231416
+ //
231417
+ // {
231418
+ // "response_type": "DATA",
231419
+ // "channel": "TRADE",
231420
+ // "data": {
231421
+ // "quote_currency": "KRW",
231422
+ // "target_currency": "BTC",
231423
+ // "id": "1705303667916001",
231424
+ // "timestamp": 1705303667916,
231425
+ // "price": "58490000",
231426
+ // "qty": "0.0008",
231427
+ // "is_seller_maker": false
231428
+ // }
231429
+ // }
231430
+ //
231431
+ const data = this.safeValue(message, 'data', {});
231432
+ const trade = this.parseWsTrade(data);
231433
+ const symbol = trade['symbol'];
231434
+ let stored = this.safeValue(this.trades, symbol);
231435
+ if (stored === undefined) {
231436
+ const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
231437
+ stored = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCache */ .ZL(limit);
231438
+ this.trades[symbol] = stored;
231439
+ }
231440
+ stored.append(trade);
231441
+ const messageHash = 'trade:' + symbol;
231442
+ client.resolve(stored, messageHash);
231443
+ }
231444
+ parseWsTrade(trade, market = undefined) {
231445
+ //
231446
+ // {
231447
+ // "quote_currency": "KRW",
231448
+ // "target_currency": "BTC",
231449
+ // "id": "1705303667916001",
231450
+ // "timestamp": 1705303667916,
231451
+ // "price": "58490000",
231452
+ // "qty": "0.0008",
231453
+ // "is_seller_maker": false
231454
+ // }
231455
+ //
231456
+ const baseId = this.safeStringUpper(trade, 'target_currency');
231457
+ const quoteId = this.safeStringUpper(trade, 'quote_currency');
231458
+ const base = this.safeCurrencyCode(baseId);
231459
+ const quote = this.safeCurrencyCode(quoteId);
231460
+ const symbol = base + '/' + quote;
231461
+ const timestamp = this.safeInteger(trade, 'timestamp');
231462
+ market = this.safeMarket(symbol, market);
231463
+ const isSellerMaker = this.safeValue(trade, 'is_seller_maker');
231464
+ let side = undefined;
231465
+ if (isSellerMaker !== undefined) {
231466
+ side = isSellerMaker ? 'sell' : 'buy';
231467
+ }
231468
+ const priceString = this.safeString(trade, 'price');
231469
+ const amountString = this.safeString(trade, 'qty');
231470
+ return this.safeTrade({
231471
+ 'id': this.safeString(trade, 'id'),
231472
+ 'info': trade,
231473
+ 'timestamp': timestamp,
231474
+ 'datetime': this.iso8601(timestamp),
231475
+ 'order': undefined,
231476
+ 'symbol': market['symbol'],
231477
+ 'type': undefined,
231478
+ 'side': side,
231479
+ 'takerOrMaker': undefined,
231480
+ 'price': priceString,
231481
+ 'amount': amountString,
231482
+ 'cost': undefined,
231483
+ 'fee': undefined,
231484
+ }, market);
231485
+ }
231486
+ handleErrorMessage(client, message) {
231487
+ //
231488
+ // {
231489
+ // "response_type": "ERROR",
231490
+ // "error_code": 160012,
231491
+ // "message": "Invalid Topic"
231492
+ // }
231493
+ //
231494
+ const type = this.safeString(message, 'response_type', '');
231495
+ if (type === 'ERROR') {
231496
+ return true;
231497
+ }
231498
+ return false;
231499
+ }
231500
+ handleMessage(client, message) {
231501
+ if (this.handleErrorMessage(client, message)) {
231502
+ return;
231503
+ }
231504
+ const type = this.safeString(message, 'response_type');
231505
+ if (type === 'PONG') {
231506
+ this.handlePong(client, message);
231507
+ return;
231508
+ }
231509
+ if (type === 'DATA') {
231510
+ const topic = this.safeString(message, 'channel', '');
231511
+ const methods = {
231512
+ 'ORDERBOOK': this.handleOrderBook,
231513
+ 'TICKER': this.handleTicker,
231514
+ 'TRADE': this.handleTrades,
231515
+ };
231516
+ const exacMethod = this.safeValue(methods, topic);
231517
+ if (exacMethod !== undefined) {
231518
+ exacMethod.call(this, client, message);
231519
+ return;
231520
+ }
231521
+ const keys = Object.keys(methods);
231522
+ for (let i = 0; i < keys.length; i++) {
231523
+ const key = keys[i];
231524
+ if (topic.indexOf(keys[i]) >= 0) {
231525
+ const method = methods[key];
231526
+ method.call(this, client, message);
231527
+ return;
231528
+ }
231529
+ }
231530
+ }
231531
+ }
231532
+ ping(client) {
231533
+ return {
231534
+ 'request_type': 'PING',
231535
+ };
231536
+ }
231537
+ handlePong(client, message) {
231538
+ //
231539
+ // {
231540
+ // "response_type":"PONG"
231541
+ // }
231542
+ //
231543
+ client.lastPong = this.milliseconds();
231544
+ return message;
231545
+ }
231546
+ }
231547
+
231548
+
231091
231549
  /***/ }),
231092
231550
 
231093
231551
  /***/ 6820:
@@ -243713,7 +244171,13 @@ class krakenfutures extends _krakenfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
243713
244171
  const name = this.safeString2(params, 'method', 'watchTickerMethod', method);
243714
244172
  params = this.omit(params, ['watchTickerMethod', 'method']);
243715
244173
  symbols = this.marketSymbols(symbols, undefined, false);
243716
- return await this.subscribePublic(name, symbols, params);
244174
+ const ticker = await this.subscribePublic(name, symbols, params);
244175
+ if (this.newUpdates) {
244176
+ const tickers = {};
244177
+ tickers[ticker['symbol']] = ticker;
244178
+ return tickers;
244179
+ }
244180
+ return this.filterByArray(this.tickers, 'symbol', symbols);
243717
244181
  }
243718
244182
  async watchTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
243719
244183
  /**
@@ -293450,39 +293914,39 @@ var __webpack_exports__ = {};
293450
293914
  (() => {
293451
293915
  __webpack_require__.r(__webpack_exports__);
293452
293916
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
293453
- /* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.AccountNotEnabled),
293454
- /* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.AccountSuspended),
293455
- /* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.AddressPending),
293456
- /* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.ArgumentsRequired),
293457
- /* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.AuthenticationError),
293458
- /* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.BadRequest),
293459
- /* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.BadResponse),
293460
- /* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.BadSymbol),
293461
- /* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.BaseError),
293462
- /* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.CancelPending),
293463
- /* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.DDoSProtection),
293464
- /* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.DuplicateOrderId),
293917
+ /* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.AccountNotEnabled),
293918
+ /* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.AccountSuspended),
293919
+ /* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.AddressPending),
293920
+ /* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.ArgumentsRequired),
293921
+ /* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.AuthenticationError),
293922
+ /* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.BadRequest),
293923
+ /* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.BadResponse),
293924
+ /* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.BadSymbol),
293925
+ /* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.BaseError),
293926
+ /* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.CancelPending),
293927
+ /* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.DDoSProtection),
293928
+ /* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.DuplicateOrderId),
293465
293929
  /* harmony export */ Exchange: () => (/* reexport safe */ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__.e),
293466
- /* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.ExchangeError),
293467
- /* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.ExchangeNotAvailable),
293468
- /* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.InsufficientFunds),
293469
- /* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.InvalidAddress),
293470
- /* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.InvalidNonce),
293471
- /* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.InvalidOrder),
293472
- /* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.MarginModeAlreadySet),
293473
- /* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.NetworkError),
293474
- /* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.NoChange),
293475
- /* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.NotSupported),
293476
- /* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.NullResponse),
293477
- /* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.OnMaintenance),
293478
- /* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.OrderImmediatelyFillable),
293479
- /* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.OrderNotCached),
293480
- /* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.OrderNotFillable),
293481
- /* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.OrderNotFound),
293482
- /* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.PermissionDenied),
293483
- /* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_155__.O),
293484
- /* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.RateLimitExceeded),
293485
- /* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__.RequestTimeout),
293930
+ /* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.ExchangeError),
293931
+ /* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.ExchangeNotAvailable),
293932
+ /* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.InsufficientFunds),
293933
+ /* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.InvalidAddress),
293934
+ /* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.InvalidNonce),
293935
+ /* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.InvalidOrder),
293936
+ /* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.MarginModeAlreadySet),
293937
+ /* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.NetworkError),
293938
+ /* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.NoChange),
293939
+ /* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.NotSupported),
293940
+ /* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.NullResponse),
293941
+ /* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OnMaintenance),
293942
+ /* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OrderImmediatelyFillable),
293943
+ /* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OrderNotCached),
293944
+ /* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OrderNotFillable),
293945
+ /* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.OrderNotFound),
293946
+ /* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.PermissionDenied),
293947
+ /* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_156__.O),
293948
+ /* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.RateLimitExceeded),
293949
+ /* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__.RequestTimeout),
293486
293950
  /* harmony export */ ace: () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_1__.Z),
293487
293951
  /* harmony export */ alpaca: () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__.Z),
293488
293952
  /* harmony export */ ascendex: () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__.Z),
@@ -293536,11 +294000,11 @@ __webpack_require__.r(__webpack_exports__);
293536
294000
  /* harmony export */ delta: () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_50__.Z),
293537
294001
  /* harmony export */ deribit: () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_51__.Z),
293538
294002
  /* harmony export */ digifinex: () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_52__.Z),
293539
- /* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__),
294003
+ /* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__),
293540
294004
  /* harmony export */ exchanges: () => (/* binding */ exchanges),
293541
294005
  /* harmony export */ exmo: () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_53__.Z),
293542
294006
  /* harmony export */ fmfwio: () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_54__.Z),
293543
- /* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_156__),
294007
+ /* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_157__),
293544
294008
  /* harmony export */ gate: () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_55__.Z),
293545
294009
  /* harmony export */ gateio: () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_56__.Z),
293546
294010
  /* harmony export */ gemini: () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_57__.Z),
@@ -293589,9 +294053,9 @@ __webpack_require__.r(__webpack_exports__);
293589
294053
  /* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_98__.Z)
293590
294054
  /* harmony export */ });
293591
294055
  /* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
293592
- /* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(2194);
293593
- /* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(7100);
293594
- /* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(6689);
294056
+ /* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(2194);
294057
+ /* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(7100);
294058
+ /* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(6689);
293595
294059
  /* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9869);
293596
294060
  /* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5660);
293597
294061
  /* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9612);
@@ -293715,37 +294179,38 @@ __webpack_require__.r(__webpack_exports__);
293715
294179
  /* harmony import */ var _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(3414);
293716
294180
  /* harmony import */ var _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(8368);
293717
294181
  /* harmony import */ var _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(204);
293718
- /* harmony import */ var _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(6820);
293719
- /* harmony import */ var _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(2952);
293720
- /* harmony import */ var _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(1788);
293721
- /* harmony import */ var _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(9004);
293722
- /* harmony import */ var _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(8335);
293723
- /* harmony import */ var _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(1465);
293724
- /* harmony import */ var _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(9488);
293725
- /* harmony import */ var _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(5189);
293726
- /* harmony import */ var _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(8559);
293727
- /* harmony import */ var _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(7474);
293728
- /* harmony import */ var _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(8384);
293729
- /* harmony import */ var _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(9021);
293730
- /* harmony import */ var _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(3484);
293731
- /* harmony import */ var _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(1311);
293732
- /* harmony import */ var _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(736);
293733
- /* harmony import */ var _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(449);
293734
- /* harmony import */ var _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(2387);
293735
- /* harmony import */ var _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(7181);
293736
- /* harmony import */ var _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(627);
293737
- /* harmony import */ var _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(6484);
293738
- /* harmony import */ var _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(8080);
293739
- /* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(7105);
293740
- /* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(2214);
293741
- /* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(4360);
293742
- /* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(7924);
293743
- /* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(3541);
293744
- /* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(9782);
293745
- /* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(7614);
293746
- /* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(4828);
293747
- /* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(5630);
293748
- /* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(3910);
294182
+ /* harmony import */ var _src_pro_coinone_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(5208);
294183
+ /* harmony import */ var _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(6820);
294184
+ /* harmony import */ var _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(2952);
294185
+ /* harmony import */ var _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(1788);
294186
+ /* harmony import */ var _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(9004);
294187
+ /* harmony import */ var _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(8335);
294188
+ /* harmony import */ var _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(1465);
294189
+ /* harmony import */ var _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(9488);
294190
+ /* harmony import */ var _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(5189);
294191
+ /* harmony import */ var _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(8559);
294192
+ /* harmony import */ var _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(7474);
294193
+ /* harmony import */ var _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(8384);
294194
+ /* harmony import */ var _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(9021);
294195
+ /* harmony import */ var _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(3484);
294196
+ /* harmony import */ var _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(1311);
294197
+ /* harmony import */ var _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(736);
294198
+ /* harmony import */ var _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(449);
294199
+ /* harmony import */ var _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(2387);
294200
+ /* harmony import */ var _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(7181);
294201
+ /* harmony import */ var _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(627);
294202
+ /* harmony import */ var _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(6484);
294203
+ /* harmony import */ var _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(8080);
294204
+ /* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(7105);
294205
+ /* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(2214);
294206
+ /* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(4360);
294207
+ /* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(7924);
294208
+ /* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(3541);
294209
+ /* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(9782);
294210
+ /* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(7614);
294211
+ /* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(4828);
294212
+ /* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(5630);
294213
+ /* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(3910);
293749
294214
  /*
293750
294215
 
293751
294216
  MIT License
@@ -293780,7 +294245,7 @@ SOFTWARE.
293780
294245
 
293781
294246
  //-----------------------------------------------------------------------------
293782
294247
  // this is updated by vss.js when building
293783
- const version = '4.2.15';
294248
+ const version = '4.2.16';
293784
294249
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
293785
294250
  //-----------------------------------------------------------------------------
293786
294251
 
@@ -293936,6 +294401,7 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
293936
294401
 
293937
294402
 
293938
294403
 
294404
+
293939
294405
 
293940
294406
 
293941
294407
  const exchanges = {
@@ -294064,37 +294530,38 @@ const pro = {
294064
294530
  'coinbase': _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_121__/* ["default"] */ .Z,
294065
294531
  'coinbasepro': _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_122__/* ["default"] */ .Z,
294066
294532
  'coinex': _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_123__/* ["default"] */ .Z,
294067
- 'cryptocom': _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_124__/* ["default"] */ .Z,
294068
- 'currencycom': _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_125__/* ["default"] */ .Z,
294069
- 'deribit': _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_126__/* ["default"] */ .Z,
294070
- 'exmo': _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_127__/* ["default"] */ .Z,
294071
- 'gate': _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_128__/* ["default"] */ .Z,
294072
- 'gateio': _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_129__/* ["default"] */ .Z,
294073
- 'gemini': _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_130__/* ["default"] */ .Z,
294074
- 'hitbtc': _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_131__/* ["default"] */ .Z,
294075
- 'hollaex': _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_132__/* ["default"] */ .Z,
294076
- 'htx': _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_133__/* ["default"] */ .Z,
294077
- 'huobi': _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_134__/* ["default"] */ .Z,
294078
- 'huobijp': _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_135__/* ["default"] */ .Z,
294079
- 'idex': _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_136__/* ["default"] */ .Z,
294080
- 'independentreserve': _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_137__/* ["default"] */ .Z,
294081
- 'kraken': _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_138__/* ["default"] */ .Z,
294082
- 'krakenfutures': _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_139__/* ["default"] */ .Z,
294083
- 'kucoin': _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_140__/* ["default"] */ .Z,
294084
- 'kucoinfutures': _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_141__/* ["default"] */ .Z,
294085
- 'luno': _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_142__/* ["default"] */ .Z,
294086
- 'mexc': _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_143__/* ["default"] */ .Z,
294087
- 'ndax': _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_144__/* ["default"] */ .Z,
294088
- 'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_145__/* ["default"] */ .Z,
294089
- 'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_146__/* ["default"] */ .Z,
294090
- 'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_147__/* ["default"] */ .Z,
294091
- 'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_148__/* ["default"] */ .Z,
294092
- 'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_149__/* ["default"] */ .Z,
294093
- 'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
294094
- 'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
294095
- 'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
294096
- 'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
294097
- 'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
294533
+ 'coinone': _src_pro_coinone_js__WEBPACK_IMPORTED_MODULE_124__/* ["default"] */ .Z,
294534
+ 'cryptocom': _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_125__/* ["default"] */ .Z,
294535
+ 'currencycom': _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_126__/* ["default"] */ .Z,
294536
+ 'deribit': _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_127__/* ["default"] */ .Z,
294537
+ 'exmo': _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_128__/* ["default"] */ .Z,
294538
+ 'gate': _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_129__/* ["default"] */ .Z,
294539
+ 'gateio': _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_130__/* ["default"] */ .Z,
294540
+ 'gemini': _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_131__/* ["default"] */ .Z,
294541
+ 'hitbtc': _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_132__/* ["default"] */ .Z,
294542
+ 'hollaex': _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_133__/* ["default"] */ .Z,
294543
+ 'htx': _src_pro_htx_js__WEBPACK_IMPORTED_MODULE_134__/* ["default"] */ .Z,
294544
+ 'huobi': _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_135__/* ["default"] */ .Z,
294545
+ 'huobijp': _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_136__/* ["default"] */ .Z,
294546
+ 'idex': _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_137__/* ["default"] */ .Z,
294547
+ 'independentreserve': _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_138__/* ["default"] */ .Z,
294548
+ 'kraken': _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_139__/* ["default"] */ .Z,
294549
+ 'krakenfutures': _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_140__/* ["default"] */ .Z,
294550
+ 'kucoin': _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_141__/* ["default"] */ .Z,
294551
+ 'kucoinfutures': _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_142__/* ["default"] */ .Z,
294552
+ 'luno': _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_143__/* ["default"] */ .Z,
294553
+ 'mexc': _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_144__/* ["default"] */ .Z,
294554
+ 'ndax': _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_145__/* ["default"] */ .Z,
294555
+ 'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_146__/* ["default"] */ .Z,
294556
+ 'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_147__/* ["default"] */ .Z,
294557
+ 'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_148__/* ["default"] */ .Z,
294558
+ 'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_149__/* ["default"] */ .Z,
294559
+ 'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
294560
+ 'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
294561
+ 'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
294562
+ 'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
294563
+ 'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
294564
+ 'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
294098
294565
  };
294099
294566
  for (const exchange in pro) {
294100
294567
  // const ccxtExchange = exchanges[exchange]
@@ -294107,7 +294574,7 @@ for (const exchange in pro) {
294107
294574
  pro.exchanges = Object.keys(pro);
294108
294575
  pro['Exchange'] = _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e; // now the same for rest and ts
294109
294576
  //-----------------------------------------------------------------------------
294110
- const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_155__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_156__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_157__);
294577
+ const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_156__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_157__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_158__);
294111
294578
 
294112
294579
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ccxt);
294113
294580
  //-----------------------------------------------------------------------------