ccxt 4.1.34 → 4.1.36

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 (51) hide show
  1. package/README.md +8 -3
  2. package/build.sh +4 -0
  3. package/dist/ccxt.browser.js +739 -437
  4. package/dist/ccxt.browser.min.js +2 -2
  5. package/dist/cjs/ccxt.js +1 -1
  6. package/dist/cjs/src/base/Exchange.js +12 -0
  7. package/dist/cjs/src/base/errors.js +15 -1
  8. package/dist/cjs/src/binance.js +1 -0
  9. package/dist/cjs/src/bingx.js +19 -18
  10. package/dist/cjs/src/bitget.js +1 -0
  11. package/dist/cjs/src/bitopro.js +1 -0
  12. package/dist/cjs/src/bitstamp.js +12 -0
  13. package/dist/cjs/src/bybit.js +112 -109
  14. package/dist/cjs/src/digifinex.js +109 -3
  15. package/dist/cjs/src/huobi.js +206 -39
  16. package/dist/cjs/src/kraken.js +15 -8
  17. package/dist/cjs/src/kucoin.js +233 -257
  18. package/dist/cjs/src/phemex.js +1 -0
  19. package/dist/cjs/src/pro/okx.js +1 -1
  20. package/examples2md.js +79 -0
  21. package/js/ccxt.d.ts +1 -1
  22. package/js/ccxt.js +1 -1
  23. package/js/src/abstract/binance.d.ts +1 -0
  24. package/js/src/abstract/binancecoinm.d.ts +1 -0
  25. package/js/src/abstract/binanceus.d.ts +1 -0
  26. package/js/src/abstract/binanceusdm.d.ts +1 -0
  27. package/js/src/abstract/bitopro.d.ts +1 -0
  28. package/js/src/abstract/bitstamp.d.ts +10 -0
  29. package/js/src/abstract/kucoin.d.ts +81 -83
  30. package/js/src/abstract/kucoinfutures.d.ts +90 -86
  31. package/js/src/base/Exchange.d.ts +4 -0
  32. package/js/src/base/Exchange.js +12 -0
  33. package/js/src/base/errorHierarchy.d.ts +1 -1
  34. package/js/src/base/errorHierarchy.js +1 -1
  35. package/js/src/base/errors.d.ts +9 -1
  36. package/js/src/base/errors.js +14 -2
  37. package/js/src/binance.js +1 -0
  38. package/js/src/bingx.js +19 -18
  39. package/js/src/bitget.js +1 -0
  40. package/js/src/bitopro.js +1 -0
  41. package/js/src/bitstamp.js +12 -0
  42. package/js/src/bybit.js +112 -109
  43. package/js/src/digifinex.d.ts +13 -0
  44. package/js/src/digifinex.js +109 -3
  45. package/js/src/huobi.js +206 -39
  46. package/js/src/kraken.js +15 -8
  47. package/js/src/kucoin.d.ts +0 -1
  48. package/js/src/kucoin.js +233 -257
  49. package/js/src/phemex.js +1 -0
  50. package/js/src/pro/okx.js +1 -1
  51. package/package.json +8 -4
