ccxt 4.1.46 → 4.1.47

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 (104) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.js +118 -23
  3. package/dist/ccxt.browser.min.js +2 -2
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/base/Exchange.js +3 -0
  6. package/dist/cjs/src/binance.js +4 -0
  7. package/dist/cjs/src/bitmart.js +2 -2
  8. package/dist/cjs/src/hitbtc.js +79 -1
  9. package/dist/cjs/src/krakenfutures.js +13 -3
  10. package/dist/cjs/src/pro/binance.js +2 -2
  11. package/dist/cjs/src/pro/bitget.js +2 -2
  12. package/dist/cjs/src/pro/bybit.js +2 -2
  13. package/dist/cjs/src/pro/cryptocom.js +2 -2
  14. package/dist/cjs/src/pro/gate.js +2 -2
  15. package/dist/cjs/src/pro/huobi.js +2 -2
  16. package/dist/cjs/src/pro/krakenfutures.js +2 -2
  17. package/dist/cjs/src/pro/okx.js +2 -2
  18. package/js/ccxt.d.ts +3 -3
  19. package/js/ccxt.js +1 -1
  20. package/js/src/abstract/binance.d.ts +4 -0
  21. package/js/src/abstract/binancecoinm.d.ts +4 -0
  22. package/js/src/abstract/binanceus.d.ts +4 -0
  23. package/js/src/abstract/binanceusdm.d.ts +4 -0
  24. package/js/src/ascendex.d.ts +3 -3
  25. package/js/src/base/Exchange.d.ts +2 -1
  26. package/js/src/base/Exchange.js +3 -0
  27. package/js/src/base/types.d.ts +5 -0
  28. package/js/src/bigone.d.ts +2 -2
  29. package/js/src/binance.d.ts +2 -2
  30. package/js/src/binance.js +4 -0
  31. package/js/src/bingx.d.ts +2 -2
  32. package/js/src/bitbns.d.ts +2 -2
  33. package/js/src/bitfinex.d.ts +3 -3
  34. package/js/src/bitfinex2.d.ts +3 -3
  35. package/js/src/bitflyer.d.ts +2 -2
  36. package/js/src/bitget.d.ts +2 -2
  37. package/js/src/bitmart.d.ts +2 -2
  38. package/js/src/bitmart.js +2 -2
  39. package/js/src/bitmex.d.ts +1 -1
  40. package/js/src/bitopro.d.ts +2 -2
  41. package/js/src/bitpanda.d.ts +2 -2
  42. package/js/src/bitrue.d.ts +2 -2
  43. package/js/src/bitso.d.ts +1 -1
  44. package/js/src/bitstamp.d.ts +2 -2
  45. package/js/src/bittrex.d.ts +4 -4
  46. package/js/src/bitvavo.d.ts +2 -2
  47. package/js/src/blockchaincom.d.ts +4 -4
  48. package/js/src/btcalpha.d.ts +2 -2
  49. package/js/src/btcmarkets.d.ts +3 -3
  50. package/js/src/bybit.d.ts +2 -2
  51. package/js/src/coinbase.d.ts +5 -5
  52. package/js/src/coinbasepro.d.ts +3 -3
  53. package/js/src/coincheck.d.ts +2 -2
  54. package/js/src/coinex.d.ts +8 -8
  55. package/js/src/coinfalcon.d.ts +2 -2
  56. package/js/src/coinlist.d.ts +1 -1
  57. package/js/src/coinmate.d.ts +1 -1
  58. package/js/src/coinsph.d.ts +2 -2
  59. package/js/src/cryptocom.d.ts +2 -2
  60. package/js/src/currencycom.d.ts +6 -6
  61. package/js/src/deribit.d.ts +2 -2
  62. package/js/src/digifinex.d.ts +2 -2
  63. package/js/src/exmo.d.ts +3 -3
  64. package/js/src/gate.d.ts +2 -2
  65. package/js/src/gemini.d.ts +1 -1
  66. package/js/src/hitbtc.d.ts +5 -4
  67. package/js/src/hitbtc.js +79 -1
  68. package/js/src/hollaex.d.ts +2 -2
  69. package/js/src/huobi.d.ts +2 -2
  70. package/js/src/huobijp.d.ts +2 -2
  71. package/js/src/idex.d.ts +2 -2
  72. package/js/src/indodax.d.ts +1 -1
  73. package/js/src/kraken.d.ts +2 -2
  74. package/js/src/krakenfutures.js +14 -4
  75. package/js/src/kucoin.d.ts +2 -2
  76. package/js/src/kucoinfutures.d.ts +3 -3
  77. package/js/src/kuna.d.ts +2 -2
  78. package/js/src/latoken.d.ts +2 -2
  79. package/js/src/lbank2.d.ts +2 -2
  80. package/js/src/lykke.d.ts +1 -1
  81. package/js/src/mexc.d.ts +2 -2
  82. package/js/src/ndax.d.ts +2 -2
  83. package/js/src/novadax.d.ts +3 -3
  84. package/js/src/okcoin.d.ts +8 -8
  85. package/js/src/okx.d.ts +7 -7
  86. package/js/src/phemex.d.ts +6 -6
  87. package/js/src/poloniex.d.ts +3 -3
  88. package/js/src/pro/binance.js +2 -2
  89. package/js/src/pro/bitget.js +2 -2
  90. package/js/src/pro/bybit.js +2 -2
  91. package/js/src/pro/cryptocom.js +2 -2
  92. package/js/src/pro/gate.js +2 -2
  93. package/js/src/pro/huobi.js +2 -2
  94. package/js/src/pro/krakenfutures.js +2 -2
  95. package/js/src/pro/okx.js +2 -2
  96. package/js/src/probit.d.ts +2 -2
  97. package/js/src/timex.d.ts +2 -2
  98. package/js/src/tokocrypto.d.ts +5 -5
  99. package/js/src/upbit.d.ts +2 -2
  100. package/js/src/wavesexchange.d.ts +2 -2
  101. package/js/src/whitebit.d.ts +1 -1
  102. package/js/src/woo.d.ts +3 -3
  103. package/package.json +1 -1
  104. package/skip-tests.json +5 -0
