ccxt 4.4.49 → 4.4.50

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 (122) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/alpaca.js +64 -1
  5. package/dist/cjs/src/base/Exchange.js +75 -0
  6. package/dist/cjs/src/binance.js +8 -4
  7. package/dist/cjs/src/bitfinex1.js +22 -22
  8. package/dist/cjs/src/blofin.js +2 -2
  9. package/dist/cjs/src/bybit.js +2 -2
  10. package/dist/cjs/src/coinex.js +4 -4
  11. package/dist/cjs/src/coinmetro.js +1 -1
  12. package/dist/cjs/src/defx.js +1 -1
  13. package/dist/cjs/src/ellipx.js +1 -0
  14. package/dist/cjs/src/gate.js +1 -1
  15. package/dist/cjs/src/hollaex.js +13 -19
  16. package/dist/cjs/src/hyperliquid.js +4 -4
  17. package/dist/cjs/src/krakenfutures.js +1 -1
  18. package/dist/cjs/src/kucoin.js +49 -71
  19. package/dist/cjs/src/kuna.js +1 -1
  20. package/dist/cjs/src/mexc.js +3 -2
  21. package/dist/cjs/src/okcoin.js +13 -5
  22. package/dist/cjs/src/okx.js +1 -1
  23. package/dist/cjs/src/paradex.js +1 -1
  24. package/dist/cjs/src/paymium.js +42 -0
  25. package/dist/cjs/src/pro/bitfinex1.js +4 -4
  26. package/dist/cjs/src/pro/bitvavo.js +1 -1
  27. package/dist/cjs/src/pro/blofin.js +1 -1
  28. package/dist/cjs/src/pro/bybit.js +1 -1
  29. package/dist/cjs/src/pro/coincatch.js +2 -2
  30. package/dist/cjs/src/pro/cryptocom.js +2 -2
  31. package/dist/cjs/src/pro/defx.js +1 -1
  32. package/dist/cjs/src/pro/exmo.js +1 -1
  33. package/dist/cjs/src/pro/gemini.js +1 -1
  34. package/dist/cjs/src/pro/hashkey.js +2 -2
  35. package/dist/cjs/src/pro/hyperliquid.js +2 -2
  36. package/dist/cjs/src/pro/kucoin.js +1 -1
  37. package/dist/cjs/src/pro/okx.js +1 -1
  38. package/dist/cjs/src/pro/oxfun.js +1 -1
  39. package/dist/cjs/src/probit.js +68 -1
  40. package/dist/cjs/src/timex.js +67 -0
  41. package/dist/cjs/src/tokocrypto.js +82 -5
  42. package/dist/cjs/src/tradeogre.js +55 -2
  43. package/dist/cjs/src/whitebit.js +11 -4
  44. package/examples/README.md +6 -0
  45. package/js/ccxt.d.ts +1 -1
  46. package/js/ccxt.js +1 -1
  47. package/js/src/abstract/binance.d.ts +1 -0
  48. package/js/src/abstract/binancecoinm.d.ts +1 -0
  49. package/js/src/abstract/binanceus.d.ts +1 -0
  50. package/js/src/abstract/binanceusdm.d.ts +1 -0
  51. package/js/src/alpaca.d.ts +35 -0
  52. package/js/src/alpaca.js +64 -1
  53. package/js/src/base/Exchange.js +75 -0
  54. package/js/src/binance.d.ts +1 -0
  55. package/js/src/binance.js +8 -4
  56. package/js/src/bitfinex1.d.ts +22 -22
  57. package/js/src/bitfinex1.js +22 -22
  58. package/js/src/blofin.d.ts +1 -1
  59. package/js/src/blofin.js +2 -2
  60. package/js/src/bybit.d.ts +2 -2
  61. package/js/src/bybit.js +2 -2
  62. package/js/src/coinex.js +4 -4
  63. package/js/src/coinmetro.d.ts +1 -1
  64. package/js/src/coinmetro.js +1 -1
  65. package/js/src/defx.d.ts +1 -1
  66. package/js/src/defx.js +1 -1
  67. package/js/src/ellipx.d.ts +1 -0
  68. package/js/src/ellipx.js +1 -0
  69. package/js/src/gate.d.ts +1 -1
  70. package/js/src/gate.js +1 -1
  71. package/js/src/hollaex.d.ts +2 -1
  72. package/js/src/hollaex.js +13 -19
  73. package/js/src/hyperliquid.d.ts +3 -3
  74. package/js/src/hyperliquid.js +4 -4
  75. package/js/src/krakenfutures.d.ts +1 -1
  76. package/js/src/krakenfutures.js +1 -1
  77. package/js/src/kucoin.js +49 -71
  78. package/js/src/kuna.d.ts +1 -1
  79. package/js/src/kuna.js +1 -1
  80. package/js/src/mexc.js +3 -2
  81. package/js/src/okcoin.js +13 -5
  82. package/js/src/okx.d.ts +1 -1
  83. package/js/src/okx.js +1 -1
  84. package/js/src/paradex.d.ts +1 -1
  85. package/js/src/paradex.js +1 -1
  86. package/js/src/paymium.js +42 -0
  87. package/js/src/pro/bitfinex1.d.ts +4 -4
  88. package/js/src/pro/bitfinex1.js +4 -4
  89. package/js/src/pro/bitvavo.d.ts +1 -1
  90. package/js/src/pro/bitvavo.js +1 -1
  91. package/js/src/pro/blofin.d.ts +1 -1
  92. package/js/src/pro/blofin.js +1 -1
  93. package/js/src/pro/bybit.d.ts +1 -1
  94. package/js/src/pro/bybit.js +1 -1
  95. package/js/src/pro/coincatch.d.ts +2 -2
  96. package/js/src/pro/coincatch.js +2 -2
  97. package/js/src/pro/cryptocom.d.ts +2 -2
  98. package/js/src/pro/cryptocom.js +2 -2
  99. package/js/src/pro/defx.d.ts +1 -1
  100. package/js/src/pro/defx.js +1 -1
  101. package/js/src/pro/exmo.d.ts +1 -1
  102. package/js/src/pro/exmo.js +1 -1
  103. package/js/src/pro/gemini.d.ts +1 -1
  104. package/js/src/pro/gemini.js +1 -1
  105. package/js/src/pro/hashkey.d.ts +2 -2
  106. package/js/src/pro/hashkey.js +2 -2
  107. package/js/src/pro/hyperliquid.d.ts +2 -2
  108. package/js/src/pro/hyperliquid.js +2 -2
  109. package/js/src/pro/kucoin.d.ts +1 -1
  110. package/js/src/pro/kucoin.js +1 -1
  111. package/js/src/pro/okx.d.ts +1 -1
  112. package/js/src/pro/okx.js +1 -1
  113. package/js/src/pro/oxfun.d.ts +1 -1
  114. package/js/src/pro/oxfun.js +1 -1
  115. package/js/src/probit.js +68 -1
  116. package/js/src/timex.js +67 -0
  117. package/js/src/tokocrypto.d.ts +2 -3
  118. package/js/src/tokocrypto.js +82 -5
  119. package/js/src/tradeogre.d.ts +4 -2
  120. package/js/src/tradeogre.js +55 -2
  121. package/js/src/whitebit.js +11 -4
  122. package/package.json +1 -1