@@ -6679,6 +6679,9 @@ class Exchange {
6679
6679
  this.last_json_response = undefined;
6680
6680
  this.last_response_headers = undefined;
6681
6681
  this.last_request_headers = undefined;
6682
+ this.last_request_body = undefined;
6683
+ this.last_request_url = undefined;
6684
+ this.last_request_path = undefined;
6682
6685
  this.id = undefined;
6683
6686
  this.markets = undefined;
6684
6687
  this.status = undefined;
@@ -6873,6 +6876,9 @@ class Exchange {
6873
6876
  this.last_json_response = undefined;
6874
6877
  this.last_response_headers = undefined;
6875
6878
  this.last_request_headers = undefined;
6879
+ this.last_request_body = undefined;
6880
+ this.last_request_url = undefined;
6881
+ this.last_request_path = undefined;
6876
6882
  // camelCase and snake_notation support
6877
6883
  const unCamelCaseProperties = (obj = this) => {
6878
6884
  if (obj !== null) {
@@ -9443,6 +9449,8 @@ class Exchange {
9443
9449
  this.lastRestRequestTimestamp = this.milliseconds();
9444
9450
  const request = this.sign(path, api, method, params, headers, body);
9445
9451
  this.last_request_headers = request['headers'];
9452
+ this.last_request_body = request['body'];
9453
+ this.last_request_url = request['url'];
9446
9454
  return await this.fetch(request['url'], request['method'], request['headers'], request['body']);
9447
9455
  }
9448
9456
  async request(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined, config = {}) {
@@ -10280,6 +10288,10 @@ class Exchange {
10280
10288
  filterByCurrencySinceLimit(array, code = undefined, since = undefined, limit = undefined, tail = false) {
10281
10289
  return this.filterByValueSinceLimit(array, 'currency', code, since, limit, 'timestamp', tail);
10282
10290
  }
10291
+ filterBySymbolsSinceLimit(array, symbols = undefined, since = undefined, limit = undefined, tail = false) {
10292
+ const result = this.filterByArray(array, 'symbol', symbols, false);
10293
+ return this.filterBySinceLimit(result, since, limit, 'timestamp', tail);
10294
+ }
10283
10295
  parseLastPrices(pricesData, symbols = undefined, params = {}) {
10284
10296
  //
10285
10297
  // the value of tickers is either a dict or a list
@@ -11458,6 +11470,8 @@ __webpack_require__.r(__webpack_exports__);
11458
11470
  /* harmony export */ "NotSupported": () => (/* binding */ NotSupported),
11459
11471
  /* harmony export */ "NullResponse": () => (/* binding */ NullResponse),
11460
11472
  /* harmony export */ "OnMaintenance": () => (/* binding */ OnMaintenance),
11473
+ /* harmony export */ "OperationFailed": () => (/* binding */ OperationFailed),
11474
+ /* harmony export */ "OperationRejected": () => (/* binding */ OperationRejected),
11461
11475
  /* harmony export */ "OrderImmediatelyFillable": () => (/* binding */ OrderImmediatelyFillable),
11462
11476
  /* harmony export */ "OrderNotCached": () => (/* binding */ OrderNotCached),
11463
11477
  /* harmony export */ "OrderNotFillable": () => (/* binding */ OrderNotFillable),
@@ -11511,6 +11525,12 @@ class ExchangeError extends Error {
11511
11525
  this.name = 'ExchangeError';
11512
11526
  }
11513
11527
  }
11528
+ class OperationFailed extends ExchangeError {
11529
+ constructor(message) {
11530
+ super(message);
11531
+ this.name = 'OperationFailed';
11532
+ }
11533
+ }
11514
11534
  class AuthenticationError extends ExchangeError {
11515
11535
  constructor(message) {
11516
11536
  super(message);
@@ -11547,6 +11567,12 @@ class BadRequest extends ExchangeError {
11547
11567
  this.name = 'BadRequest';
11548
11568
  }
11549
11569
  }
11570
+ class OperationRejected extends BadRequest {
11571
+ constructor(message) {
11572
+ super(message);
11573
+ this.name = 'OperationRejected';
11574
+ }
11575
+ }
11550
11576
  class BadSymbol extends BadRequest {
11551
11577
  constructor(message) {
11552
11578
  super(message);
@@ -11699,7 +11725,7 @@ class RequestTimeout extends NetworkError {
11699
11725
  // // Derived class hierarchy
11700
11726
  // errorHierarchy
11701
11727
  // )
11702
- const errors = { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, ContractUnavailable, NoChange };
11728
+ const errors = { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, ContractUnavailable, NoChange, OperationRejected, OperationFailed };
11703
11729
 
11704
11730
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (errors);
11705
11731
 
@@ -16971,6 +16997,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
16971
16997
  'topLongShortPositionRatio': 1,
16972
16998
  'globalLongShortAccountRatio': 1,
16973
16999
  'takerlongshortRatio': 1,
17000
+ 'basis': 1,
16974
17001
  },
16975
17002
  },
16976
17003
  'fapiPrivate': {
@@ -26312,7 +26339,8 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
26312
26339
  'PFUTURES': 'swap',
26313
26340
  'SFUTURES': 'future',
26314
26341
  },
26315
- 'recvWindow': 5 * 1000, // 5 sec
26342
+ 'recvWindow': 5 * 1000,
26343
+ 'broker': 'CCXT',
26316
26344
  },
26317
26345
  });
26318
26346
  }
@@ -26596,7 +26624,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
26596
26624
  * @see https://bingx-api.github.io/docs/#/spot/market-api.html#Query%20Symbols
26597
26625
  * @see https://bingx-api.github.io/docs/#/swapV2/market-api.html#Contract%20Information
26598
26626
  * @param {object} [params] extra parameters specific to the exchange api endpoint
26599
- * @returns {[object]} an array of objects representing market data
26627
+ * @returns {object[]} an array of objects representing market data
26600
26628
  */
26601
26629
  const requests = [this.fetchSpotMarkets(params), this.fetchSwapMarkets(params)];
26602
26630
  const promises = await Promise.all(requests);
@@ -26619,7 +26647,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
26619
26647
  * @param {object} [params] extra parameters specific to the bingx api endpoint
26620
26648
  * @param {int} [params.until] timestamp in ms of the latest candle to fetch
26621
26649
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
26622
- * @returns {[[int]]} A list of candles ordered as timestamp, open, high, low, close, volume
26650
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
26623
26651
  */
26624
26652
  await this.loadMarkets();
26625
26653
  let paginate = false;
@@ -26725,7 +26753,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
26725
26753
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
26726
26754
  * @param {int} [limit] the maximum amount of trades to fetch
26727
26755
  * @param {object} [params] extra parameters specific to the bingx api endpoint
26728
- * @returns {[object]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#public-trades}
26756
+ * @returns {object[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#public-trades}
26729
26757
  */
26730
26758
  await this.loadMarkets();
26731
26759
  const market = this.market(symbol);
@@ -27055,7 +27083,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27055
27083
  * @param {object} [params] extra parameters specific to the bingx api endpoint
27056
27084
  * @param {int} [params.until] timestamp in ms of the latest funding rate to fetch
27057
27085
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
27058
- * @returns {[object]} a list of [funding rate structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure}
27086
+ * @returns {object[]} a list of [funding rate structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure}
27059
27087
  */
27060
27088
  this.checkRequiredSymbol('fetchFundingRateHistory', symbol);
27061
27089
  await this.loadMarkets();
@@ -27218,7 +27246,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27218
27246
  * @name bingx#fetchTickers
27219
27247
  * @description fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
27220
27248
  * @see https://bingx-api.github.io/docs/#/swapV2/market-api.html#Get%20Ticker
27221
- * @param {[string]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
27249
+ * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
27222
27250
  * @param {object} [params] extra parameters specific to the bingx api endpoint
27223
27251
  * @returns {object} a dictionary of [ticker structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
27224
27252
  */
@@ -27455,10 +27483,10 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27455
27483
  * @description fetch all open positions
27456
27484
  * @see https://bingx-api.github.io/docs/#/swapV2/account-api.html#Perpetual%20Swap%20Positions
27457
27485
  * @see https://bingx-api.github.io/docs/#/standard/contract-interface.html#Query%20standard%20contract%20balance
27458
- * @param {[string]|undefined} symbols list of unified market symbols
27486
+ * @param {string[]|undefined} symbols list of unified market symbols
27459
27487
  * @param {object} [params] extra parameters specific to the bingx api endpoint
27460
27488
  * @param {boolean} [params.standard] whether to fetch standard contract positions
27461
- * @returns {[object]} a list of [position structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#position-structure}
27489
+ * @returns {object[]} a list of [position structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#position-structure}
27462
27490
  */
27463
27491
  await this.loadMarkets();
27464
27492
  symbols = this.marketSymbols(symbols);
@@ -27982,7 +28010,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27982
28010
  * @see https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Cancel%20All%20Orders
27983
28011
  * @param {string} [symbol] unified market symbol, only orders in the market of this symbol are cancelled when symbol is not undefined
27984
28012
  * @param {object} [params] extra parameters specific to the bingx api endpoint
27985
- * @returns {[object]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
28013
+ * @returns {object[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
27986
28014
  */
27987
28015
  this.checkRequiredSymbol('cancelAllOrders', symbol);
27988
28016
  await this.loadMarkets();
@@ -28032,7 +28060,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28032
28060
  * @description cancel multiple orders
28033
28061
  * @see https://bingx-api.github.io/docs/#/swapV2/trade-api.html#Cancel%20a%20Batch%20of%20Orders
28034
28062
  * @see https://bingx-api.github.io/docs/#/spot/trade-api.html#Cancel%20a%20Batch%20of%20Orders
28035
- * @param {[string]} ids order ids
28063
+ * @param {string[]} ids order ids
28036
28064
  * @param {string} symbol unified market symbol, default is undefined
28037
28065
  * @param {object} [params] extra parameters specific to the bingx api endpoint
28038
28066
  * @returns {object} an list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
@@ -28181,7 +28209,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28181
28209
  * @param {int} [since] the earliest time in ms to fetch open orders for
28182
28210
  * @param {int} [limit] the maximum number of open order structures to retrieve
28183
28211
  * @param {object} [params] extra parameters specific to the bingx api endpoint
28184
- * @returns {[object]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
28212
+ * @returns {object[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
28185
28213
  */
28186
28214
  this.checkRequiredSymbol('fetchOrders', symbol);
28187
28215
  await this.loadMarkets();
@@ -28270,7 +28298,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28270
28298
  * @param {object} [params] extra parameters specific to the bingx api endpoint
28271
28299
  * @param {int} [params.until] the latest time in ms to fetch orders for
28272
28300
  * @param {boolean} [params.standard] whether to fetch standard contract orders
28273
- * @returns {[object]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
28301
+ * @returns {object[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
28274
28302
  */
28275
28303
  this.checkRequiredSymbol('fetchClosedOrders', symbol);
28276
28304
  await this.loadMarkets();
@@ -28401,7 +28429,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28401
28429
  * @param {int} [since] the earliest time in ms to fetch transfers for
28402
28430
  * @param {int} [limit] the maximum number of transfers structures to retrieve
28403
28431
  * @param {object} [params] extra parameters specific to the bingx api endpoint
28404
- * @returns {[object]} a list of [transfer structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#transfer-structure}
28432
+ * @returns {object[]} a list of [transfer structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#transfer-structure}
28405
28433
  */
28406
28434
  await this.loadMarkets();
28407
28435
  let currency = undefined;
@@ -28546,7 +28574,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28546
28574
  * @param {int} [since] the earliest time in ms to fetch deposits for
28547
28575
  * @param {int} [limit] the maximum number of deposits structures to retrieve
28548
28576
  * @param {object} [params] extra parameters specific to the bingx api endpoint
28549
- * @returns {[object]} a list of [transaction structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#transaction-structure}
28577
+ * @returns {object[]} a list of [transaction structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#transaction-structure}
28550
28578
  */
28551
28579
  await this.loadMarkets();
28552
28580
  const request = {};
@@ -28591,7 +28619,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28591
28619
  * @param {int} [since] the earliest time in ms to fetch withdrawals for
28592
28620
  * @param {int} [limit] the maximum number of withdrawals structures to retrieve
28593
28621
  * @param {object} [params] extra parameters specific to the bingx api endpoint
28594
- * @returns {[object]} a list of [transaction structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#transaction-structure}
28622
+ * @returns {object[]} a list of [transaction structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#transaction-structure}
28595
28623
  */
28596
28624
  await this.loadMarkets();
28597
28625
  const request = {};
@@ -28864,7 +28892,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28864
28892
  * @param {int} [limit] the maximum number of trades structures to retrieve
28865
28893
  * @param {object} [params] extra parameters specific to the bingx api endpoint
28866
28894
  * @param {string} params.trandingUnit COIN (directly represent assets such as BTC and ETH) or CONT (represents the number of contract sheets)
28867
- * @returns {[object]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#trade-structure}
28895
+ * @returns {object[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#trade-structure}
28868
28896
  */
28869
28897
  this.checkRequiredArgument('fetchMyTrades', symbol, 'symbol');
28870
28898
  this.checkRequiredArgument('fetchMyTrades', since, 'since');
@@ -28974,7 +29002,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
28974
29002
  * @name bingx#fetchDepositWithdrawFees
28975
29003
  * @description fetch deposit and withdraw fees
28976
29004
  * @see https://bingx-api.github.io/docs/#/common/account-api.html#All%20Coins'%20Information
28977
- * @param {[string]|undefined} codes list of unified currency codes
29005
+ * @param {string[]|undefined} codes list of unified currency codes
28978
29006
  * @param {object} [params] extra parameters specific to the bingx api endpoint
28979
29007
  * @returns {object} a list of [fee structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#fee-structure}
28980
29008
  */
@@ -29086,7 +29114,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
29086
29114
  query += 'signature=' + signature;
29087
29115
  headers = {
29088
29116
  'X-BX-APIKEY': this.apiKey,
29089
- 'X-SOURCE-KEY': 'CCXT',
29117
+ 'X-SOURCE-KEY': this.safeString(this.options, 'broker', 'CCXT'),
29090
29118
  };
29091
29119
  url += query;
29092
29120
  }
@@ -39719,6 +39747,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
39719
39747
  '40017': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError,
39720
39748
  '40018': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.PermissionDenied,
39721
39749
  '40019': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
39750
+ '40037': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.AuthenticationError,
39722
39751
  '40102': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
39723
39752
  '40103': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
39724
39753
  '40104': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError,
@@ -53802,6 +53831,7 @@ class bitopro extends _abstract_bitopro_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
53802
53831
  'provisioning/trading-pairs': 1,
53803
53832
  'provisioning/limitations-and-fees': 1,
53804
53833
  'trading-history/{pair}': 1,
53834
+ 'price/otc/{currency}': 1,
53805
53835
  },
53806
53836
  },
53807
53837
  'private': {
@@ -61391,9 +61421,16 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
61391
61421
  'trading-pairs-info/': 1,
61392
61422
  'currencies/': 1,
61393
61423
  'eur_usd/': 1,
61424
+ 'travel_rule/vasps/': 1,
61394
61425
  },
61395
61426
  },
61396
61427
  'private': {
61428
+ 'get': {
61429
+ 'travel_rule/contacts/': 1,
61430
+ 'contacts/{contact_uuid}/': 1,
61431
+ 'earn/subscriptions/': 1,
61432
+ 'earn/transactions/': 1,
61433
+ },
61397
61434
  'post': {
61398
61435
  'account_balances/': 1,
61399
61436
  'account_balances/{currency}/': 1,
@@ -61420,6 +61457,7 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
61420
61457
  'transfer-from-main/': 1,
61421
61458
  'my_trading_pairs/': 1,
61422
61459
  'fees/trading/': 1,
61460
+ 'fees/trading/{pair}': 1,
61423
61461
  'fees/withdrawal/': 1,
61424
61462
  'fees/withdrawal/{currency}/': 1,
61425
61463
  'withdrawal-requests/': 1,
@@ -61593,6 +61631,10 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
61593
61631
  'dgld_address/': 1,
61594
61632
  'ldo_withdrawal/': 1,
61595
61633
  'ldo_address/': 1,
61634
+ 'travel_rule/contacts/': 1,
61635
+ 'earn/subscribe/': 1,
61636
+ 'earn/subscriptions/setting/': 1,
61637
+ 'earn/unsubscribe': 1,
61596
61638
  },
61597
61639
  },
61598
61640
  },
@@ -74274,35 +74316,35 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74274
74316
  'derivatives/v3/public/open-interest': 1,
74275
74317
  'derivatives/v3/public/insurance': 1,
74276
74318
  // v5
74277
- 'v5/announcements/index': 2.5,
74319
+ 'v5/announcements/index': 5,
74278
74320
  // market
74279
- 'v5/market/time': 2.5,
74280
- 'v5/market/kline': 2.5,
74281
- 'v5/market/mark-price-kline': 2.5,
74282
- 'v5/market/index-price-kline': 2.5,
74283
- 'v5/market/premium-index-price-kline': 2.5,
74284
- 'v5/market/instruments-info': 2.5,
74285
- 'v5/market/orderbook': 2.5,
74286
- 'v5/market/tickers': 2.5,
74287
- 'v5/market/funding/history': 2.5,
74288
- 'v5/market/recent-trade': 2.5,
74289
- 'v5/market/open-interest': 2.5,
74290
- 'v5/market/historical-volatility': 2.5,
74291
- 'v5/market/insurance': 2.5,
74292
- 'v5/market/risk-limit': 2.5,
74293
- 'v5/market/delivery-price': 2.5,
74294
- 'v5/market/account-ratio': 2.5,
74321
+ 'v5/market/time': 5,
74322
+ 'v5/market/kline': 5,
74323
+ 'v5/market/mark-price-kline': 5,
74324
+ 'v5/market/index-price-kline': 5,
74325
+ 'v5/market/premium-index-price-kline': 5,
74326
+ 'v5/market/instruments-info': 5,
74327
+ 'v5/market/orderbook': 5,
74328
+ 'v5/market/tickers': 5,
74329
+ 'v5/market/funding/history': 5,
74330
+ 'v5/market/recent-trade': 5,
74331
+ 'v5/market/open-interest': 5,
74332
+ 'v5/market/historical-volatility': 5,
74333
+ 'v5/market/insurance': 5,
74334
+ 'v5/market/risk-limit': 5,
74335
+ 'v5/market/delivery-price': 5,
74336
+ 'v5/market/account-ratio': 5,
74295
74337
  // spot leverage token
74296
- 'v5/spot-lever-token/info': 2.5,
74297
- 'v5/spot-lever-token/reference': 2.5,
74338
+ 'v5/spot-lever-token/info': 5,
74339
+ 'v5/spot-lever-token/reference': 5,
74298
74340
  // spot margin trade
74299
- 'v5/spot-margin-trade/data': 2.5,
74300
- 'v5/spot-cross-margin-trade/data': 2.5,
74301
- 'v5/spot-cross-margin-trade/pledge-token': 2.5,
74302
- 'v5/spot-cross-margin-trade/borrow-token': 2.5,
74341
+ 'v5/spot-margin-trade/data': 5,
74342
+ 'v5/spot-cross-margin-trade/data': 5,
74343
+ 'v5/spot-cross-margin-trade/pledge-token': 5,
74344
+ 'v5/spot-cross-margin-trade/borrow-token': 5,
74303
74345
  // institutional lending
74304
- 'v5/ins-loan/product-infos': 2.5,
74305
- 'v5/ins-loan/ensure-tokens-convert': 2.5,
74346
+ 'v5/ins-loan/product-infos': 5,
74347
+ 'v5/ins-loan/ensure-tokens-convert': 5,
74306
74348
  },
74307
74349
  },
74308
74350
  'private': {
@@ -74371,11 +74413,11 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74371
74413
  'spot/v3/private/margin-ltv': 10,
74372
74414
  // account
74373
74415
  'asset/v1/private/transfer/list': 50,
74374
- 'asset/v3/private/transfer/inter-transfer/list/query': 0.84,
74416
+ 'asset/v3/private/transfer/inter-transfer/list/query': 50,
74375
74417
  'asset/v1/private/sub-member/transfer/list': 50,
74376
- 'asset/v3/private/transfer/sub-member/list/query': 0.84,
74377
- 'asset/v3/private/transfer/sub-member-transfer/list/query': 0.84,
74378
- 'asset/v3/private/transfer/universal-transfer/list/query': 0.84,
74418
+ 'asset/v3/private/transfer/sub-member/list/query': 50,
74419
+ 'asset/v3/private/transfer/sub-member-transfer/list/query': 50,
74420
+ 'asset/v3/private/transfer/universal-transfer/list/query': 25,
74379
74421
  'asset/v1/private/sub-member/member-ids': 50,
74380
74422
  'asset/v1/private/deposit/record/query': 50,
74381
74423
  'asset/v1/private/withdraw/record/query': 25,
@@ -74383,11 +74425,11 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74383
74425
  'asset/v3/private/coin-info/query': 25,
74384
74426
  'asset/v1/private/asset-info/query': 50,
74385
74427
  'asset/v1/private/deposit/address': 100,
74386
- 'asset/v3/private/deposit/address/query': 0.17,
74428
+ 'asset/v3/private/deposit/address/query': 10,
74387
74429
  'asset/v1/private/universal/transfer/list': 50,
74388
- 'contract/v3/private/copytrading/order/list': 1,
74389
- 'contract/v3/private/copytrading/position/list': 1,
74390
- 'contract/v3/private/copytrading/wallet/balance': 1,
74430
+ 'contract/v3/private/copytrading/order/list': 30,
74431
+ 'contract/v3/private/copytrading/position/list': 40,
74432
+ 'contract/v3/private/copytrading/wallet/balance': 25,
74391
74433
  'contract/v3/private/position/limit-info': 25,
74392
74434
  'contract/v3/private/order/unfilled-orders': 1,
74393
74435
  'contract/v3/private/order/list': 1,
@@ -74414,43 +74456,43 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74414
74456
  'user/v3/private/query-sub-members': 5,
74415
74457
  'user/v3/private/query-api': 5,
74416
74458
  'user/v3/private/get-member-type': 1,
74417
- 'asset/v3/private/transfer/transfer-coin/list/query': 0.84,
74418
- 'asset/v3/private/transfer/account-coin/balance/query': 0.84,
74419
- 'asset/v3/private/transfer/account-coins/balance/query': 50,
74420
- 'asset/v3/private/transfer/asset-info/query': 0.84,
74459
+ 'asset/v3/private/transfer/transfer-coin/list/query': 50,
74460
+ 'asset/v3/private/transfer/account-coin/balance/query': 50,
74461
+ 'asset/v3/private/transfer/account-coins/balance/query': 25,
74462
+ 'asset/v3/private/transfer/asset-info/query': 50,
74421
74463
  'asset/v3/public/deposit/allowed-deposit-list/query': 0.17,
74422
- 'asset/v3/private/deposit/record/query': 0.17,
74423
- 'asset/v3/private/withdraw/record/query': 0.17,
74464
+ 'asset/v3/private/deposit/record/query': 10,
74465
+ 'asset/v3/private/withdraw/record/query': 10,
74424
74466
  // v5
74425
74467
  // trade
74426
74468
  'v5/order/realtime': 5,
74427
74469
  'v5/order/history': 5,
74428
- 'v5/order/spot-borrow-check': 2.5,
74470
+ 'v5/order/spot-borrow-check': 1,
74429
74471
  // position
74430
74472
  'v5/position/list': 5,
74431
74473
  'v5/execution/list': 5,
74432
74474
  'v5/position/closed-pnl': 5,
74433
74475
  // pre-upgrade
74434
- 'v5/pre-upgrade/order/history': 2.5,
74435
- 'v5/pre-upgrade/execution/list': 2.5,
74436
- 'v5/pre-upgrade/position/closed-pnl': 2.5,
74437
- 'v5/pre-upgrade/account/transaction-log': 2.5,
74438
- 'v5/pre-upgrade/asset/delivery-record': 2.5,
74439
- 'v5/pre-upgrade/asset/settlement-record': 2.5,
74476
+ 'v5/pre-upgrade/order/history': 5,
74477
+ 'v5/pre-upgrade/execution/list': 5,
74478
+ 'v5/pre-upgrade/position/closed-pnl': 5,
74479
+ 'v5/pre-upgrade/account/transaction-log': 5,
74480
+ 'v5/pre-upgrade/asset/delivery-record': 5,
74481
+ 'v5/pre-upgrade/asset/settlement-record': 5,
74440
74482
  // account
74441
- 'v5/account/wallet-balance': 5,
74442
- 'v5/account/borrow-history': 2.5,
74443
- 'v5/account/set-collateral-switch': 2.5,
74444
- 'v5/account/collateral-info': 2.5,
74445
- 'v5/asset/coin-greeks': 2.5,
74446
- 'v5/account/fee-rate': 5,
74447
- 'v5/account/info': 2.5,
74448
- 'v5/account/transaction-log': 2.5,
74449
- 'v5/account/mmp-state': 2.5,
74483
+ 'v5/account/wallet-balance': 1,
74484
+ 'v5/account/borrow-history': 1,
74485
+ 'v5/account/set-collateral-switch': 5,
74486
+ 'v5/account/collateral-info': 1,
74487
+ 'v5/asset/coin-greeks': 1,
74488
+ 'v5/account/fee-rate': 10,
74489
+ 'v5/account/info': 5,
74490
+ 'v5/account/transaction-log': 1,
74491
+ 'v5/account/mmp-state': 5,
74450
74492
  // asset
74451
74493
  'v5/asset/exchange/order-record': 5,
74452
- 'v5/asset/delivery-record': 2.5,
74453
- 'v5/asset/settlement-record': 2.5,
74494
+ 'v5/asset/delivery-record': 5,
74495
+ 'v5/asset/settlement-record': 5,
74454
74496
  'v5/asset/transfer/query-asset-info': 50,
74455
74497
  'v5/asset/transfer/query-account-coins-balance': 25,
74456
74498
  'v5/asset/transfer/query-account-coin-balance': 50,
@@ -74458,38 +74500,38 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74458
74500
  'v5/asset/transfer/query-inter-transfer-list': 50,
74459
74501
  'v5/asset/transfer/query-sub-member-list': 50,
74460
74502
  'v5/asset/transfer/query-universal-transfer-list': 25,
74461
- 'v5/asset/deposit/query-allowed-list': 2.5,
74503
+ 'v5/asset/deposit/query-allowed-list': 5,
74462
74504
  'v5/asset/deposit/query-record': 10,
74463
74505
  'v5/asset/deposit/query-sub-member-record': 10,
74464
- 'v5/asset/deposit/query-internal-record': 2.5,
74506
+ 'v5/asset/deposit/query-internal-record': 5,
74465
74507
  'v5/asset/deposit/query-address': 10,
74466
74508
  'v5/asset/deposit/query-sub-member-address': 10,
74467
74509
  'v5/asset/coin/query-info': 25,
74468
74510
  'v5/asset/withdraw/query-record': 10,
74469
- 'v5/asset/withdraw/withdrawable-amount': 2.5,
74511
+ 'v5/asset/withdraw/withdrawable-amount': 5,
74470
74512
  // user
74471
74513
  'v5/user/query-sub-members': 5,
74472
74514
  'v5/user/query-api': 5,
74473
- 'v5/user/get-member-type': 2.5,
74474
- 'v5/user/aff-customer-info': 2.5,
74515
+ 'v5/user/get-member-type': 5,
74516
+ 'v5/user/aff-customer-info': 5,
74475
74517
  // spot leverage token
74476
74518
  'v5/spot-lever-token/order-record': 1,
74477
74519
  // spot margin trade
74478
- 'v5/spot-margin-trade/state': 2.5,
74520
+ 'v5/spot-margin-trade/state': 5,
74479
74521
  'v5/spot-cross-margin-trade/loan-info': 1,
74480
74522
  'v5/spot-cross-margin-trade/account': 1,
74481
74523
  'v5/spot-cross-margin-trade/orders': 1,
74482
74524
  'v5/spot-cross-margin-trade/repay-history': 1,
74483
74525
  // institutional lending
74484
- 'v5/ins-loan/loan-order': 2.5,
74485
- 'v5/ins-loan/repaid-history': 2.5,
74486
- 'v5/ins-loan/ltv-convert': 2.5,
74526
+ 'v5/ins-loan/loan-order': 5,
74527
+ 'v5/ins-loan/repaid-history': 5,
74528
+ 'v5/ins-loan/ltv-convert': 5,
74487
74529
  // c2c lending
74488
- 'v5/lending/info': 2.5,
74489
- 'v5/lending/history-order': 2.5,
74490
- 'v5/lending/account': 2.5,
74530
+ 'v5/lending/info': 5,
74531
+ 'v5/lending/history-order': 5,
74532
+ 'v5/lending/account': 5,
74491
74533
  // broker
74492
- 'v5/broker/earning-record': 2.5,
74534
+ 'v5/broker/earning-record': 5,
74493
74535
  },
74494
74536
  'post': {
74495
74537
  // inverse swap
@@ -74555,17 +74597,17 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74555
74597
  'spot/v3/private/cross-margin-repay': 10,
74556
74598
  // account
74557
74599
  'asset/v1/private/transfer': 150,
74558
- 'asset/v3/private/transfer/inter-transfer': 2.5,
74600
+ 'asset/v3/private/transfer/inter-transfer': 150,
74559
74601
  'asset/v1/private/sub-member/transfer': 150,
74560
74602
  'asset/v1/private/withdraw': 50,
74561
- 'asset/v3/private/withdraw/create': 1,
74603
+ 'asset/v3/private/withdraw/create': 300,
74562
74604
  'asset/v1/private/withdraw/cancel': 50,
74563
- 'asset/v3/private/withdraw/cancel': 0.84,
74605
+ 'asset/v3/private/withdraw/cancel': 50,
74564
74606
  'asset/v1/private/transferable-subs/save': 3000,
74565
74607
  'asset/v1/private/universal/transfer': 1500,
74566
- 'asset/v3/private/transfer/sub-member-transfer': 2.5,
74567
- 'asset/v3/private/transfer/transfer-sub-member-save': 2.5,
74568
- 'asset/v3/private/transfer/universal-transfer': 2.5,
74608
+ 'asset/v3/private/transfer/sub-member-transfer': 150,
74609
+ 'asset/v3/private/transfer/transfer-sub-member-save': 150,
74610
+ 'asset/v3/private/transfer/universal-transfer': 10,
74569
74611
  'user/v3/private/create-sub-member': 10,
74570
74612
  'user/v3/private/create-sub-api': 10,
74571
74613
  'user/v3/private/update-api': 10,
@@ -74604,12 +74646,12 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74604
74646
  'perpetual/usdc/openapi/public/v1/risk-limit/list': 2.5,
74605
74647
  'perpetual/usdc/openapi/private/v1/position/set-risk-limit': 2.5,
74606
74648
  'perpetual/usdc/openapi/private/v1/predicted-funding': 2.5,
74607
- 'contract/v3/private/copytrading/order/create': 2.5,
74608
- 'contract/v3/private/copytrading/order/cancel': 2.5,
74609
- 'contract/v3/private/copytrading/order/close': 2.5,
74610
- 'contract/v3/private/copytrading/position/close': 2.5,
74611
- 'contract/v3/private/copytrading/position/set-leverage': 2.5,
74612
- 'contract/v3/private/copytrading/wallet/transfer': 2.5,
74649
+ 'contract/v3/private/copytrading/order/create': 30,
74650
+ 'contract/v3/private/copytrading/order/cancel': 30,
74651
+ 'contract/v3/private/copytrading/order/close': 30,
74652
+ 'contract/v3/private/copytrading/position/close': 40,
74653
+ 'contract/v3/private/copytrading/position/set-leverage': 40,
74654
+ 'contract/v3/private/copytrading/wallet/transfer': 25,
74613
74655
  'contract/v3/private/copytrading/order/trading-stop': 2.5,
74614
74656
  'contract/v3/private/order/create': 1,
74615
74657
  'contract/v3/private/order/cancel': 1,
@@ -74624,13 +74666,13 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74624
74666
  'contract/v3/private/position/set-risk-limit': 1,
74625
74667
  'contract/v3/private/account/setMarginMode': 1,
74626
74668
  // derivative
74627
- 'unified/v3/private/order/create': 2.5,
74628
- 'unified/v3/private/order/replace': 2.5,
74629
- 'unified/v3/private/order/cancel': 2.5,
74630
- 'unified/v3/private/order/create-batch': 2.5,
74631
- 'unified/v3/private/order/replace-batch': 2.5,
74632
- 'unified/v3/private/order/cancel-batch': 2.5,
74633
- 'unified/v3/private/order/cancel-all': 2.5,
74669
+ 'unified/v3/private/order/create': 30,
74670
+ 'unified/v3/private/order/replace': 30,
74671
+ 'unified/v3/private/order/cancel': 30,
74672
+ 'unified/v3/private/order/create-batch': 30,
74673
+ 'unified/v3/private/order/replace-batch': 30,
74674
+ 'unified/v3/private/order/cancel-batch': 30,
74675
+ 'unified/v3/private/order/cancel-all': 30,
74634
74676
  'unified/v3/private/position/set-leverage': 2.5,
74635
74677
  'unified/v3/private/position/tpsl/switch-mode': 2.5,
74636
74678
  'unified/v3/private/position/set-risk-limit': 2.5,
@@ -74644,34 +74686,34 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74644
74686
  'fht/compliance/tax/v3/private/url': 50,
74645
74687
  // v5
74646
74688
  // trade
74647
- 'v5/order/create': 5,
74689
+ 'v5/order/create': 2.5,
74648
74690
  'v5/order/amend': 5,
74649
- 'v5/order/cancel': 5,
74650
- 'v5/order/cancel-all': 5,
74691
+ 'v5/order/cancel': 2.5,
74692
+ 'v5/order/cancel-all': 50,
74651
74693
  'v5/order/create-batch': 5,
74652
74694
  'v5/order/amend-batch': 5,
74653
74695
  'v5/order/cancel-batch': 5,
74654
- 'v5/order/disconnected-cancel-all': 2.5,
74696
+ 'v5/order/disconnected-cancel-all': 5,
74655
74697
  // position
74656
74698
  'v5/position/set-leverage': 5,
74657
- 'v5/position/switch-isolated': 2.5,
74699
+ 'v5/position/switch-isolated': 5,
74658
74700
  'v5/position/set-tpsl-mode': 5,
74659
- 'v5/position/switch-mode': 2.5,
74701
+ 'v5/position/switch-mode': 5,
74660
74702
  'v5/position/set-risk-limit': 5,
74661
74703
  'v5/position/trading-stop': 5,
74662
- 'v5/position/set-auto-add-margin': 2.5,
74663
- 'v5/position/add-margin': 2.5,
74664
- 'v5/position/confirm-pending-mmr': 2.5,
74704
+ 'v5/position/set-auto-add-margin': 5,
74705
+ 'v5/position/add-margin': 5,
74706
+ 'v5/position/confirm-pending-mmr': 5,
74665
74707
  // account
74666
- 'v5/account/upgrade-to-uta': 2.5,
74667
- 'v5/account/set-margin-mode': 2.5,
74668
- 'v5/account/mmp-modify': 2.5,
74669
- 'v5/account/mmp-reset': 2.5,
74708
+ 'v5/account/upgrade-to-uta': 5,
74709
+ 'v5/account/set-margin-mode': 5,
74710
+ 'v5/account/mmp-modify': 5,
74711
+ 'v5/account/mmp-reset': 5,
74670
74712
  // asset
74671
74713
  'v5/asset/transfer/inter-transfer': 150,
74672
74714
  'v5/asset/transfer/save-transfer-sub-member': 150,
74673
74715
  'v5/asset/transfer/universal-transfer': 10,
74674
- 'v5/asset/deposit/deposit-to-account': 2.5,
74716
+ 'v5/asset/deposit/deposit-to-account': 5,
74675
74717
  'v5/asset/withdraw/create': 300,
74676
74718
  'v5/asset/withdraw/cancel': 50,
74677
74719
  // user
@@ -74686,15 +74728,15 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
74686
74728
  'v5/spot-lever-token/purchase': 2.5,
74687
74729
  'v5/spot-lever-token/redeem': 2.5,
74688
74730
  // spot margin trade
74689
- 'v5/spot-margin-trade/switch-mode': 2.5,
74690
- 'v5/spot-margin-trade/set-leverage': 2.5,
74731
+ 'v5/spot-margin-trade/switch-mode': 5,
74732
+ 'v5/spot-margin-trade/set-leverage': 5,
74691
74733
  'v5/spot-cross-margin-trade/loan': 2.5,
74692
74734
  'v5/spot-cross-margin-trade/repay': 2.5,
74693
74735
  'v5/spot-cross-margin-trade/switch': 2.5,
74694
74736
  // c2c lending
74695
- 'v5/lending/purchase': 2.5,
74696
- 'v5/lending/redeem': 2.5,
74697
- 'v5/lending/redeem-cancel': 2.5,
74737
+ 'v5/lending/purchase': 5,
74738
+ 'v5/lending/redeem': 5,
74739
+ 'v5/lending/redeem-cancel': 5,
74698
74740
  },
74699
74741
  'delete': {
74700
74742
  // spot
@@ -78233,7 +78275,10 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
78233
78275
  // Valid for option only.
78234
78276
  // 'orderIv': '0', // Implied volatility; parameters are passed according to the real value; for example, for 10%, 0.1 is passed
78235
78277
  };
78236
- if (market['linear']) {
78278
+ if (market['spot']) {
78279
+ request['category'] = 'spot';
78280
+ }
78281
+ else if (market['linear']) {
78237
78282
  request['category'] = 'linear';
78238
78283
  }
78239
78284
  else if (market['inverse']) {
@@ -111046,7 +111091,7 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
111046
111091
  'swap': true,
111047
111092
  'future': false,
111048
111093
  'option': false,
111049
- 'addMargin': false,
111094
+ 'addMargin': true,
111050
111095
  'cancelOrder': true,
111051
111096
  'cancelOrders': true,
111052
111097
  'createOrder': true,
@@ -111098,10 +111143,10 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
111098
111143
  'fetchTradingFees': false,
111099
111144
  'fetchTransfers': true,
111100
111145
  'fetchWithdrawals': true,
111101
- 'reduceMargin': false,
111146
+ 'reduceMargin': true,
111102
111147
  'setLeverage': true,
111103
111148
  'setMargin': false,
111104
- 'setMarginMode': false,
111149
+ 'setMarginMode': true,
111105
111150
  'setPositionMode': false,
111106
111151
  'transfer': true,
111107
111152
  'withdraw': true,
@@ -114843,6 +114888,88 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
114843
114888
  }
114844
114889
  return depositWithdrawFees;
114845
114890
  }
114891
+ async addMargin(symbol, amount, params = {}) {
114892
+ /**
114893
+ * @method
114894
+ * @name digifinex#addMargin
114895
+ * @description add margin to a position
114896
+ * @see https://docs.digifinex.com/en-ww/swap/v2/rest.html#positionmargin
114897
+ * @param {string} symbol unified market symbol
114898
+ * @param {float} amount amount of margin to add
114899
+ * @param {object} [params] extra parameters specific to the digifinex api endpoint
114900
+ * @param {string} params.side the position side: 'long' or 'short'
114901
+ * @returns {object} a [margin structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#margin-structure}
114902
+ */
114903
+ const side = this.safeString(params, 'side');
114904
+ this.checkRequiredArgument('addMargin', side, 'side', ['long', 'short']);
114905
+ return await this.modifyMarginHelper(symbol, amount, 1, params);
114906
+ }
114907
+ async reduceMargin(symbol, amount, params = {}) {
114908
+ /**
114909
+ * @method
114910
+ * @name digifinex#reduceMargin
114911
+ * @description remove margin from a position
114912
+ * @see https://docs.digifinex.com/en-ww/swap/v2/rest.html#positionmargin
114913
+ * @param {string} symbol unified market symbol
114914
+ * @param {float} amount the amount of margin to remove
114915
+ * @param {object} [params] extra parameters specific to the digifinex api endpoint
114916
+ * @param {string} params.side the position side: 'long' or 'short'
114917
+ * @returns {object} a [margin structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#margin-structure}
114918
+ */
114919
+ const side = this.safeString(params, 'side');
114920
+ this.checkRequiredArgument('reduceMargin', side, 'side', ['long', 'short']);
114921
+ return await this.modifyMarginHelper(symbol, amount, 2, params);
114922
+ }
114923
+ async modifyMarginHelper(symbol, amount, type, params = {}) {
114924
+ await this.loadMarkets();
114925
+ const side = this.safeString(params, 'side');
114926
+ const market = this.market(symbol);
114927
+ const request = {
114928
+ 'instrument_id': market['id'],
114929
+ 'amount': this.numberToString(amount),
114930
+ 'type': type,
114931
+ 'side': side,
114932
+ };
114933
+ const response = await this.privateSwapPostAccountPositionMargin(this.extend(request, params));
114934
+ //
114935
+ // {
114936
+ // "code": 0,
114937
+ // "data": {
114938
+ // "instrument_id": "BTCUSDTPERP",
114939
+ // "side": "long",
114940
+ // "type": 1,
114941
+ // "amount": "3.6834"
114942
+ // }
114943
+ // }
114944
+ //
114945
+ const code = this.safeInteger(response, 'code');
114946
+ const status = (code === 0) ? 'ok' : 'failed';
114947
+ const data = this.safeValue(response, 'data', {});
114948
+ return this.extend(this.parseMarginModification(data, market), {
114949
+ 'status': status,
114950
+ });
114951
+ }
114952
+ parseMarginModification(data, market = undefined) {
114953
+ //
114954
+ // {
114955
+ // "instrument_id": "BTCUSDTPERP",
114956
+ // "side": "long",
114957
+ // "type": 1,
114958
+ // "amount": "3.6834"
114959
+ // }
114960
+ //
114961
+ const marketId = this.safeString(data, 'instrument_id');
114962
+ const rawType = this.safeInteger(data, 'type');
114963
+ return {
114964
+ 'info': data,
114965
+ 'type': (rawType === 1) ? 'add' : 'reduce',
114966
+ 'amount': this.safeNumber(data, 'amount'),
114967
+ 'total': undefined,
114968
+ 'code': market['settle'],
114969
+ 'symbol': this.safeSymbol(marketId, market, undefined, 'swap'),
114970
+ 'status': undefined,
114971
+ };
114972
+ }
114846
114973
  async fetchFundingHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
114847
114974
  /**
114848
114975
  * @method
@@ -114909,6 +115036,30 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
114909
115036
  'amount': this.safeNumber(income, 'amount'),
114910
115037
  };
114911
115038
  }
115039
+ async setMarginMode(marginMode, symbol = undefined, params = {}) {
115040
+ /**
115041
+ * @method
115042
+ * @name digifinex#setMarginMode
115043
+ * @description set margin mode to 'cross' or 'isolated'
115044
+ * @see https://docs.digifinex.com/en-ww/swap/v2/rest.html#positionmode
115045
+ * @param {string} marginMode 'cross' or 'isolated'
115046
+ * @param {string} symbol unified market symbol
115047
+ * @param {object} [params] extra parameters specific to the digifinex api endpoint
115048
+ * @returns {object} response from the exchange
115049
+ */
115050
+ this.checkRequiredSymbol('setMarginMode', symbol);
115051
+ await this.loadMarkets();
115052
+ const market = this.market(symbol);
115053
+ marginMode = marginMode.toLowerCase();
115054
+ if (marginMode === 'cross') {
115055
+ marginMode = 'crossed';
115056
+ }
115057
+ const request = {
115058
+ 'instrument_id': market['id'],
115059
+ 'margin_mode': marginMode,
115060
+ };
115061
+ return await this.privateSwapPostAccountPositionMode(this.extend(request, params));
115062
+ }
114912
115063
  sign(path, api = [], method = 'GET', params = {}, headers = undefined, body = undefined) {
114913
115064
  const signed = api[0] === 'private';
114914
115065
  const endpoint = api[1];
@@ -132219,41 +132370,195 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
132219
132370
  },
132220
132371
  'networks': {
132221
132372
  // by displaynames
132222
- 'ALGO': 'ALGO',
132223
- 'ALGORAND': 'ALGO',
132224
- 'BEP20': 'BEP20',
132225
- 'BSC': 'BEP20',
132226
- 'ERC20': 'ERC20',
132227
- 'ETH': 'ERC20',
132228
- 'AVALANCHE': 'AVAXCCHAIN',
132229
- 'AVAX': 'AVAXCCHAIN',
132230
- 'HRC20': 'HECO',
132231
- 'HECO': 'HECO',
132232
- // 'HT': 'HECO', // HT is not acceptable networkcode for unification
132233
- 'TRC20': 'TRC20',
132234
- 'TRX': 'TRC20',
132235
- 'BTC': 'BTC',
132236
- 'BITCOIN': 'BTC',
132237
- 'ARBITRUM': 'ARB',
132238
- 'ARB': 'ARB',
132239
- 'SOLANA': 'SOL',
132240
- 'SOL': 'SOL',
132241
- 'SPL': 'SOL',
132242
- 'PRC20': 'PRC20',
132243
- 'POLYGON': 'PRC20',
132244
- 'MATIC': 'PRC20',
132245
- },
132246
- 'networksById': {
132247
- 'ALGO': 'ALGO',
132248
- 'BEP20': 'BEP20',
132249
- 'ERC20': 'ERC20',
132250
- 'AVAXCCHAIN': 'AVALANCHE',
132251
- 'HECO': 'HRC20',
132252
- 'TRC20': 'TRC20',
132373
+ 'TRC20': 'TRX',
132253
132374
  'BTC': 'BTC',
132254
- 'ARB': 'ARBITRUM',
132375
+ 'ERC20': 'ETH',
132255
132376
  'SOL': 'SOLANA',
132256
- 'PRC20': 'POLYGON',
132377
+ 'HRC20': 'HECO',
132378
+ 'BEP20': 'BSC',
132379
+ 'XMR': 'XMR',
132380
+ 'LTC': 'LTC',
132381
+ 'XRP': 'XRP',
132382
+ 'XLM': 'XLM',
132383
+ 'CRONOS': 'CRO',
132384
+ 'CRO': 'CRO',
132385
+ 'GLMR': 'GLMR',
132386
+ 'POLYGON': 'MATIC',
132387
+ 'MATIC': 'MATIC',
132388
+ 'BTT': 'BTT',
132389
+ 'CUBE': 'CUBE',
132390
+ 'IOST': 'IOST',
132391
+ 'NEO': 'NEO',
132392
+ 'KLAY': 'KLAY',
132393
+ 'EOS': 'EOS',
132394
+ 'THETA': 'THETA',
132395
+ 'NAS': 'NAS',
132396
+ 'NULS': 'NULS',
132397
+ 'QTUM': 'QTUM',
132398
+ 'FTM': 'FTM',
132399
+ 'CELO': 'CELO',
132400
+ 'DOGE': 'DOGE',
132401
+ 'DOGECHAIN': 'DOGECHAIN',
132402
+ 'NEAR': 'NEAR',
132403
+ 'STEP': 'STEP',
132404
+ 'BITCI': 'BITCI',
132405
+ 'CARDANO': 'ADA',
132406
+ 'ADA': 'ADA',
132407
+ 'ETC': 'ETC',
132408
+ 'LUK': 'LUK',
132409
+ 'MINEPLEX': 'MINEPLEX',
132410
+ 'DASH': 'DASH',
132411
+ 'ZEC': 'ZEC',
132412
+ 'IOTA': 'IOTA',
132413
+ 'NEON3': 'NEON3',
132414
+ 'XEM': 'XEM',
132415
+ 'HC': 'HC',
132416
+ 'LSK': 'LSK',
132417
+ 'DCR': 'DCR',
132418
+ 'BTG': 'BTG',
132419
+ 'STEEM': 'STEEM',
132420
+ 'BTS': 'BTS',
132421
+ 'ICX': 'ICX',
132422
+ 'WAVES': 'WAVES',
132423
+ 'CMT': 'CMT',
132424
+ 'BTM': 'BTM',
132425
+ 'VET': 'VET',
132426
+ 'XZC': 'XZC',
132427
+ 'ACT': 'ACT',
132428
+ 'SMT': 'SMT',
132429
+ 'BCD': 'BCD',
132430
+ 'WAX': 'WAX1',
132431
+ 'WICC': 'WICC',
132432
+ 'ELF': 'ELF',
132433
+ 'ZIL': 'ZIL',
132434
+ 'ELA': 'ELA',
132435
+ 'BCX': 'BCX',
132436
+ 'SBTC': 'SBTC',
132437
+ 'BIFI': 'BIFI',
132438
+ 'CTXC': 'CTXC',
132439
+ 'WAN': 'WAN',
132440
+ 'POLYX': 'POLYX',
132441
+ 'PAI': 'PAI',
132442
+ 'WTC': 'WTC',
132443
+ 'DGB': 'DGB',
132444
+ 'XVG': 'XVG',
132445
+ 'AAC': 'AAC',
132446
+ 'AE': 'AE',
132447
+ 'SEELE': 'SEELE',
132448
+ 'BCV': 'BCV',
132449
+ 'GRS': 'GRS',
132450
+ 'ARDR': 'ARDR',
132451
+ 'NANO': 'NANO',
132452
+ 'ZEN': 'ZEN',
132453
+ 'RBTC': 'RBTC',
132454
+ 'BSV': 'BSV',
132455
+ 'GAS': 'GAS',
132456
+ 'XTZ': 'XTZ',
132457
+ 'LAMB': 'LAMB',
132458
+ 'CVNT1': 'CVNT1',
132459
+ 'DOCK': 'DOCK',
132460
+ 'SC': 'SC',
132461
+ 'KMD': 'KMD',
132462
+ 'ETN': 'ETN',
132463
+ 'TOP': 'TOP',
132464
+ 'IRIS': 'IRIS',
132465
+ 'UGAS': 'UGAS',
132466
+ 'TT': 'TT',
132467
+ 'NEWTON': 'NEWTON',
132468
+ 'VSYS': 'VSYS',
132469
+ 'FSN': 'FSN',
132470
+ 'BHD': 'BHD',
132471
+ 'ONE': 'ONE',
132472
+ 'EM': 'EM',
132473
+ 'CKB': 'CKB',
132474
+ 'EOSS': 'EOSS',
132475
+ 'HIVE': 'HIVE',
132476
+ 'RVN': 'RVN',
132477
+ 'DOT': 'DOT',
132478
+ 'KSM': 'KSM',
132479
+ 'BAND': 'BAND',
132480
+ 'OEP4': 'OEP4',
132481
+ 'NBS': 'NBS',
132482
+ 'FIS': 'FIS',
132483
+ 'AR': 'AR',
132484
+ 'HBAR': 'HBAR',
132485
+ 'FIL': 'FIL',
132486
+ 'MASS': 'MASS',
132487
+ 'KAVA': 'KAVA',
132488
+ 'XYM': 'XYM',
132489
+ 'ENJ': 'ENJ',
132490
+ 'CRUST': 'CRUST',
132491
+ 'ICP': 'ICP',
132492
+ 'CSPR': 'CSPR',
132493
+ 'FLOW': 'FLOW',
132494
+ 'IOTX': 'IOTX',
132495
+ 'LAT': 'LAT',
132496
+ 'APT': 'APT',
132497
+ 'XCH': 'XCH',
132498
+ 'MINA': 'MINA',
132499
+ 'XEC': 'ECASH',
132500
+ 'XPRT': 'XPRT',
132501
+ 'CCA': 'ACA',
132502
+ 'AOTI': 'COTI',
132503
+ 'AKT': 'AKT',
132504
+ 'ARS': 'ARS',
132505
+ 'ASTR': 'ASTR',
132506
+ 'AZERO': 'AZERO',
132507
+ 'BLD': 'BLD',
132508
+ 'BRISE': 'BRISE',
132509
+ 'CORE': 'CORE',
132510
+ 'DESO': 'DESO',
132511
+ 'DFI': 'DFI',
132512
+ 'EGLD': 'EGLD',
132513
+ 'ERG': 'ERG',
132514
+ 'ETHF': 'ETHFAIR',
132515
+ 'ETHW': 'ETHW',
132516
+ 'EVMOS': 'EVMOS',
132517
+ 'FIO': 'FIO',
132518
+ 'FLR': 'FLR',
132519
+ 'FINSCHIA': 'FINSCHIA',
132520
+ 'KMA': 'KMA',
132521
+ 'KYVE': 'KYVE',
132522
+ 'MEV': 'MEV',
132523
+ 'MOVR': 'MOVR',
132524
+ 'NODL': 'NODL',
132525
+ 'OAS': 'OAS',
132526
+ 'OSMO': 'OSMO',
132527
+ 'PAYCOIN': 'PAYCOIN',
132528
+ 'POKT': 'POKT',
132529
+ 'PYG': 'PYG',
132530
+ 'REI': 'REI',
132531
+ 'SCRT': 'SCRT',
132532
+ 'SDN': 'SDN',
132533
+ 'SEI': 'SEI',
132534
+ 'SGB': 'SGB',
132535
+ 'SUI': 'SUI',
132536
+ 'SXP': 'SOLAR',
132537
+ 'SYS': 'SYS',
132538
+ 'TENET': 'TENET',
132539
+ 'TON': 'TON',
132540
+ 'UNQ': 'UNQ',
132541
+ 'UYU': 'UYU',
132542
+ 'WEMIX': 'WEMIX',
132543
+ 'XDC': 'XDC',
132544
+ 'XPLA': 'XPLA',
132545
+ // todo: below
132546
+ // 'LUNC': 'LUNC',
132547
+ // 'TERRA': 'TERRA', // tbd
132548
+ // 'LUNA': 'LUNA', tbd
132549
+ // 'FCT2': 'FCT2',
132550
+ // FIL-0X ?
132551
+ // 'COSMOS': 'ATOM1',
132552
+ // 'ATOM': 'ATOM1',
132553
+ // 'CRO': 'CRO',
132554
+ // 'OP': [ 'OPTIMISM', 'OPTIMISMETH' ]
132555
+ // 'ARB': ['ARB', 'ARBITRUMETH']
132556
+ // 'CHZ': [ 'CHZ', 'CZH' ],
132557
+ // todo: AVAXCCHAIN CCHAIN AVAX
132558
+ // 'ALGO': ['ALGO', 'ALGOUSDT']
132559
+ // 'ONT': [ 'ONT', 'ONTOLOGY' ],
132560
+ // 'BCC': 'BCC', BCH's somewhat chain
132561
+ // 'DBC1': 'DBC1',
132257
132562
  },
132258
132563
  // https://github.com/ccxt/ccxt/issues/5376
132259
132564
  'fetchOrdersByStatesMethod': 'spot_private_get_v1_order_orders',
@@ -134204,10 +134509,10 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
134204
134509
  for (let j = 0; j < chains.length; j++) {
134205
134510
  const chainEntry = chains[j];
134206
134511
  const uniqueChainId = this.safeString(chainEntry, 'chain'); // i.e. usdterc20, trc20usdt ...
134207
- const title = this.safeString(chainEntry, 'displayName');
134512
+ const title = this.safeString2(chainEntry, 'baseChain', 'displayName'); // baseChain and baseChainProtocol are together existent or inexistent in entries, but baseChain is preferred. when they are both inexistent, then we use generic displayName
134208
134513
  this.options['networkChainIdsByNames'][code][title] = uniqueChainId;
134209
134514
  this.options['networkNamesByChainIds'][uniqueChainId] = title;
134210
- const networkCode = this.networkIdToCode(title, code);
134515
+ const networkCode = this.networkIdToCode(uniqueChainId);
134211
134516
  minWithdraw = this.safeNumber(chainEntry, 'minWithdrawAmt');
134212
134517
  maxWithdraw = this.safeNumber(chainEntry, 'maxWithdrawAmt');
134213
134518
  const withdrawStatus = this.safeString(chainEntry, 'withdrawStatus');
@@ -134227,6 +134532,10 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
134227
134532
  'id': uniqueChainId,
134228
134533
  'network': networkCode,
134229
134534
  'limits': {
134535
+ 'deposit': {
134536
+ 'min': undefined,
134537
+ 'max': undefined,
134538
+ },
134230
134539
  'withdraw': {
134231
134540
  'min': minWithdraw,
134232
134541
  'max': maxWithdraw,
@@ -134257,6 +134566,10 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
134257
134566
  'min': minWithdraw,
134258
134567
  'max': maxWithdraw,
134259
134568
  },
134569
+ 'deposit': {
134570
+ 'min': undefined,
134571
+ 'max': undefined,
134572
+ },
134260
134573
  },
134261
134574
  'precision': this.parseNumber(minPrecision),
134262
134575
  'networks': networks,
@@ -134284,8 +134597,13 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
134284
134597
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError(this.id + ' networkCodeToId() - markets need to be loaded at first');
134285
134598
  }
134286
134599
  const uniqueNetworkIds = this.safeValue(this.options['networkChainIdsByNames'], currencyCode, {});
134287
- const networkTitle = super.networkCodeToId(networkCode);
134288
- return this.safeValue(uniqueNetworkIds, networkTitle, networkTitle);
134600
+ if (networkCode in uniqueNetworkIds) {
134601
+ return uniqueNetworkIds[networkCode];
134602
+ }
134603
+ else {
134604
+ const networkTitle = super.networkCodeToId(networkCode);
134605
+ return this.safeValue(uniqueNetworkIds, networkTitle, networkTitle);
134606
+ }
134289
134607
  }
134290
134608
  async fetchBalance(params = {}) {
134291
134609
  /**
@@ -136724,7 +137042,7 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
136724
137042
  'currency': code,
136725
137043
  'address': address,
136726
137044
  'tag': tag,
136727
- 'network': this.networkIdToCode(networkId, code),
137045
+ 'network': this.networkIdToCode(networkId),
136728
137046
  'note': note,
136729
137047
  'info': depositAddress,
136730
137048
  };
@@ -136999,7 +137317,7 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
136999
137317
  'txid': txHash,
137000
137318
  'timestamp': timestamp,
137001
137319
  'datetime': this.iso8601(timestamp),
137002
- 'network': this.networkIdToCode(networkId, code),
137320
+ 'network': this.networkIdToCode(networkId),
137003
137321
  'address': this.safeString(transaction, 'address'),
137004
137322
  'addressTo': undefined,
137005
137323
  'addressFrom': undefined,
@@ -146386,8 +146704,10 @@ class kraken extends _abstract_kraken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
146386
146704
  for (let i = 0; i < currencyIds.length; i++) {
146387
146705
  const currencyId = currencyIds[i];
146388
146706
  const code = this.safeCurrencyCode(currencyId);
146707
+ const balance = this.safeValue(balances, currencyId, {});
146389
146708
  const account = this.account();
146390
- account['total'] = this.safeString(balances, currencyId);
146709
+ account['used'] = this.safeString(balance, 'hold_trade');
146710
+ account['total'] = this.safeString(balance, 'balance');
146391
146711
  result[code] = account;
146392
146712
  }
146393
146713
  return this.safeBalance(result);
@@ -146397,19 +146717,24 @@ class kraken extends _abstract_kraken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
146397
146717
  * @method
146398
146718
  * @name kraken#fetchBalance
146399
146719
  * @description query for balance and get the amount of funds available for trading or funds locked in orders
146400
- * @see https://docs.kraken.com/rest/#tag/Account-Data/operation/getAccountBalance
146720
+ * @see https://docs.kraken.com/rest/#tag/Account-Data/operation/getExtendedBalance
146401
146721
  * @param {object} [params] extra parameters specific to the kraken api endpoint
146402
146722
  * @returns {object} a [balance structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#balance-structure}
146403
146723
  */
146404
146724
  await this.loadMarkets();
146405
- const response = await this.privatePostBalance(params);
146725
+ const response = await this.privatePostBalanceEx(params);
146406
146726
  //
146407
146727
  // {
146408
- // "error":[],
146409
- // "result":{
146410
- // "ZUSD":"58.8649",
146411
- // "KFEE":"4399.43",
146412
- // "XXBT":"0.0000034506",
146728
+ // "error": [],
146729
+ // "result": {
146730
+ // "ZUSD": {
146731
+ // "balance": 25435.21,
146732
+ // "hold_trade": 8249.76
146733
+ // },
146734
+ // "XXBT": {
146735
+ // "balance": 1.2435,
146736
+ // "hold_trade": 0.8423
146737
+ // }
146413
146738
  // }
146414
146739
  // }
146415
146740
  //
@@ -150256,11 +150581,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
150256
150581
  'id': 'kucoin',
150257
150582
  'name': 'KuCoin',
150258
150583
  'countries': ['SC'],
150259
- // note "only some endpoints are rate-limited"
150260
- // so I set the 'ratelimit' on those which supposedly 'arent ratelimited'
150261
- // to the limit of the cheapest endpoint
150262
- // 60 requests in 3 seconds = 20 requests per second => ( 1000ms / 20 ) = 50 ms between requests on average
150263
- 'rateLimit': 50,
150584
+ 'rateLimit': 10,
150264
150585
  'version': 'v2',
150265
150586
  'certified': true,
150266
150587
  'pro': true,
@@ -150289,7 +150610,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
150289
150610
  'fetchBorrowInterest': true,
150290
150611
  'fetchBorrowRate': false,
150291
150612
  'fetchBorrowRateHistories': false,
150292
- 'fetchBorrowRateHistory': true,
150613
+ 'fetchBorrowRateHistory': false,
150293
150614
  'fetchBorrowRates': false,
150294
150615
  'fetchClosedOrders': true,
150295
150616
  'fetchCurrencies': true,
@@ -150350,13 +150671,6 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
150350
150671
  'futuresPublic': 'https://api-futures.kucoin.com',
150351
150672
  'webExchange': 'https://kucoin.com/_api',
150352
150673
  },
150353
- 'test': {
150354
- 'public': 'https://openapi-sandbox.kucoin.com',
150355
- 'private': 'https://openapi-sandbox.kucoin.com',
150356
- 'futuresPrivate': 'https://api-sandbox-futures.kucoin.com',
150357
- 'futuresPublic': 'https://api-sandbox-futures.kucoin.com',
150358
- 'webExchange': 'https://kucoin.com/_api',
150359
- },
150360
150674
  'www': 'https://www.kucoin.com',
150361
150675
  'doc': [
150362
150676
  'https://docs.kucoin.com',
@@ -150368,205 +150682,229 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
150368
150682
  'password': true,
150369
150683
  },
150370
150684
  'api': {
150685
+ // level VIP0
150686
+ // Spot => 3000/30s => 100/s
150687
+ // Weight = x => 100/(100/x) = x
150688
+ // Futures Management Public => 2000/30s => 200/3/s
150689
+ // Weight = x => 100/(200/3/x) = x*1.5
150371
150690
  'public': {
150372
150691
  'get': {
150373
- 'timestamp': 1,
150374
- 'status': 1,
150375
- 'symbols': 1,
150376
- 'markets': 1,
150377
- 'market/allTickers': 1,
150378
- 'market/orderbook/level{level}_{limit}': 1,
150379
- 'market/orderbook/level2_20': 1,
150380
- 'market/orderbook/level2_100': 1,
150381
- 'market/histories': 1,
150382
- 'market/candles': 1,
150383
- 'market/stats': 1,
150384
- 'currencies': 1,
150385
- 'currencies/{currency}': 1,
150386
- 'prices': 1,
150387
- 'mark-price/{symbol}/current': 1,
150388
- 'margin/config': 1,
150389
- 'margin/trade/last': 1,
150692
+ // spot trading
150693
+ 'currencies': 4.5,
150694
+ 'currencies/{currency}': 4.5,
150695
+ 'symbols': 6,
150696
+ 'market/orderbook/level1': 3,
150697
+ 'market/allTickers': 22.5,
150698
+ 'market/stats': 22.5,
150699
+ 'markets': 4.5,
150700
+ 'market/orderbook/level{level}_{limit}': 6,
150701
+ 'market/orderbook/level2_20': 3,
150702
+ 'market/orderbook/level2_100': 6,
150703
+ 'market/histories': 4.5,
150704
+ 'market/candles': 4.5,
150705
+ 'prices': 4.5,
150706
+ 'timestamp': 4.5,
150707
+ 'status': 4.5,
150708
+ // margin trading
150709
+ 'mark-price/{symbol}/current': 3,
150710
+ 'margin/config': 25, // 25SW
150390
150711
  },
150391
150712
  'post': {
150392
- 'bullet-public': 1,
150713
+ // ws
150714
+ 'bullet-public': 15, // 10PW
150393
150715
  },
150394
150716
  },
150395
150717
  'private': {
150396
150718
  'get': {
150397
- 'market/orderbook/level{level}': 1,
150398
- 'market/orderbook/level2': { 'v3': 2 },
150399
- 'market/orderbook/level3': 1,
150400
- 'accounts': 1,
150401
- 'accounts/{accountId}': 1,
150402
- // 'accounts/{accountId}/ledgers': 1, Deprecated endpoint
150403
- 'accounts/ledgers': 3.333,
150404
- 'accounts/{accountId}/holds': 1,
150405
- 'accounts/transferable': 1,
150406
- 'base-fee': 1,
150407
- 'sub/user': 1,
150408
- 'user-info': 1,
150409
- 'sub/api-key': 1,
150410
- 'sub-accounts': 1,
150411
- 'sub-accounts/{subUserId}': 1,
150412
- 'deposit-addresses': 1,
150413
- 'deposits': 10,
150414
- 'hist-deposits': 10,
150415
- // 'hist-orders': 1, Deprecated endpoint
150416
- 'hist-withdrawals': 10,
150417
- 'withdrawals': 10,
150418
- 'withdrawals/quotas': 1,
150419
- 'orders': 2,
150420
- 'order/client-order/{clientOid}': 1,
150421
- 'orders/{orderId}': 1,
150422
- 'limit/orders': 1,
150423
- 'fills': 6.66667,
150424
- 'limit/fills': 1,
150425
- 'isolated/accounts': 2,
150426
- 'isolated/account/{symbol}': 2,
150427
- 'isolated/borrow/outstanding': 2,
150428
- 'isolated/borrow/repaid': 2,
150429
- 'isolated/symbols': 2,
150430
- 'margin/account': 1,
150431
- 'margin/borrow': 1,
150432
- 'margin/borrow/outstanding': 1,
150433
- 'margin/borrow/repaid': 1,
150434
- 'margin/lend/active': 1,
150435
- 'margin/lend/done': 1,
150436
- 'margin/lend/trade/unsettled': 1,
150437
- 'margin/lend/trade/settled': 1,
150438
- 'margin/lend/assets': 1,
150439
- 'margin/market': 1,
150440
- 'stop-order/{orderId}': 1,
150441
- 'stop-order': 1,
150442
- 'stop-order/queryOrderByClientOid': 1,
150443
- 'trade-fees': 1.3333,
150444
- 'hf/accounts/ledgers': 3.33,
150719
+ // account
150720
+ 'user-info': 30,
150721
+ 'accounts': 7.5,
150722
+ 'accounts/{accountId}': 7.5,
150723
+ 'accounts/ledgers': 3,
150724
+ 'hf/accounts/ledgers': 2,
150725
+ 'hf/margin/account/ledgers': 2,
150726
+ 'transaction-history': 3,
150727
+ 'sub/user': 30,
150728
+ 'sub-accounts/{subUserId}': 22.5,
150729
+ 'sub-accounts': 30,
150730
+ 'sub/api-key': 30,
150731
+ // funding
150732
+ 'margin/account': 40,
150733
+ 'margin/accounts': 15,
150734
+ 'isolated/accounts': 15,
150735
+ 'deposit-addresses': 7.5,
150736
+ 'deposits': 7.5,
150737
+ 'hist-deposits': 7.5,
150738
+ 'withdrawals': 30,
150739
+ 'hist-withdrawals': 30,
150740
+ 'withdrawals/quotas': 30,
150741
+ 'accounts/transferable': 30,
150742
+ 'transfer-list': 30,
150743
+ 'base-fee': 3,
150744
+ 'trade-fees': 3,
150745
+ // spot trading
150746
+ 'market/orderbook/level{level}': 3,
150747
+ 'market/orderbook/level2': 3,
150748
+ 'market/orderbook/level3': 3,
150445
150749
  'hf/orders/active': 2,
150446
- 'hf/orders/active/symbols': 20,
150750
+ 'hf/orders/active/symbols': 2,
150447
150751
  'hf/orders/done': 2,
150448
- 'hf/orders/{orderId}': 1,
150752
+ 'hf/orders/{orderId}': 2,
150449
150753
  'hf/orders/client-order/{clientOid}': 2,
150450
- 'hf/fills': 6.67,
150451
- 'margin/repay': 1,
150452
- 'project/list': 1,
150453
- 'project/marketInterestRate': 1,
150454
- 'redeem/orders': 1,
150455
- 'purchase/orders': 1,
150754
+ 'hf/orders/dead-cancel-all/query': 2,
150755
+ 'hf/fills': 2,
150756
+ 'orders': 2,
150757
+ 'limit/orders': 3,
150758
+ 'orders/{orderId}': 2,
150759
+ 'order/client-order/{clientOid}': 3,
150760
+ 'fills': 10,
150761
+ 'limit/fills': 20,
150762
+ 'stop-order': 8,
150763
+ 'stop-order/{orderId}': 3,
150764
+ 'stop-order/queryOrderByClientOid': 3,
150765
+ // margin trading
150766
+ 'hf/margin/orders/active': 4,
150767
+ 'hf/margin/orders/done': 10,
150768
+ 'hf/margin/orders/{orderId}': 4,
150769
+ 'hf/margin/orders/client-order/{clientOid}': 5,
150770
+ 'hf/margin/fills': 5,
150771
+ 'etf/info': 25,
150772
+ 'risk/limit/strategy': 20,
150773
+ 'isolated/symbols': 20,
150774
+ 'isolated/account/{symbol}': 50,
150775
+ 'margin/borrow': 15,
150776
+ 'margin/repay': 15,
150777
+ 'project/list': 10,
150778
+ 'project/marketInterestRate': 7.5,
150779
+ 'redeem/orders': 10,
150780
+ 'purchase/orders': 10, // 10SW
150456
150781
  },
150457
150782
  'post': {
150458
- 'accounts': 1,
150459
- 'accounts/inner-transfer': { 'v2': 1 },
150460
- 'accounts/sub-transfer': { 'v2': 25 },
150461
- 'deposit-addresses': 1,
150462
- 'withdrawals': 1,
150463
- 'orders': 4,
150464
- 'orders/test': 4,
150465
- 'orders/multi': 20,
150466
- 'isolated/borrow': 2,
150467
- 'isolated/repay/all': 2,
150468
- 'isolated/repay/single': 2,
150469
- 'margin/borrow': 1,
150470
- 'margin/order': 1,
150471
- 'margin/order/test': 1,
150472
- 'margin/repay/all': 1,
150473
- 'margin/repay/single': 1,
150474
- 'margin/lend': 1,
150475
- 'margin/toggle-auto-lend': 1,
150476
- 'bullet-private': 1,
150477
- 'stop-order': 1,
150478
- 'sub/user': 1,
150479
- 'sub/api-key': 1,
150480
- 'sub/api-key/update': 1,
150481
- 'hf/orders': 0.4,
150482
- 'hf/orders/sync': 1.33,
150483
- 'hf/orders/multi': 20,
150484
- 'hf/orders/multi/sync': 20,
150485
- 'hf/orders/alter': 1,
150486
- 'margin/repay': 1,
150487
- 'purchase': 1,
150488
- 'redeem': 1,
150489
- 'lend/purchase/update': 1,
150783
+ // account
150784
+ 'sub/user/created': 22.5,
150785
+ 'sub/api-key': 30,
150786
+ 'sub/api-key/update': 45,
150787
+ // funding
150788
+ 'deposit-addresses': 30,
150789
+ 'withdrawals': 7.5,
150790
+ 'accounts/universal-transfer': 6,
150791
+ 'accounts/sub-transfer': 45,
150792
+ 'accounts/inner-transfer': 15,
150793
+ 'transfer-out': 30,
150794
+ 'transfer-in': 30,
150795
+ // spot trading
150796
+ 'hf/orders': 1,
150797
+ 'hf/orders/test': 1,
150798
+ 'hf/orders/sync': 1,
150799
+ 'hf/orders/multi': 1,
150800
+ 'hf/orders/multi/sync': 1,
150801
+ 'hf/orders/alter': 3,
150802
+ 'hf/orders/dead-cancel-all': 2,
150803
+ 'orders': 2,
150804
+ 'orders/test': 2,
150805
+ 'orders/multi': 3,
150806
+ 'stop-order': 2,
150807
+ // margin trading
150808
+ 'hf/margin/order': 5,
150809
+ 'hf/margin/order/test': 5,
150810
+ 'margin/order': 5,
150811
+ 'margin/order/test': 5,
150812
+ 'margin/borrow': 15,
150813
+ 'margin/repay': 10,
150814
+ 'purchase': 15,
150815
+ 'redeem': 15,
150816
+ 'lend/purchase/update': 10,
150817
+ // ws
150818
+ 'bullet-private': 10, // 10SW
150490
150819
  },
150491
150820
  'delete': {
150492
- 'withdrawals/{withdrawalId}': 1,
150821
+ // account
150822
+ 'sub/api-key': 45,
150823
+ // funding
150824
+ 'withdrawals/{withdrawalId}': 30,
150825
+ // spot trading
150826
+ 'hf/orders/{orderId}': 1,
150827
+ 'hf/orders/sync/{orderId}': 1,
150828
+ 'hf/orders/client-order/{clientOid}': 1,
150829
+ 'hf/orders/sync/client-order/{clientOid}': 1,
150830
+ 'hf/orders/cancel/{orderId}': 2,
150831
+ 'hf/orders': 2,
150832
+ 'orders/{orderId}': 3,
150833
+ 'order/client-order/{clientOid}': 5,
150493
150834
  'orders': 20,
150494
- 'order/client-order/{clientOid}': 1,
150495
- 'orders/{orderId}': 1,
150496
- 'margin/lend/{orderId}': 1,
150497
- 'stop-order/cancelOrderByClientOid': 1,
150498
- 'stop-order/{orderId}': 1,
150499
- 'stop-order/cancel': 1,
150500
- 'sub/api-key': 1,
150501
- 'hf/orders/{orderId}': 0.4,
150502
- 'hf/orders/sync/{orderId}': 0.4,
150503
- 'hf/orders/client-order/{clientOid}': 0.4,
150504
- 'hf/orders/sync/client-order/{clientOid}': 0.4,
150505
- 'hf/orders/cancel/{orderId}': 1,
150506
- 'hf/orders': 20, // 3 times/3s = 1/s => cost = 20 / 1 = 20
150835
+ 'stop-order/{orderId}': 3,
150836
+ 'stop-order/cancelOrderByClientOid': 5,
150837
+ 'stop-order/cancel': 3,
150838
+ // margin trading
150839
+ 'hf/margin/orders/{orderId}': 5,
150840
+ 'hf/margin/orders/client-order/{clientOid}': 5,
150841
+ 'hf/margin/orders': 10, // 10SW
150507
150842
  },
150508
150843
  },
150509
150844
  'futuresPublic': {
150510
- // cheapest futures 'limited' endpoint is 40 requests per 3 seconds = 14.333 per second => cost = 20/14.333 = 1.3953
150511
150845
  'get': {
150512
- 'contracts/active': 1.3953,
150513
- 'contracts/{symbol}': 1.3953,
150514
- 'ticker': 1.3953,
150515
- 'level2/snapshot': 2,
150516
- 'level2/depth20': 1.3953,
150517
- 'level2/depth100': 1.3953,
150846
+ 'contracts/active': 4.5,
150847
+ 'contracts/{symbol}': 4.5,
150848
+ 'ticker': 3,
150849
+ 'level2/snapshot': 4.5,
150850
+ 'level2/depth20': 7.5,
150851
+ 'level2/depth100': 15,
150852
+ 'trade/history': 7.5,
150853
+ 'kline/query': 4.5,
150854
+ 'interest/query': 7.5,
150855
+ 'index/query': 3,
150856
+ 'mark-price/{symbol}/current': 4.5,
150857
+ 'premium/query': 4.5,
150858
+ 'funding-rate/{symbol}/current': 3,
150859
+ 'timestamp': 3,
150860
+ 'status': 6,
150861
+ // ?
150518
150862
  'level2/message/query': 1.3953,
150519
- 'level3/message/query': 1.3953,
150520
- 'level3/snapshot': 1.3953,
150521
- 'trade/history': 1.3953,
150522
- 'interest/query': 1.3953,
150523
- 'index/query': 1.3953,
150524
- 'mark-price/{symbol}/current': 1.3953,
150525
- 'premium/query': 1.3953,
150526
- 'funding-rate/{symbol}/current': 1.3953,
150527
- 'timestamp': 1.3953,
150528
- 'status': 1.3953,
150529
- 'kline/query': 1.3953,
150530
150863
  },
150531
150864
  'post': {
150532
- 'bullet-public': 1.3953,
150865
+ // ws
150866
+ 'bullet-public': 15, // 10PW
150533
150867
  },
150534
150868
  },
150535
150869
  'futuresPrivate': {
150536
150870
  'get': {
150537
- 'account-overview': 2,
150538
- 'transaction-history': 6.666,
150539
- 'deposit-address': 1.3953,
150540
- 'deposit-list': 1.3953,
150541
- 'withdrawals/quotas': 1.3953,
150542
- 'withdrawal-list': 1.3953,
150543
- 'transfer-list': 1.3953,
150544
- 'orders': 1.3953,
150545
- 'stopOrders': 1.3953,
150546
- 'recentDoneOrders': 1.3953,
150547
- 'orders/{orderId}': 1.3953,
150548
- 'orders/byClientOid': 1.3953,
150549
- 'fills': 6.666,
150550
- 'recentFills': 6.666,
150551
- 'openOrderStatistics': 1.3953,
150552
- 'position': 1.3953,
150553
- 'positions': 6.666,
150554
- 'funding-history': 6.666, // 9 requests per 3 seconds = 3 per second => cost = 20/3 = 6.666
150871
+ // account
150872
+ 'transaction-history': 3,
150873
+ // funding
150874
+ 'account-overview': 7.5,
150875
+ 'account-overview-all': 9,
150876
+ 'transfer-list': 30,
150877
+ // futures
150878
+ 'orders': 3,
150879
+ 'stopOrders': 9,
150880
+ 'recentDoneOrders': 7.5,
150881
+ 'orders/{orderId}': 7.5,
150882
+ 'orders/byClientOid': 7.5,
150883
+ 'fills': 7.5,
150884
+ 'recentFills': 4.5,
150885
+ 'openOrderStatistics': 15,
150886
+ 'position': 3,
150887
+ 'positions': 3,
150888
+ 'contracts/risk-limit/{symbol}': 7.5,
150889
+ 'funding-history': 7.5, // 5FW
150555
150890
  },
150556
150891
  'post': {
150557
- 'withdrawals': 1.3953,
150558
- 'transfer-out': 1.3953,
150559
- 'orders': 1.3953,
150560
- 'position/margin/auto-deposit-status': 1.3953,
150561
- 'position/margin/deposit-margin': 1.3953,
150562
- 'bullet-private': 1.3953,
150892
+ // funding
150893
+ 'transfer-out': 30,
150894
+ 'transfer-in': 30,
150895
+ // futures
150896
+ 'orders': 3,
150897
+ 'orders/test': 3,
150898
+ 'position/margin/auto-deposit-status': 6,
150899
+ 'position/margin/deposit-margin': 6,
150900
+ 'position/risk-limit-level/change': 6,
150901
+ // ws
150902
+ 'bullet-private': 15, // 10FW
150563
150903
  },
150564
150904
  'delete': {
150565
- 'withdrawals/{withdrawalId}': 1.3953,
150566
- 'cancel/transfer-out': 1.3953,
150567
- 'orders/{orderId}': 1.3953,
150568
- 'orders': 6.666,
150569
- 'stopOrders': 1.3953,
150905
+ 'orders/{orderId}': 1.5,
150906
+ 'orders': 45,
150907
+ 'stopOrders': 22.5, // 15FW
150570
150908
  },
150571
150909
  },
150572
150910
  'webExchange': {
@@ -150733,27 +151071,35 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
150733
151071
  'versions': {
150734
151072
  'public': {
150735
151073
  'GET': {
151074
+ // spot trading
150736
151075
  'currencies': 'v3',
150737
- 'currencies/{currency}': 'v2',
150738
- 'status': 'v1',
150739
- 'market/orderbook/level2_20': 'v1',
150740
- 'market/orderbook/level2_100': 'v1',
150741
- 'market/orderbook/level{level}_{limit}': 'v1',
151076
+ 'currencies/{currency}': 'v3',
151077
+ 'symbols': 'v2',
150742
151078
  },
150743
151079
  },
150744
151080
  'private': {
150745
151081
  'GET': {
151082
+ // account
151083
+ 'user-info': 'v2',
151084
+ 'hf/margin/account/ledgers': 'v3',
151085
+ 'sub/user': 'v2',
151086
+ 'sub-accounts': 'v2',
151087
+ // funding
151088
+ 'margin/accounts': 'v3',
151089
+ 'isolated/accounts': 'v3',
151090
+ // 'deposit-addresses': 'v2',
151091
+ 'deposit-addresses': 'v1',
151092
+ // spot trading
150746
151093
  'market/orderbook/level2': 'v3',
150747
151094
  'market/orderbook/level3': 'v3',
150748
151095
  'market/orderbook/level{level}': 'v3',
150749
- 'deposit-addresses': 'v1',
150750
- 'hf/accounts/ledgers': 'v1',
150751
- 'hf/orders/active': 'v1',
150752
- 'hf/orders/active/symbols': 'v1',
150753
- 'hf/orders/done': 'v1',
150754
- 'hf/orders/{orderId}': 'v1',
150755
- 'hf/orders/client-order/{clientOid}': 'v1',
150756
- 'hf/fills': 'v1',
151096
+ // margin trading
151097
+ 'hf/margin/orders/active': 'v3',
151098
+ 'hf/margin/orders/done': 'v3',
151099
+ 'hf/margin/orders/{orderId}': 'v3',
151100
+ 'hf/margin/orders/client-order/{clientOid}': 'v3',
151101
+ 'hf/margin/fills': 'v3',
151102
+ 'etf/info': 'v3',
150757
151103
  'margin/borrow': 'v3',
150758
151104
  'margin/repay': 'v3',
150759
151105
  'project/list': 'v3',
@@ -150762,14 +151108,17 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
150762
151108
  'purchase/orders': 'v3',
150763
151109
  },
150764
151110
  'POST': {
150765
- 'accounts/inner-transfer': 'v2',
151111
+ // account
151112
+ 'sub/user/created': 'v2',
151113
+ // funding
151114
+ 'accounts/universal-transfer': 'v3',
150766
151115
  'accounts/sub-transfer': 'v2',
150767
- 'accounts': 'v1',
150768
- 'hf/orders': 'v1',
150769
- 'hf/orders/sync': 'v1',
150770
- 'hf/orders/multi': 'v1',
150771
- 'hf/orders/multi/sync': 'v1',
150772
- 'hf/orders/alter': 'v1',
151116
+ 'accounts/inner-transfer': 'v2',
151117
+ 'transfer-out': 'v3',
151118
+ // spot trading
151119
+ // margin trading
151120
+ 'hf/margin/order': 'v3',
151121
+ 'hf/margin/order/test': 'v3',
150773
151122
  'margin/borrow': 'v3',
150774
151123
  'margin/repay': 'v3',
150775
151124
  'purchase': 'v3',
@@ -150777,26 +151126,18 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
150777
151126
  'lend/purchase/update': 'v3',
150778
151127
  },
150779
151128
  'DELETE': {
150780
- 'hf/orders/{orderId}': 'v1',
150781
- 'hf/orders/sync/{orderId}': 'v1',
150782
- 'hf/orders/client-order/{clientOid}': 'v1',
150783
- 'hf/orders/sync/client-order/{clientOid}': 'v1',
150784
- 'hf/orders/cancel/{orderId}': 'v1',
150785
- 'hf/orders': 'v1',
151129
+ // account
151130
+ // funding
151131
+ // spot trading
151132
+ 'hf/margin/orders/{orderId}': 'v3',
151133
+ 'hf/margin/orders/client-order/{clientOid}': 'v3',
151134
+ 'hf/margin/orders': 'v3',
151135
+ // margin trading
150786
151136
  },
150787
151137
  },
150788
151138
  'futuresPrivate': {
150789
- 'GET': {
150790
- 'account-overview': 'v1',
150791
- 'positions': 'v1',
150792
- },
150793
151139
  'POST': {
150794
- 'transfer-out': 'v2',
150795
- },
150796
- },
150797
- 'futuresPublic': {
150798
- 'GET': {
150799
- 'level3/snapshot': 'v2',
151140
+ 'transfer-out': 'v3',
150800
151141
  },
150801
151142
  },
150802
151143
  },
@@ -154114,42 +154455,6 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
154114
154455
  }
154115
154456
  return this.safeValue(config, 'cost', 1);
154116
154457
  }
154117
- async fetchBorrowRateHistory(code, since = undefined, limit = undefined, params = {}) {
154118
- /**
154119
- * @method
154120
- * @name kucoin#fetchBorrowRateHistory
154121
- * @description retrieves a history of a currencies borrow interest rate at specific time slots
154122
- * @see https://docs.kucoin.com/#margin-trade-data
154123
- * @param {string} code unified currency code
154124
- * @param {int} [since] timestamp for the earliest borrow rate
154125
- * @param {int} [limit] the maximum number of [borrow rate structures]
154126
- * @param {object} [params] extra parameters specific to the kucoin api endpoint
154127
- * @returns {object[]} an array of [borrow rate structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#borrow-rate-structure}
154128
- */
154129
- await this.loadMarkets();
154130
- const currency = this.currency(code);
154131
- const request = {
154132
- 'currency': currency['id'],
154133
- };
154134
- const response = await this.publicGetMarginTradeLast(this.extend(request, params));
154135
- //
154136
- // {
154137
- // "code": "200000",
154138
- // "data": [
154139
- // {
154140
- // "tradeId": "62db2dcaff219600012b56cd",
154141
- // "currency": "USDT",
154142
- // "size": "10",
154143
- // "dailyIntRate": "0.00003",
154144
- // "term": 7,
154145
- // "timestamp": 1658531274508488480
154146
- // },
154147
- // ]
154148
- // }
154149
- //
154150
- const data = this.safeValue(response, 'data', {});
154151
- return this.parseBorrowRateHistory(data, code, since, limit);
154152
- }
154153
154458
  parseBorrowRateHistory(response, code, since, limit) {
154154
154459
  const result = [];
154155
154460
  for (let i = 0; i < response.length; i++) {
@@ -154530,10 +154835,6 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
154530
154835
  let endpart = '';
154531
154836
  headers = (headers !== undefined) ? headers : {};
154532
154837
  let url = this.urls['api'][api];
154533
- const isSandbox = url.indexOf('sandbox') >= 0;
154534
- if (path === 'symbols' && !isSandbox) {
154535
- endpoint = '/api/v2/' + this.implodeParams(path, params);
154536
- }
154537
154838
  if (Object.keys(query).length) {
154538
154839
  if ((method === 'GET') || (method === 'DELETE')) {
154539
154840
  endpoint += '?' + this.rawencode(query);
@@ -188113,6 +188414,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
188113
188414
  'exceptions': {
188114
188415
  'exact': {
188115
188416
  // not documented
188417
+ '401': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
188116
188418
  '412': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
188117
188419
  '6001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
188118
188420
  // documented
@@ -236623,7 +236925,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
236623
236925
  const request = {
236624
236926
  'instType': uppercaseType,
236625
236927
  };
236626
- const orders = await this.subscribe('private', messageHash, channel, symbol, this.extend(request, params));
236928
+ const orders = await this.subscribe('private', messageHash, channel, undefined, this.extend(request, params));
236627
236929
  if (this.newUpdates) {
236628
236930
  limit = orders.getLimit(symbol, limit);
236629
236931
  }
@@ -279954,7 +280256,7 @@ SOFTWARE.
279954
280256
 
279955
280257
  //-----------------------------------------------------------------------------
279956
280258
  // this is updated by vss.js when building
279957
- const version = '4.1.34';
280259
+ const version = '4.1.36';
279958
280260
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
279959
280261
  //-----------------------------------------------------------------------------
279960
280262