package/README.md CHANGED
@@ -216,13 +216,13 @@ console.log(version, Object.keys(exchanges));
216
216
 
217
217
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
218
218
 
219
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.46/dist/ccxt.browser.js
220
- * unpkg: https://unpkg.com/ccxt@4.1.46/dist/ccxt.browser.js
219
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.47/dist/ccxt.browser.js
220
+ * unpkg: https://unpkg.com/ccxt@4.1.47/dist/ccxt.browser.js
221
221
 
222
222
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
223
223
 
224
224
  ```HTML
225
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.46/dist/ccxt.browser.js"></script>
225
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.47/dist/ccxt.browser.js"></script>
226
226
  ```
227
227
 
228
228
  Creates a global `ccxt` object:
@@ -8098,6 +8098,9 @@ class Exchange {
8098
8098
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
8099
8099
  throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' fetchOrderBook() is not supported yet');
8100
8100
  }
8101
+ async fetchMarginMode(symbol = undefined, params = {}) {
8102
+ throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' fetchMarginMode() is not supported yet');
8103
+ }
8101
8104
  async fetchRestOrderBookSafe(symbol, limit = undefined, params = {}) {
8102
8105
  const fetchSnapshotMaxRetries = this.handleOption('watchOrderBook', 'maxRetries', 3);
8103
8106
  for (let i = 0; i < fetchSnapshotMaxRetries; i++) {
@@ -17468,7 +17471,9 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
17468
17471
  },
17469
17472
  'post': {
17470
17473
  'um/order': 1,
17474
+ 'um/conditional/order': 1,
17471
17475
  'cm/order': 1,
17476
+ 'cm/conditional/order': 1,
17472
17477
  'margin/order': 0.0133,
17473
17478
  'marginLoan': 0.1333,
17474
17479
  'repayLoan': 0.1333,
@@ -17489,8 +17494,10 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
17489
17494
  },
17490
17495
  'delete': {
17491
17496
  'um/order': 1,
17497
+ 'um/conditional/order': 1,
17492
17498
  'um/allOpenOrders': 1,
17493
17499
  'cm/order': 1,
17500
+ 'cm/conditional/order': 1,
17494
17501
  'cm/allOpenOrders': 1,
17495
17502
  'margin/order': 1,
17496
17503
  'margin/allOpenOrders': 5,
@@ -48764,7 +48771,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
48764
48771
  * @method
48765
48772
  * @name bitmart#fetchOHLCV
48766
48773
  * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
48767
- * @see https://developer-pro.bitmart.com/en/spot/#get-latest-k-line-v3
48774
+ * @see https://developer-pro.bitmart.com/en/spot/#get-history-k-line-v3
48768
48775
  * @see https://developer-pro.bitmart.com/en/futures/#get-k-line
48769
48776
  * @param {string} symbol unified symbol of the market to fetch OHLCV data for
48770
48777
  * @param {string} timeframe the length of time each candle represents
@@ -48827,7 +48834,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
48827
48834
  response = await this.publicGetContractPublicKline(this.extend(request, params));
48828
48835
  }
48829
48836
  else {
48830
- response = await this.publicGetSpotQuotationV3LiteKlines(this.extend(request, params));
48837
+ response = await this.publicGetSpotQuotationV3Klines(this.extend(request, params));
48831
48838
  }
48832
48839
  //
48833
48840
  // spot
@@ -129085,7 +129092,7 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
129085
129092
  'fetchLeverage': true,
129086
129093
  'fetchLeverageTiers': undefined,
129087
129094
  'fetchLiquidations': false,
129088
- 'fetchMarginMode': false,
129095
+ 'fetchMarginMode': true,
129089
129096
  'fetchMarketLeverageTiers': false,
129090
129097
  'fetchMarkets': true,
129091
129098
  'fetchMarkOHLCV': true,
@@ -131371,6 +131378,84 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
131371
131378
  'stopLossPrice': undefined,
131372
131379
  }, market);