@@ -1341,8 +1341,7 @@ class kucoin extends kucoin$1 {
1341
1341
  * @returns {object} an associative dictionary of currencies
1342
1342
  */
1343
1343
  async fetchCurrencies(params = {}) {
1344
- const promises = [];
1345
- promises.push(this.publicGetCurrencies(params));
1344
+ const response = await this.publicGetCurrencies(params);
1346
1345
  //
1347
1346
  // {
1348
1347
  // "code":"200000",
@@ -1368,92 +1367,40 @@ class kucoin extends kucoin$1 {
1368
1367
  // "isDepositEnabled":false,
1369
1368
  // "confirms":12,
1370
1369
  // "preConfirms":12,
1370
+ // "withdrawPrecision": 8,
1371
+ // "maxWithdraw": null,
1372
+ // "maxDeposit": null,
1373
+ // "needTag": false,
1371
1374
  // "contractAddress":"0xa6446d655a0c34bc4f05042ee88170d056cbaf45",
1372
1375
  // "depositFeeRate": "0.001", // present for some currencies/networks
1373
1376
  // }
1374
1377
  // ]
1375
1378
  // },
1376
- // }
1377
- //
1378
- promises.push(this.fetchWebEndpoint('fetchCurrencies', 'webExchangeGetCurrencyCurrencyChainInfo', true));
1379
- //
1380
- // {
1381
- // "success": true,
1382
- // "code": "200",
1383
- // "msg": "success",
1384
- // "retry": false,
1385
- // "data": [
1386
- // {
1387
- // "status": "enabled",
1388
- // "currency": "BTC",
1389
- // "isChainEnabled": "true",
1390
- // "chain": "btc",
1391
- // "chainName": "BTC",
1392
- // "chainFullName": "Bitcoin",
1393
- // "walletPrecision": "8",
1394
- // "isDepositEnabled": "true",
1395
- // "depositMinSize": "0.00005",
1396
- // "confirmationCount": "2",
1397
- // "isWithdrawEnabled": "true",
1398
- // "withdrawMinSize": "0.001",
1399
- // "withdrawMinFee": "0.0005",
1400
- // "withdrawFeeRate": "0",
1401
- // "depositDisabledTip": "Wallet Maintenance",
1402
- // "preDepositTipEnabled": "true",
1403
- // "preDepositTip": "Do not transfer from ETH network directly",
1404
- // "withdrawDisabledTip": "",
1405
- // "preWithdrawTipEnabled": "false",
1406
- // "preWithdrawTip": "",
1407
- // "orgAddress": "",
1408
- // "userAddressName": "Memo",
1409
- // },
1410
1379
  // ]
1411
1380
  // }
1412
1381
  //
1413
- const responses = await Promise.all(promises);
1414
- const currenciesResponse = this.safeDict(responses, 0, {});
1415
- const currenciesData = this.safeList(currenciesResponse, 'data', []);
1416
- const additionalResponse = this.safeDict(responses, 1, {});
1417
- const additionalData = this.safeList(additionalResponse, 'data', []);
1418
- const additionalDataGrouped = this.groupBy(additionalData, 'currency');
1382
+ const currenciesData = this.safeList(response, 'data', []);
1419
1383
  const result = {};
1420
1384
  for (let i = 0; i < currenciesData.length; i++) {
1421
1385
  const entry = currenciesData[i];
1422
1386
  const id = this.safeString(entry, 'currency');
1423
1387
  const name = this.safeString(entry, 'fullName');
1424
1388
  const code = this.safeCurrencyCode(id);
1425
- let isWithdrawEnabled = undefined;
1426
- let isDepositEnabled = undefined;
1427
1389
  const networks = {};
1428
1390
  const chains = this.safeList(entry, 'chains', []);
1429
- const extraChainsData = this.indexBy(this.safeList(additionalDataGrouped, id, []), 'chain');
1430
1391
  const rawPrecision = this.safeString(entry, 'precision');
1431
1392
  const precision = this.parseNumber(this.parsePrecision(rawPrecision));
1432
1393
  const chainsLength = chains.length;
1433
1394
  if (!chainsLength) {
1434
- // https://t.me/KuCoin_API/173118
1435
- isWithdrawEnabled = false;
1436
- isDepositEnabled = false;
1395
+ // one buggy coin, which doesn't contain info https://t.me/KuCoin_API/173118
1396
+ continue;
1437
1397
  }
1438
1398
  for (let j = 0; j < chainsLength; j++) {
1439
1399
  const chain = chains[j];
1440
1400
  const chainId = this.safeString(chain, 'chainId');
1441
1401
  const networkCode = this.networkIdToCode(chainId, code);
1442
1402
  const chainWithdrawEnabled = this.safeBool(chain, 'isWithdrawEnabled', false);
1443
- if (isWithdrawEnabled === undefined) {
1444
- isWithdrawEnabled = chainWithdrawEnabled;
1445
- }
1446
- else {
1447
- isWithdrawEnabled = isWithdrawEnabled || chainWithdrawEnabled;
1448
- }
1449
1403
  const chainDepositEnabled = this.safeBool(chain, 'isDepositEnabled', false);
1450
- if (isDepositEnabled === undefined) {
1451
- isDepositEnabled = chainDepositEnabled;
1452
- }
1453
- else {
1454
- isDepositEnabled = isDepositEnabled || chainDepositEnabled;
1455
- }
1456
- const chainExtraData = this.safeDict(extraChainsData, chainId, {});
1457
1404
  networks[networkCode] = {
1458
1405
  'info': chain,
1459
1406
  'id': chainId,
@@ -1463,35 +1410,35 @@ class kucoin extends kucoin$1 {
1463
1410
  'fee': this.safeNumber(chain, 'withdrawalMinFee'),
1464
1411
  'deposit': chainDepositEnabled,
1465
1412
  'withdraw': chainWithdrawEnabled,
1466
- 'precision': this.parseNumber(this.parsePrecision(this.safeString(chainExtraData, 'walletPrecision'))),
1413
+ 'precision': this.parseNumber(this.parsePrecision(this.safeString(chain, 'withdrawPrecision'))),
1467
1414
  'limits': {
1468
1415
  'withdraw': {
1469
1416
  'min': this.safeNumber(chain, 'withdrawalMinSize'),
1470
- 'max': undefined,
1417
+ 'max': this.safeNumber(chain, 'maxWithdraw'),
1471
1418
  },
1472
1419
  'deposit': {
1473
1420
  'min': this.safeNumber(chain, 'depositMinSize'),
1474
- 'max': undefined,
1421
+ 'max': this.safeNumber(chain, 'maxDeposit'),
1475
1422
  },
1476
1423
  },
1477
1424
  };
1478
1425
  }
1479
1426
  // kucoin has determined 'fiat' currencies with below logic
1480
1427
  const isFiat = (rawPrecision === '2') && (chainsLength === 0);
1481
- result[code] = {
1428
+ result[code] = this.safeCurrencyStructure({
1482
1429
  'id': id,
1483
1430
  'name': name,
1484
1431
  'code': code,
1485
1432
  'type': isFiat ? 'fiat' : 'crypto',
1486
1433
  'precision': precision,
1487
1434
  'info': entry,
1488
- 'active': (isDepositEnabled || isWithdrawEnabled),
1489
- 'deposit': isDepositEnabled,
1490
- 'withdraw': isWithdrawEnabled,
1491
- 'fee': undefined,
1492
- 'limits': this.limits,
1493
1435
  'networks': networks,
1494
- };
1436
+ 'deposit': undefined,
1437
+ 'withdraw': undefined,
1438
+ 'active': undefined,
1439
+ 'fee': undefined,
1440
+ 'limits': undefined,
1441
+ });
1495
1442
  }
1496
1443
  return result;
1497
1444
  }
@@ -1635,6 +1582,37 @@ class kucoin extends kucoin$1 {
1635
1582
  // "chain": "ERC20"
1636
1583
  // }
1637
1584
  //
1585
+ if ('chains' in fee) {
1586
+ // if data obtained through `currencies` endpoint
1587
+ const resultNew = {
1588
+ 'info': fee,
1589
+ 'withdraw': {
1590
+ 'fee': undefined,
1591
+ 'percentage': false,
1592
+ },
1593
+ 'deposit': {
1594
+ 'fee': undefined,
1595
+ 'percentage': undefined,
1596
+ },
1597
+ 'networks': {},
1598
+ };
1599
+ const chains = this.safeList(fee, 'chains', []);
1600
+ for (let i = 0; i < chains.length; i++) {
1601
+ const chain = chains[i];
1602
+ const networkCodeNew = this.networkIdToCode(this.safeString(chain, 'chainId'), this.safeString(currency, 'code'));
1603
+ resultNew['networks'][networkCodeNew] = {
1604
+ 'withdraw': {
1605
+ 'fee': this.safeNumber(chain, 'withdrawMinFee'),
1606
+ 'percentage': false,
1607
+ },
1608
+ 'deposit': {
1609
+ 'fee': undefined,
1610
+ 'percentage': undefined,
1611
+ },
1612
+ };
1613
+ }
1614
+ return resultNew;
1615
+ }
1638
1616
  const minWithdrawFee = this.safeNumber(fee, 'withdrawMinFee');
1639
1617
  const result = {
1640
1618
  'info': fee,
@@ -1079,7 +1079,7 @@ class kuna extends kuna$1 {
1079
1079
  }
1080
1080
  /**
1081
1081
  * @method
1082
- * @name kuna#cancelOrder
1082
+ * @name kuna#cancelOrders
1083
1083
  * @description cancels an open order
1084
1084
  * @param {string} ids order ids
1085
1085
  * @param {string} symbol not used by kuna cancelOrder
@@ -1381,6 +1381,7 @@ class mexc extends mexc$1 {
1381
1381
  const quote = this.safeCurrencyCode(quoteId);
1382
1382
  const settle = this.safeCurrencyCode(settleId);
1383
1383
  const state = this.safeString(market, 'state');
1384
+ const isLinear = quote === settle;
1384
1385
  result.push({
1385
1386
  'id': id,
1386
1387
  'symbol': base + '/' + quote + ':' + settle,
@@ -1398,8 +1399,8 @@ class mexc extends mexc$1 {
1398
1399
  'option': false,
1399
1400
  'active': (state === '0'),
1400
1401
  'contract': true,
1401
- 'linear': true,
1402
- 'inverse': false,
1402
+ 'linear': isLinear,
1403
+ 'inverse': !isLinear,
1403
1404
  'taker': this.safeNumber(market, 'takerFeeRate'),
1404
1405
  'maker': this.safeNumber(market, 'makerFeeRate'),
1405
1406
  'contractSize': this.safeNumber(market, 'contractSize'),
@@ -688,12 +688,20 @@ class okcoin extends okcoin$1 {
688
688
  async fetchTime(params = {}) {
689
689
  const response = await this.publicGetPublicTime(params);
690
690
  //
691
- // {
692
- // "iso": "2015-01-07T23:47:25.201Z",
693
- // "epoch": 1420674445.201
694
- // }
691
+ // {
692
+ // "code": "0",
693
+ // "data":
694
+ // [
695
+ // {
696
+ // "ts": "1737379360033"
697
+ // }
698
+ // ],
699
+ // "msg": ""
700
+ // }
695
701
  //
696
- return this.parse8601(this.safeString(response, 'iso'));
702
+ const data = this.safeList(response, 'data');
703
+ const timestamp = this.safeDict(data, 0);
704
+ return this.safeInteger(timestamp, 'ts');
697
705
  }
698
706
  /**
699
707
  * @method
@@ -5730,7 +5730,7 @@ class okx extends okx$1 {
5730
5730
  }
5731
5731
  /**
5732
5732
  * @method
5733
- * @name okx#fetchPositions
5733
+ * @name okx#fetchPositionsForSymbol
5734
5734
  * @see https://www.okx.com/docs-v5/en/#rest-api-account-get-positions
5735
5735
  * @description fetch all open positions for specific symbol
5736
5736
  * @param {string} symbol unified market symbol
@@ -1719,7 +1719,7 @@ class paradex extends paradex$1 {
1719
1719
  }
1720
1720
  /**
1721
1721
  * @method
1722
- * @name paradex#fetchPositions
1722
+ * @name paradex#fetchPosition
1723
1723
  * @description fetch data on an open position
1724
1724
  * @see https://docs.api.prod.paradex.trade/#list-open-positions
1725
1725
  * @param {string} symbol unified market symbol of the market the position is held in
@@ -111,6 +111,48 @@ class paymium extends paymium$1 {
111
111
  },
112
112
  },
113
113
  'precisionMode': number.TICK_SIZE,
114
+ 'features': {
115
+ 'spot': {
116
+ 'sandbox': false,
117
+ 'createOrder': {
118
+ 'marginMode': false,
119
+ 'triggerPrice': false,
120
+ 'triggerDirection': false,
121
+ 'triggerPriceType': undefined,
122
+ 'stopLossPrice': false,
123
+ 'takeProfitPrice': false,
124
+ 'attachedStopLossTakeProfit': undefined,
125
+ 'timeInForce': {
126
+ 'IOC': false,
127
+ 'FOK': false,
128
+ 'PO': false,
129
+ 'GTD': false,
130
+ },
131
+ 'hedged': false,
132
+ 'trailing': false,
133
+ 'leverage': false,
134
+ 'marketBuyByCost': true,
135
+ 'marketBuyRequiresPrice': false,
136
+ 'selfTradePrevention': false,
137
+ 'iceberg': false,
138
+ },
139
+ 'createOrders': undefined,
140
+ 'fetchMyTrades': undefined,
141
+ 'fetchOrder': undefined,
142
+ 'fetchOpenOrders': undefined,
143
+ 'fetchOrders': undefined,
144
+ 'fetchClosedOrders': undefined,
145
+ 'fetchOHLCV': undefined, // todo
146
+ },
147
+ 'swap': {
148
+ 'linear': undefined,
149
+ 'inverse': undefined,
150
+ },
151
+ 'future': {
152
+ 'linear': undefined,
153
+ 'inverse': undefined,
154
+ },
155
+ },
114
156
  });
115
157
  }
116
158
  parseBalance(response) {
@@ -55,7 +55,7 @@ class bitfinex1 extends bitfinex1$1 {
55
55
  }
56
56
  /**
57
57
  * @method
58
- * @name bitfinex#watchTrades
58
+ * @name bitfinex1#watchTrades
59
59
  * @description get the list of most recent trades for a particular symbol
60
60
  * @see https://docs.bitfinex.com/v1/reference/ws-public-trades
61
61
  * @param {string} symbol unified symbol of the market to fetch trades for
@@ -75,7 +75,7 @@ class bitfinex1 extends bitfinex1$1 {
75
75
  }
76
76
  /**
77
77
  * @method
78
- * @name bitfinex#watchTicker
78
+ * @name bitfinex1#watchTicker
79
79
  * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
80
80
  * @see https://docs.bitfinex.com/v1/reference/ws-public-ticker
81
81
  * @param {string} symbol unified symbol of the market to fetch the ticker for
@@ -248,7 +248,7 @@ class bitfinex1 extends bitfinex1$1 {
248
248
  }
249
249
  /**
250
250
  * @method
251
- * @name bitfinex#watchOrderBook
251
+ * @name bitfinex1#watchOrderBook
252
252
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
253
253
  * @see https://docs.bitfinex.com/v1/reference/ws-public-order-books
254
254
  * @param {string} symbol unified symbol of the market to fetch the order book for
@@ -459,7 +459,7 @@ class bitfinex1 extends bitfinex1$1 {
459
459
  }
460
460
  /**
461
461
  * @method
462
- * @name bitfinex#watchOrders
462
+ * @name bitfinex1#watchOrders
463
463
  * @description watches information on multiple orders made by the user
464
464
  * @see https://docs.bitfinex.com/v1/reference/ws-auth-order-updates
465
465
  * @see https://docs.bitfinex.com/v1/reference/ws-auth-order-snapshots
@@ -170,7 +170,7 @@ class bitvavo extends bitvavo$1 {
170
170
  }
171
171
  /**
172
172
  * @method
173
- * @name mexc#watchBidsAsks
173
+ * @name bitvavo#watchBidsAsks
174
174
  * @description watches best bid & ask for symbols
175
175
  * @see https://docs.bitvavo.com/#tag/Market-data-subscription-WebSocket/paths/~1subscribeTicker24h/post
176
176
  * @param {string[]} symbols unified symbol of the market to fetch the ticker for
@@ -472,7 +472,7 @@ class blofin extends blofin$1 {
472
472
  }
473
473
  /**
474
474
  * @method
475
- * @name alpaca#watchOrders
475
+ * @name biofin#watchOrders
476
476
  * @description watches information on multiple orders made by the user
477
477
  * @param {string} symbol unified market symbol of the market orders were made in
478
478
  * @param {int} [since] the earliest time in ms to fetch orders for
@@ -827,7 +827,7 @@ class bybit extends bybit$1 {
827
827
  }
828
828
  /**
829
829
  * @method
830
- * @name bybit#watchOrderBook
830
+ * @name bybit#watchOrderBookForSymbols
831
831
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
832
832
  * @see https://bybit-exchange.github.io/docs/v5/websocket/public/orderbook
833
833
  * @param {string[]} symbols unified array of symbols
@@ -558,7 +558,7 @@ class coincatch extends coincatch$1 {
558
558
  }
559
559
  /**
560
560
  * @method
561
- * @name coincatch#watchOrderBook
561
+ * @name coincatch#watchOrderBookForSymbols
562
562
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
563
563
  * @see https://coincatch.github.io/github.io/en/spot/#depth-channel
564
564
  * @param symbols
@@ -696,7 +696,7 @@ class coincatch extends coincatch$1 {
696
696
  }
697
697
  /**
698
698
  * @method
699
- * @name coincatch#watchTrades
699
+ * @name coincatch#watchTradesForSymbols
700
700
  * @description watches information on multiple trades made in a market
701
701
  * @see https://coincatch.github.io/github.io/en/spot/#trades-channel
702
702
  * @param symbols
@@ -97,7 +97,7 @@ class cryptocom extends cryptocom$1 {
97
97
  }
98
98
  /**
99
99
  * @method
100
- * @name cryptocom#watchOrderBook
100
+ * @name cryptocom#watchOrderBookForSymbols
101
101
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
102
102
  * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#book-instrument_name
103
103
  * @param {string[]} symbols unified array of symbols
@@ -1078,7 +1078,7 @@ class cryptocom extends cryptocom$1 {
1078
1078
  }
1079
1079
  /**
1080
1080
  * @method
1081
- * @name cryptocom#cancelOrder
1081
+ * @name cryptocom#cancelOrderWs
1082
1082
  * @description cancels an open order
1083
1083
  * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-cancel-order
1084
1084
  * @param {string} id the order id of the order to cancel
@@ -396,7 +396,7 @@ class defx extends defx$1 {
396
396
  }
397
397
  /**
398
398
  * @method
399
- * @name defx#unWatchTradesForSymbols
399
+ * @name defx#unWatchTrades
400
400
  * @description unWatches from the stream channel
401
401
  * @see https://www.postman.com/defxcode/defx-public-apis/collection/667939a1b5d8069c13d614e9
402
402
  * @param {string} symbol unified symbol of the market to fetch trades for
@@ -346,7 +346,7 @@ class exmo extends exmo$1 {
346
346
  }
347
347
  /**
348
348
  * @method
349
- * @name exmo#watchTrades
349
+ * @name exmo#watchMyTrades
350
350
  * @description get the list of trades associated with the user
351
351
  * @param {string} symbol unified symbol of the market to fetch trades for
352
352
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
@@ -259,7 +259,7 @@ class gemini extends gemini$1 {
259
259
  }
260
260
  /**
261
261
  * @method
262
- * @name gemini#fetchOHLCV
262
+ * @name gemini#watchOHLCV
263
263
  * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
264
264
  * @see https://docs.gemini.com/websocket-api/#candles-data-feed
265
265
  * @param {string} symbol unified symbol of the market to fetch OHLCV data for
@@ -287,7 +287,7 @@ class hashkey extends hashkey$1 {
287
287
  }
288
288
  /**
289
289
  * @method
290
- * @name alpaca#watchOrderBook
290
+ * @name hashkey#watchOrderBook
291
291
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
292
292
  * @see https://hashkeyglobal-apidoc.readme.io/reference/websocket-api#public-stream
293
293
  * @param {string} symbol unified symbol of the market to fetch the order book for
@@ -683,7 +683,7 @@ class hashkey extends hashkey$1 {
683
683
  }
684
684
  /**
685
685
  * @method
686
- * @name bitmart#watchBalance
686
+ * @name hashkey#watchBalance
687
687
  * @description watch balance and get the amount of funds available for trading or funds locked in orders
688
688
  * @see https://hashkeyglobal-apidoc.readme.io/reference/websocket-api#private-stream
689
689
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -73,7 +73,7 @@ class hyperliquid extends hyperliquid$1 {
73
73
  }
74
74
  /**
75
75
  * @method
76
- * @name hyperliquid#createOrder
76
+ * @name hyperliquid#createOrderWs
77
77
  * @description create a trade order using WebSocket post request
78
78
  * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order
79
79
  * @param {string} symbol unified symbol of the market to create an order in
@@ -99,7 +99,7 @@ class hyperliquid extends hyperliquid$1 {
99
99
  }
100
100
  /**
101
101
  * @method
102
- * @name hyperliquid#editOrder
102
+ * @name hyperliquid#editOrderWs
103
103
  * @description edit a trade order
104
104
  * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#modify-an-order
105
105
  * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#modify-multiple-orders
@@ -493,7 +493,7 @@ class kucoin extends kucoin$1 {
493
493
  }
494
494
  /**
495
495
  * @method
496
- * @name kucoin#watchTrades
496
+ * @name kucoin#watchTradesForSymbols
497
497
  * @description get the list of most recent trades for a particular symbol
498
498
  * @see https://www.kucoin.com/docs/websocket/spot-trading/public-channels/match-execution-data
499
499
  * @param {string[]} symbols
@@ -253,7 +253,7 @@ class okx extends okx$1 {
253
253
  }
254
254
  /**
255
255
  * @method
256
- * @name okx#unWatchTradesForSymbols
256
+ * @name okx#unWatchTrades
257
257
  * @description unWatches from the stream channel
258
258
  * @param {string} symbol unified symbol of the market to fetch trades for
259
259
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -980,7 +980,7 @@ class oxfun extends oxfun$1 {
980
980
  }
981
981
  /**
982
982
  * @method
983
- * @name okx#cancelOrdersWs
983
+ * @name oxfun#cancelOrdersWs
984
984
  * @see https://www.okx.com/docs-v5/en/#order-book-trading-trade-ws-mass-cancel-order
985
985
  * @description cancel multiple orders
986
986
  * @param {string[]} ids order ids
@@ -87,7 +87,7 @@ class probit extends probit$1 {
87
87
  'fetchWithdrawal': false,
88
88
  'fetchWithdrawals': true,
89
89
  'reduceMargin': false,
90
- 'sandbox': true,
90
+ 'sandbox': false,
91
91
  'setLeverage': false,
92
92
  'setMarginMode': false,
93
93
  'setPositionMode': false,
@@ -169,6 +169,73 @@ class probit extends probit$1 {
169
169
  'taker': this.parseNumber('0.002'),
170
170
  },
171
171
  },
172
+ 'features': {
173
+ 'spot': {
174
+ 'sandbox': false,
175
+ 'createOrder': {
176
+ 'marginMode': false,
177
+ 'triggerPrice': false,
178
+ 'triggerDirection': false,
179
+ 'triggerPriceType': undefined,
180
+ 'stopLossPrice': false,
181
+ 'takeProfitPrice': false,
182
+ 'attachedStopLossTakeProfit': undefined,
183
+ // todo
184
+ 'timeInForce': {
185
+ 'IOC': true,
186
+ 'FOK': true,
187
+ 'PO': false,
188
+ 'GTD': false,
189
+ },
190
+ 'hedged': false,
191
+ 'trailing': false,
192
+ 'leverage': false,
193
+ 'marketBuyByCost': true,
194
+ 'marketBuyRequiresPrice': false,
195
+ 'selfTradePrevention': false,
196
+ 'iceberg': false,
197
+ },
198
+ 'createOrders': undefined,
199
+ 'fetchMyTrades': {
200
+ 'marginMode': false,
201
+ 'limit': 1000,
202
+ 'daysBack': 100000,
203
+ 'untilDays': 100000, // todo
204
+ },
205
+ 'fetchOrder': {
206
+ 'marginMode': false,
207
+ 'trigger': false,
208
+ 'trailing': false,
209
+ },
210
+ 'fetchOpenOrders': {
211
+ 'marginMode': false,
212
+ 'limit': undefined,
213
+ 'trigger': false,
214
+ 'trailing': false,
215
+ },
216
+ 'fetchOrders': undefined,
217
+ 'fetchClosedOrders': {
218
+ 'marginMode': false,
219
+ 'limit': 1000,
220
+ 'daysBack': 100000,
221
+ 'daysBackCanceled': 1,
222
+ 'untilDays': 90,
223
+ 'trigger': false,
224
+ 'trailing': false,
225
+ },
226
+ 'fetchOHLCV': {
227
+ 'limit': 4000,
228
+ },
229
+ },
230
+ 'swap': {
231
+ 'linear': undefined,
232
+ 'inverse': undefined,
233
+ },
234
+ 'future': {
235
+ 'linear': undefined,
236
+ 'inverse': undefined,
237
+ },
238
+ },
172
239
  'exceptions': {
173
240
  'exact': {
174
241
  'UNAUTHORIZED': errors.AuthenticationError,