131373
131380
  }
131381
+ async fetchMarginMode(symbol = undefined, params = {}) {
131382
+ /**
131383
+ * @method
131384
+ * @name hitbtc#fetchMarginMode
131385
+ * @description fetches margin mode of the user
131386
+ * @see https://api.hitbtc.com/#get-margin-position-parameters
131387
+ * @see https://api.hitbtc.com/#get-futures-position-parameters
131388
+ * @param {string} symbol unified symbol of the market the order was made in
131389
+ * @param {object} [params] extra parameters specific to the hitbtc api endpoint
131390
+ * @returns {object} Struct of MarginMode
131391
+ */
131392
+ await this.loadMarkets();
131393
+ let market = undefined;
131394
+ if (symbol !== undefined) {
131395
+ market = this.market(symbol);
131396
+ }
131397
+ let marketType = undefined;
131398
+ [marketType, params] = this.handleMarketTypeAndParams('fetchMarginMode', market, params);
131399
+ let response = undefined;
131400
+ if (marketType === 'margin') {
131401
+ response = await this.privateGetMarginConfig(params);
131402
+ }
131403
+ else if (marketType === 'swap') {
131404
+ response = await this.privateGetFuturesConfig(params);
131405
+ }
131406
+ else {
131407
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol(this.id + ' fetchMarginMode() supports swap contracts and margin only');
131408
+ }
131409
+ //
131410
+ // margin
131411
+ // {
131412
+ // "config": [{
131413
+ // "symbol": "BTCUSD",
131414
+ // "margin_call_leverage_mul": "1.50",
131415
+ // "liquidation_leverage_mul": "2.00",
131416
+ // "max_initial_leverage": "10.00",
131417
+ // "margin_mode": "Isolated",
131418
+ // "force_close_fee": "0.05",
131419
+ // "enabled": true,
131420
+ // "active": true,
131421
+ // "limit_base": "50000.00",
131422
+ // "limit_power": "2.2",
131423
+ // "unlimited_threshold": "10.0"
131424
+ // }]
131425
+ // }
131426
+ //
131427
+ // swap
131428
+ // {
131429
+ // "config": [{
131430
+ // "symbol": "BTCUSD_PERP",
131431
+ // "margin_call_leverage_mul": "1.20",
131432
+ // "liquidation_leverage_mul": "2.00",
131433
+ // "max_initial_leverage": "100.00",
131434
+ // "margin_mode": "Isolated",
131435
+ // "force_close_fee": "0.001",
131436
+ // "enabled": true,
131437
+ // "active": false,
131438
+ // "limit_base": "5000000.000000000000",
131439
+ // "limit_power": "1.25",
131440
+ // "unlimited_threshold": "2.00"
131441
+ // }]
131442
+ // }
131443
+ //
131444
+ const config = this.safeValue(response, 'config', []);
131445
+ const marginModes = [];
131446
+ for (let i = 0; i < config.length; i++) {
131447
+ const data = this.safeValue(config, i);
131448
+ const marketId = this.safeString(data, 'symbol');
131449
+ const marketInner = this.safeMarket(marketId);
131450
+ marginModes.push({
131451
+ 'info': data,
131452
+ 'symbol': this.safeString(marketInner, 'symbol'),
131453
+ 'marginMode': this.safeStringLower(data, 'margin_mode'),
131454
+ });
131455
+ }
131456
+ const filteredMargin = this.filterBySymbol(marginModes, symbol);
131457
+ return this.safeValue(filteredMargin, 0);
131458
+ }
131374
131459
  async transfer(code, amount, fromAccount, toAccount, params = {}) {
131375
131460
  /**
131376
131461
  * @method
@@ -151187,7 +151272,7 @@ class krakenfutures extends _abstract_krakenfutures_js__WEBPACK_IMPORTED_MODULE_
151187
151272
  'exceptions': {
151188
151273
  'exact': {
151189
151274
  'apiLimitExceeded': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.RateLimitExceeded,
151190
- 'marketUnavailable': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeNotAvailable,
151275
+ 'marketUnavailable': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ContractUnavailable,
151191
151276
  'requiredArgumentMissing': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
151192
151277
  'unavailable': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeNotAvailable,
151193
151278
  'authenticationError': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.AuthenticationError,
@@ -151196,7 +151281,14 @@ class krakenfutures extends _abstract_krakenfutures_js__WEBPACK_IMPORTED_MODULE_
151196
151281
  'invalidAmount': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
151197
151282
  'insufficientFunds': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InsufficientFunds,
151198
151283
  'Bad Request': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
151199
- 'Unavailable': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InsufficientFunds, // Insufficient funds in Futures account [withdraw]
151284
+ 'Unavailable': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InsufficientFunds,
151285
+ 'invalidUnit': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
151286
+ 'Json Parse Error': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError,
151287
+ 'nonceBelowThreshold': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidNonce,
151288
+ 'nonceDuplicate': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidNonce,
151289
+ 'notFound': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
151290
+ 'Server Error': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError,
151291
+ 'unknownError': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError,
151200
151292
  },
151201
151293
  'broad': {
151202
151294
  'invalidArgument': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
@@ -153336,7 +153428,10 @@ class krakenfutures extends _abstract_krakenfutures_js__WEBPACK_IMPORTED_MODULE_
153336
153428
  if (code === 429) {
153337
153429
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.DDoSProtection(this.id + ' ' + body);
153338
153430
  }
153339
- const message = this.safeString(response, 'error');
153431
+ const errors = this.safeValue(response, 'errors');
153432
+ const firstError = this.safeValue(errors, 0);
153433
+ const firtErrorMessage = this.safeString(firstError, 'message');
153434
+ const message = this.safeString(response, 'error', firtErrorMessage);
153340
153435
  if (message === undefined) {
153341
153436
  return undefined;
153342
153437
  }
@@ -204548,9 +204643,9 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
204548
204643
  * @method
204549
204644
  * @name binance#watchPositions
204550
204645
  * @description watch all open positions
204551
- * @param {[string]|undefined} symbols list of unified market symbols
204646
+ * @param {string[]|undefined} symbols list of unified market symbols
204552
204647
  * @param {object} params extra parameters specific to the binance api endpoint
204553
- * @returns {[object]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
204648
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
204554
204649
  */
204555
204650
  await this.loadMarkets();
204556
204651
  await this.authenticate(params);
@@ -208750,10 +208845,10 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
208750
208845
  * @name bitget#watchPositions
208751
208846
  * @description watch all open positions
208752
208847
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#positions-channel
208753
- * @param {[string]|undefined} symbols list of unified market symbols
208848
+ * @param {string[]|undefined} symbols list of unified market symbols
208754
208849
  * @param {object} params extra parameters specific to the bitget api endpoint
208755
208850
  * @param {string} params.instType Instrument Type umcbl:USDT Perpetual Contract Private Channel; dmcbl:Coin Margin Perpetual Contract Private Channel; cmcbl: USDC margin Perpetual Contract Private Channel
208756
- * @returns {[object]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
208851
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
208757
208852
  */
208758
208853
  await this.loadMarkets();
208759
208854
  let market = undefined;
@@ -217896,9 +217991,9 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
217896
217991
  * @name bybit#watchPositions
217897
217992
  * @see https://bybit-exchange.github.io/docs/v5/websocket/private/position
217898
217993
  * @description watch all open positions
217899
- * @param {[string]|undefined} symbols list of unified market symbols
217994
+ * @param {string[]|undefined} symbols list of unified market symbols
217900
217995
  * @param {object} params extra parameters specific to the bybit api endpoint
217901
- * @returns {[object]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
217996
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
217902
217997
  */
217903
217998
  await this.loadMarkets();
217904
217999
  const method = 'watchPositions';
@@ -223201,9 +223296,9 @@ class cryptocom extends _cryptocom_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
223201
223296
  * @name cryptocom#watchPositions
223202
223297
  * @description watch all open positions
223203
223298
  * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#user-position_balance
223204
- * @param {[string]|undefined} symbols list of unified market symbols
223299
+ * @param {string[]|undefined} symbols list of unified market symbols
223205
223300
  * @param {object} params extra parameters specific to the cryptocom api endpoint
223206
- * @returns {[object]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
223301
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
223207
223302
  */
223208
223303
  await this.loadMarkets();
223209
223304
  await this.authenticate();
@@ -226539,9 +226634,9 @@ class gate extends _gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
226539
226634
  * @see https://www.gate.io/docs/developers/delivery/ws/en/#positions-subscription
226540
226635
  * @see https://www.gate.io/docs/developers/options/ws/en/#positions-channel
226541
226636
  * @description watch all open positions
226542
- * @param {[string]|undefined} symbols list of unified market symbols
226637
+ * @param {string[]|undefined} symbols list of unified market symbols
226543
226638
  * @param {object} params extra parameters specific to the gate api endpoint
226544
- * @returns {[object]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
226639
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
226545
226640
  */
226546
226641
  await this.loadMarkets();
226547
226642
  let market = undefined;
@@ -230623,9 +230718,9 @@ class huobi extends _huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
230623
230718
  * @see https://www.huobi.com/en-in/opend/newApiPages/?id=28c34a7d-77ae-11ed-9966-0242ac110003
230624
230719
  * @see https://www.huobi.com/en-in/opend/newApiPages/?id=5d5156b5-77b6-11ed-9966-0242ac110003
230625
230720
  * @description watch all open positions. Note: huobi has one channel for each marginMode and type
230626
- * @param {[string]|undefined} symbols list of unified market symbols
230721
+ * @param {string[]|undefined} symbols list of unified market symbols
230627
230722
  * @param {object} params extra parameters specific to the huobi api endpoint
230628
- * @returns {[object]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
230723
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
230629
230724
  */
230630
230725
  await this.loadMarkets();
230631
230726
  let market = undefined;
@@ -235026,9 +235121,9 @@ class krakenfutures extends _krakenfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
235026
235121
  * @name krakenfutures#watchPositions
235027
235122
  * @see https://docs.futures.kraken.com/#websocket-api-private-feeds-open-positions
235028
235123
  * @description watch all open positions
235029
- * @param {[string]|undefined} symbols list of unified market symbols
235124
+ * @param {string[]|undefined} symbols list of unified market symbols
235030
235125
  * @param {object} params extra parameters specific to the krakenfutures api endpoint
235031
- * @returns {[object]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
235126
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
235032
235127
  */
235033
235128
  await this.loadMarkets();
235034
235129
  let messageHash = '';
@@ -242017,9 +242112,9 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
242017
242112
  * @name okx#watchPositions
242018
242113
  * @see https://www.okx.com/docs-v5/en/#trading-account-websocket-positions-channel
242019
242114
  * @description watch all open positions
242020
- * @param {[string]|undefined} symbols list of unified market symbols
242115
+ * @param {string[]|undefined} symbols list of unified market symbols
242021
242116
  * @param {object} params extra parameters specific to the okx api endpoint
242022
- * @returns {[object]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
242117
+ * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
242023
242118
  */
242024
242119
  if (this.isEmpty(symbols)) {
242025
242120
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' watchPositions requires a list of symbols');
@@ -285484,7 +285579,7 @@ SOFTWARE.
285484
285579
 
285485
285580
  //-----------------------------------------------------------------------------
285486
285581
  // this is updated by vss.js when building
285487
- const version = '4.1.46';
285582
+ const version = '4.1.47';
285488
285583
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
285489
285584
  //-----------------------------------------------------------------------------
285490
285585