ccxt 4.4.48 → 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 (175) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +12 -12
  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/bingx.js +88 -30
  8. package/dist/cjs/src/bitfinex1.js +22 -22
  9. package/dist/cjs/src/bitget.js +12 -10
  10. package/dist/cjs/src/blofin.js +2 -2
  11. package/dist/cjs/src/bybit.js +2 -2
  12. package/dist/cjs/src/coinex.js +4 -4
  13. package/dist/cjs/src/coinmetro.js +1 -1
  14. package/dist/cjs/src/coinsph.js +18 -9
  15. package/dist/cjs/src/defx.js +1 -1
  16. package/dist/cjs/src/deribit.js +82 -0
  17. package/dist/cjs/src/digifinex.js +131 -11
  18. package/dist/cjs/src/ellipx.js +62 -0
  19. package/dist/cjs/src/exmo.js +58 -0
  20. package/dist/cjs/src/gate.js +1 -1
  21. package/dist/cjs/src/hitbtc.js +99 -0
  22. package/dist/cjs/src/hollaex.js +86 -19
  23. package/dist/cjs/src/huobijp.js +73 -0
  24. package/dist/cjs/src/hyperliquid.js +26 -5
  25. package/dist/cjs/src/idex.js +71 -0
  26. package/dist/cjs/src/independentreserve.js +64 -0
  27. package/dist/cjs/src/indodax.js +61 -0
  28. package/dist/cjs/src/krakenfutures.js +1 -1
  29. package/dist/cjs/src/kucoin.js +49 -71
  30. package/dist/cjs/src/kuna.js +61 -2
  31. package/dist/cjs/src/latoken.js +64 -0
  32. package/dist/cjs/src/lbank.js +70 -0
  33. package/dist/cjs/src/luno.js +73 -0
  34. package/dist/cjs/src/lykke.js +64 -0
  35. package/dist/cjs/src/mercado.js +65 -0
  36. package/dist/cjs/src/mexc.js +4 -3
  37. package/dist/cjs/src/myokx.js +10 -0
  38. package/dist/cjs/src/ndax.js +71 -0
  39. package/dist/cjs/src/novadax.js +74 -0
  40. package/dist/cjs/src/oceanex.js +69 -0
  41. package/dist/cjs/src/okcoin.js +92 -7
  42. package/dist/cjs/src/okx.js +1 -1
  43. package/dist/cjs/src/onetrading.js +66 -0
  44. package/dist/cjs/src/oxfun.js +66 -0
  45. package/dist/cjs/src/p2b.js +63 -1
  46. package/dist/cjs/src/paradex.js +69 -1
  47. package/dist/cjs/src/paymium.js +42 -0
  48. package/dist/cjs/src/pro/bitfinex1.js +4 -4
  49. package/dist/cjs/src/pro/bitmart.js +6 -0
  50. package/dist/cjs/src/pro/bitvavo.js +1 -1
  51. package/dist/cjs/src/pro/blofin.js +1 -1
  52. package/dist/cjs/src/pro/bybit.js +1 -1
  53. package/dist/cjs/src/pro/coincatch.js +2 -2
  54. package/dist/cjs/src/pro/cryptocom.js +2 -2
  55. package/dist/cjs/src/pro/defx.js +1 -1
  56. package/dist/cjs/src/pro/exmo.js +1 -1
  57. package/dist/cjs/src/pro/gemini.js +1 -1
  58. package/dist/cjs/src/pro/hashkey.js +2 -2
  59. package/dist/cjs/src/pro/hyperliquid.js +2 -2
  60. package/dist/cjs/src/pro/kucoin.js +1 -1
  61. package/dist/cjs/src/pro/okx.js +1 -1
  62. package/dist/cjs/src/pro/oxfun.js +1 -1
  63. package/dist/cjs/src/probit.js +68 -1
  64. package/dist/cjs/src/timex.js +67 -0
  65. package/dist/cjs/src/tokocrypto.js +82 -5
  66. package/dist/cjs/src/tradeogre.js +55 -2
  67. package/dist/cjs/src/whitebit.js +11 -4
  68. package/examples/README.md +6 -0
  69. package/js/ccxt.d.ts +1 -1
  70. package/js/ccxt.js +1 -1
  71. package/js/src/abstract/binance.d.ts +1 -0
  72. package/js/src/abstract/binancecoinm.d.ts +1 -0
  73. package/js/src/abstract/binanceus.d.ts +1 -0
  74. package/js/src/abstract/binanceusdm.d.ts +1 -0
  75. package/js/src/alpaca.d.ts +35 -0
  76. package/js/src/alpaca.js +64 -1
  77. package/js/src/base/Exchange.js +75 -0
  78. package/js/src/binance.d.ts +1 -0
  79. package/js/src/binance.js +8 -4
  80. package/js/src/bingx.d.ts +8 -0
  81. package/js/src/bingx.js +88 -30
  82. package/js/src/bitfinex1.d.ts +22 -22
  83. package/js/src/bitfinex1.js +22 -22
  84. package/js/src/bitget.d.ts +1 -0
  85. package/js/src/bitget.js +12 -10
  86. package/js/src/blofin.d.ts +1 -1
  87. package/js/src/blofin.js +2 -2
  88. package/js/src/bybit.d.ts +2 -2
  89. package/js/src/bybit.js +2 -2
  90. package/js/src/coinex.js +4 -4
  91. package/js/src/coinmetro.d.ts +1 -1
  92. package/js/src/coinmetro.js +1 -1
  93. package/js/src/coinsph.d.ts +1 -0
  94. package/js/src/coinsph.js +18 -9
  95. package/js/src/defx.d.ts +1 -1
  96. package/js/src/defx.js +1 -1
  97. package/js/src/deribit.js +82 -0
  98. package/js/src/digifinex.d.ts +1 -0
  99. package/js/src/digifinex.js +131 -11
  100. package/js/src/ellipx.d.ts +2 -0
  101. package/js/src/ellipx.js +62 -0
  102. package/js/src/exmo.js +58 -0
  103. package/js/src/gate.d.ts +1 -1
  104. package/js/src/gate.js +1 -1
  105. package/js/src/hitbtc.js +99 -0
  106. package/js/src/hollaex.d.ts +2 -1
  107. package/js/src/hollaex.js +86 -19
  108. package/js/src/huobijp.js +73 -0
  109. package/js/src/hyperliquid.d.ts +4 -3
  110. package/js/src/hyperliquid.js +26 -5
  111. package/js/src/idex.js +71 -0
  112. package/js/src/independentreserve.js +64 -0
  113. package/js/src/indodax.js +61 -0
  114. package/js/src/krakenfutures.d.ts +1 -1
  115. package/js/src/krakenfutures.js +1 -1
  116. package/js/src/kucoin.js +49 -71
  117. package/js/src/kuna.d.ts +1 -1
  118. package/js/src/kuna.js +61 -2
  119. package/js/src/latoken.js +64 -0
  120. package/js/src/lbank.js +70 -0
  121. package/js/src/luno.js +73 -0
  122. package/js/src/lykke.js +64 -0
  123. package/js/src/mercado.js +65 -0
  124. package/js/src/mexc.js +4 -3
  125. package/js/src/myokx.js +10 -0
  126. package/js/src/ndax.js +71 -0
  127. package/js/src/novadax.js +74 -0
  128. package/js/src/oceanex.js +69 -0
  129. package/js/src/okcoin.js +92 -7
  130. package/js/src/okx.d.ts +1 -1
  131. package/js/src/okx.js +1 -1
  132. package/js/src/onetrading.js +66 -0
  133. package/js/src/oxfun.js +66 -0
  134. package/js/src/p2b.js +63 -1
  135. package/js/src/paradex.d.ts +1 -1
  136. package/js/src/paradex.js +69 -1
  137. package/js/src/paymium.js +42 -0
  138. package/js/src/pro/bitfinex1.d.ts +4 -4
  139. package/js/src/pro/bitfinex1.js +4 -4
  140. package/js/src/pro/bitmart.d.ts +1 -0
  141. package/js/src/pro/bitmart.js +6 -0
  142. package/js/src/pro/bitvavo.d.ts +1 -1
  143. package/js/src/pro/bitvavo.js +1 -1
  144. package/js/src/pro/blofin.d.ts +1 -1
  145. package/js/src/pro/blofin.js +1 -1
  146. package/js/src/pro/bybit.d.ts +1 -1
  147. package/js/src/pro/bybit.js +1 -1
  148. package/js/src/pro/coincatch.d.ts +2 -2
  149. package/js/src/pro/coincatch.js +2 -2
  150. package/js/src/pro/cryptocom.d.ts +2 -2
  151. package/js/src/pro/cryptocom.js +2 -2
  152. package/js/src/pro/defx.d.ts +1 -1
  153. package/js/src/pro/defx.js +1 -1
  154. package/js/src/pro/exmo.d.ts +1 -1
  155. package/js/src/pro/exmo.js +1 -1
  156. package/js/src/pro/gemini.d.ts +1 -1
  157. package/js/src/pro/gemini.js +1 -1
  158. package/js/src/pro/hashkey.d.ts +2 -2
  159. package/js/src/pro/hashkey.js +2 -2
  160. package/js/src/pro/hyperliquid.d.ts +2 -2
  161. package/js/src/pro/hyperliquid.js +2 -2
  162. package/js/src/pro/kucoin.d.ts +1 -1
  163. package/js/src/pro/kucoin.js +1 -1
  164. package/js/src/pro/okx.d.ts +1 -1
  165. package/js/src/pro/okx.js +1 -1
  166. package/js/src/pro/oxfun.d.ts +1 -1
  167. package/js/src/pro/oxfun.js +1 -1
  168. package/js/src/probit.js +68 -1
  169. package/js/src/timex.js +67 -0
  170. package/js/src/tokocrypto.d.ts +2 -3
  171. package/js/src/tokocrypto.js +82 -5
  172. package/js/src/tradeogre.d.ts +4 -2
  173. package/js/src/tradeogre.js +55 -2
  174. package/js/src/whitebit.js +11 -4
  175. package/package.json +2 -2
@@ -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,
@@ -71,7 +71,7 @@ class kuna extends kuna$1 {
71
71
  'fetchMarkets': true,
72
72
  'fetchMarkOHLCV': false,
73
73
  'fetchMyTrades': true,
74
- 'fetchOHLCV': 'emulated',
74
+ 'fetchOHLCV': false,
75
75
  'fetchOpenInterest': false,
76
76
  'fetchOpenInterestHistory': false,
77
77
  'fetchOpenOrders': true,
@@ -356,6 +356,65 @@ class kuna extends kuna$1 {
356
356
  ],
357
357
  },
358
358
  },
359
+ 'features': {
360
+ 'spot': {
361
+ 'sandbox': false,
362
+ 'createOrder': {
363
+ 'marginMode': false,
364
+ 'triggerPrice': true,
365
+ 'triggerPriceType': undefined,
366
+ 'triggerDirection': false,
367
+ 'stopLossPrice': false,
368
+ 'takeProfitPrice': false,
369
+ 'attachedStopLossTakeProfit': undefined,
370
+ 'timeInForce': {
371
+ 'IOC': false,
372
+ 'FOK': false,
373
+ 'PO': false,
374
+ 'GTD': false,
375
+ },
376
+ 'hedged': false,
377
+ 'selfTradePrevention': false,
378
+ 'trailing': false,
379
+ 'leverage': false,
380
+ 'marketBuyByCost': true,
381
+ 'marketBuyRequiresPrice': false,
382
+ 'iceberg': false,
383
+ },
384
+ 'createOrders': undefined,
385
+ 'fetchMyTrades': undefined,
386
+ 'fetchOrder': {
387
+ 'marginMode': false,
388
+ 'trigger': false,
389
+ 'trailing': false,
390
+ },
391
+ 'fetchOpenOrders': {
392
+ 'marginMode': false,
393
+ 'limit': 100,
394
+ 'trigger': false,
395
+ 'trailing': false,
396
+ },
397
+ 'fetchOrders': undefined,
398
+ 'fetchClosedOrders': {
399
+ 'marginMode': false,
400
+ 'limit': 100,
401
+ 'daysBack': 100000,
402
+ 'daysBackCanceled': 1,
403
+ 'untilDays': 14,
404
+ 'trigger': false,
405
+ 'trailing': false,
406
+ },
407
+ 'fetchOHLCV': undefined,
408
+ },
409
+ 'swap': {
410
+ 'linear': undefined,
411
+ 'inverse': undefined,
412
+ },
413
+ 'future': {
414
+ 'linear': undefined,
415
+ 'inverse': undefined,
416
+ },
417
+ },
359
418
  'fees': {
360
419
  'trading': {
361
420
  'tierBased': false,
@@ -1020,7 +1079,7 @@ class kuna extends kuna$1 {
1020
1079
  }
1021
1080
  /**
1022
1081
  * @method
1023
- * @name kuna#cancelOrder
1082
+ * @name kuna#cancelOrders
1024
1083
  * @description cancels an open order
1025
1084
  * @param {string} ids order ids
1026
1085
  * @param {string} symbol not used by kuna cancelOrder
@@ -234,6 +234,70 @@ class latoken extends latoken$1 {
234
234
  'method': 'fetchPrivateTradingFee', // or 'fetchPublicTradingFee'
235
235
  },
236
236
  },
237
+ 'features': {
238
+ 'spot': {
239
+ 'sandbox': false,
240
+ 'createOrder': {
241
+ 'marginMode': false,
242
+ 'triggerPrice': true,
243
+ 'triggerPriceType': undefined,
244
+ 'triggerDirection': false,
245
+ 'stopLossPrice': false,
246
+ 'takeProfitPrice': false,
247
+ 'attachedStopLossTakeProfit': undefined,
248
+ 'timeInForce': {
249
+ 'IOC': true,
250
+ 'FOK': true,
251
+ 'PO': false,
252
+ 'GTD': false,
253
+ },
254
+ 'hedged': false,
255
+ 'selfTradePrevention': false,
256
+ 'trailing': false,
257
+ 'leverage': false,
258
+ 'marketBuyByCost': true,
259
+ 'marketBuyRequiresPrice': false,
260
+ 'iceberg': false,
261
+ },
262
+ 'createOrders': undefined,
263
+ 'fetchMyTrades': {
264
+ 'marginMode': false,
265
+ 'limit': 1000,
266
+ 'daysBack': 100000,
267
+ 'untilDays': undefined,
268
+ },
269
+ 'fetchOrder': {
270
+ 'marginMode': false,
271
+ 'trigger': true,
272
+ 'trailing': false,
273
+ },
274
+ 'fetchOpenOrders': {
275
+ 'marginMode': false,
276
+ 'limit': undefined,
277
+ 'trigger': false,
278
+ 'trailing': false,
279
+ },
280
+ 'fetchOrders': undefined,
281
+ 'fetchClosedOrders': {
282
+ 'marginMode': false,
283
+ 'limit': 1000,
284
+ 'daysBack': 100000,
285
+ 'daysBackCanceled': 1,
286
+ 'untilDays': undefined,
287
+ 'trigger': true,
288
+ 'trailing': false,
289
+ },
290
+ 'fetchOHLCV': undefined,
291
+ },
292
+ 'swap': {
293
+ 'linear': undefined,
294
+ 'inverse': undefined,
295
+ },
296
+ 'future': {
297
+ 'linear': undefined,
298
+ 'inverse': undefined,
299
+ },
300
+ },
237
301
  });
238
302
  }
239
303
  nonce() {
@@ -296,6 +296,76 @@ class lbank extends lbank$1 {
296
296
  'USDT': 'TRC20',
297
297
  },
298
298
  },
299
+ 'features': {
300
+ 'default': {
301
+ 'sandbox': false,
302
+ 'createOrder': {
303
+ 'marginMode': false,
304
+ 'triggerPrice': false,
305
+ 'triggerPriceType': undefined,
306
+ 'triggerDirection': false,
307
+ 'stopLossPrice': false,
308
+ 'takeProfitPrice': false,
309
+ 'attachedStopLossTakeProfit': undefined,
310
+ 'timeInForce': {
311
+ 'IOC': true,
312
+ 'FOK': true,
313
+ 'PO': false,
314
+ 'GTD': false,
315
+ },
316
+ 'hedged': false,
317
+ 'selfTradePrevention': false,
318
+ 'trailing': false,
319
+ 'leverage': false,
320
+ 'marketBuyByCost': true,
321
+ 'marketBuyRequiresPrice': false,
322
+ 'iceberg': false,
323
+ },
324
+ 'createOrders': undefined,
325
+ 'fetchMyTrades': {
326
+ 'marginMode': false,
327
+ 'limit': 100,
328
+ 'daysBack': 100000,
329
+ 'untilDays': 2,
330
+ },
331
+ 'fetchOrder': {
332
+ 'marginMode': false,
333
+ 'trigger': false,
334
+ 'trailing': false,
335
+ },
336
+ 'fetchOpenOrders': {
337
+ 'marginMode': false,
338
+ 'limit': 200,
339
+ 'trigger': false,
340
+ 'trailing': false,
341
+ },
342
+ 'fetchOrders': {
343
+ 'marginMode': false,
344
+ 'limit': 200,
345
+ 'daysBack': undefined,
346
+ 'untilDays': undefined,
347
+ 'trigger': false,
348
+ 'trailing': false,
349
+ },
350
+ 'fetchClosedOrders': undefined,
351
+ 'fetchOHLCV': {
352
+ 'limit': 2000,
353
+ },
354
+ },
355
+ 'spot': {
356
+ 'extends': 'default',
357
+ },
358
+ 'swap': {
359
+ 'linear': {
360
+ 'extends': 'default',
361
+ },
362
+ 'inverse': undefined,
363
+ },
364
+ 'future': {
365
+ 'linear': undefined,
366
+ 'inverse': undefined,
367
+ },
368
+ },
299
369
  });
300
370
  }
301
371
  /**
@@ -180,6 +180,79 @@ class luno extends luno$1 {
180
180
  },
181
181
  },
182
182
  'precisionMode': number.TICK_SIZE,
183
+ 'features': {
184
+ 'spot': {
185
+ 'sandbox': false,
186
+ 'createOrder': {
187
+ 'marginMode': false,
188
+ 'triggerPrice': true,
189
+ 'triggerPriceType': undefined,
190
+ 'triggerDirection': true,
191
+ 'stopLossPrice': false,
192
+ 'takeProfitPrice': false,
193
+ 'attachedStopLossTakeProfit': undefined,
194
+ 'timeInForce': {
195
+ 'IOC': true,
196
+ 'FOK': true,
197
+ 'PO': true,
198
+ 'GTD': false,
199
+ },
200
+ 'hedged': false,
201
+ 'trailing': false,
202
+ 'leverage': false,
203
+ 'marketBuyByCost': true,
204
+ 'marketBuyRequiresPrice': false,
205
+ 'selfTradePrevention': false,
206
+ 'iceberg': false,
207
+ },
208
+ 'createOrders': undefined,
209
+ 'fetchMyTrades': {
210
+ 'marginMode': false,
211
+ 'limit': 1000,
212
+ 'daysBack': 100000,
213
+ 'untilDays': 100000, // todo
214
+ },
215
+ 'fetchOrder': {
216
+ 'marginMode': false,
217
+ 'trigger': false,
218
+ 'trailing': false,
219
+ },
220
+ 'fetchOpenOrders': {
221
+ 'marginMode': false,
222
+ 'limit': 1000,
223
+ 'trigger': false,
224
+ 'trailing': false,
225
+ },
226
+ 'fetchOrders': {
227
+ 'marginMode': false,
228
+ 'limit': 1000,
229
+ 'daysBack': 100000,
230
+ 'untilDays': undefined,
231
+ 'trigger': false,
232
+ 'trailing': false,
233
+ },
234
+ 'fetchClosedOrders': {
235
+ 'marginMode': false,
236
+ 'limit': 1000,
237
+ 'daysBack': 100000,
238
+ 'daysBackCanceled': 1,
239
+ 'untilDays': undefined,
240
+ 'trigger': false,
241
+ 'trailing': false,
242
+ },
243
+ 'fetchOHLCV': {
244
+ 'limit': undefined,
245
+ },
246
+ },
247
+ 'swap': {
248
+ 'linear': undefined,
249
+ 'inverse': undefined,
250
+ },
251
+ 'future': {
252
+ 'linear': undefined,
253
+ 'inverse': undefined,
254
+ },
255
+ },
183
256
  });
184
257
  }
185
258
  /**
@@ -184,6 +184,70 @@ class lykke extends lykke$1 {
184
184
  'broad': {},
185
185
  },
186
186
  'commonCurrencies': {},
187
+ 'features': {
188
+ 'spot': {
189
+ 'sandbox': false,
190
+ 'createOrder': {
191
+ 'marginMode': false,
192
+ 'triggerPrice': false,
193
+ 'triggerPriceType': undefined,
194
+ 'triggerDirection': false,
195
+ 'stopLossPrice': false,
196
+ 'takeProfitPrice': false,
197
+ 'attachedStopLossTakeProfit': undefined,
198
+ 'timeInForce': {
199
+ 'IOC': false,
200
+ 'FOK': false,
201
+ 'PO': false,
202
+ 'GTD': false,
203
+ },
204
+ 'hedged': false,
205
+ 'trailing': false,
206
+ 'leverage': false,
207
+ 'marketBuyByCost': false,
208
+ 'marketBuyRequiresPrice': false,
209
+ 'selfTradePrevention': false,
210
+ 'iceberg': false,
211
+ },
212
+ 'createOrders': undefined,
213
+ 'fetchMyTrades': {
214
+ 'marginMode': false,
215
+ 'limit': 1000,
216
+ 'daysBack': 100000,
217
+ 'untilDays': 100000, // todo
218
+ },
219
+ 'fetchOrder': {
220
+ 'marginMode': false,
221
+ 'trigger': false,
222
+ 'trailing': false,
223
+ },
224
+ 'fetchOpenOrders': {
225
+ 'marginMode': false,
226
+ 'limit': 1000,
227
+ 'trigger': false,
228
+ 'trailing': false,
229
+ },
230
+ 'fetchOrders': undefined,
231
+ 'fetchClosedOrders': {
232
+ 'marginMode': false,
233
+ 'limit': 1000,
234
+ 'daysBack': undefined,
235
+ 'daysBackCanceled': undefined,
236
+ 'untilDays': undefined,
237
+ 'trigger': false,
238
+ 'trailing': false,
239
+ },
240
+ 'fetchOHLCV': undefined,
241
+ },
242
+ 'swap': {
243
+ 'linear': undefined,
244
+ 'inverse': undefined,
245
+ },
246
+ 'future': {
247
+ 'linear': undefined,
248
+ 'inverse': undefined,
249
+ },
250
+ },
187
251
  });
188
252
  }
189
253
  /**
@@ -158,6 +158,71 @@ class mercado extends mercado$1 {
158
158
  'XRP': 0.1,
159
159
  },
160
160
  },
161
+ 'features': {
162
+ 'spot': {
163
+ 'sandbox': false,
164
+ 'createOrder': {
165
+ 'marginMode': false,
166
+ 'triggerPrice': false,
167
+ 'triggerPriceType': undefined,
168
+ 'triggerDirection': false,
169
+ 'stopLossPrice': false,
170
+ 'takeProfitPrice': false,
171
+ 'attachedStopLossTakeProfit': undefined,
172
+ 'timeInForce': {
173
+ 'IOC': false,
174
+ 'FOK': false,
175
+ 'PO': true,
176
+ 'GTD': false,
177
+ },
178
+ 'hedged': false,
179
+ 'trailing': false,
180
+ 'leverage': false,
181
+ 'marketBuyByCost': true,
182
+ 'marketBuyRequiresPrice': true,
183
+ 'selfTradePrevention': false,
184
+ 'iceberg': false,
185
+ },
186
+ 'createOrders': undefined,
187
+ 'fetchMyTrades': {
188
+ 'marginMode': false,
189
+ 'limit': undefined,
190
+ 'daysBack': 100000,
191
+ 'untilDays': 100000, // todo
192
+ },
193
+ 'fetchOrder': {
194
+ 'marginMode': false,
195
+ 'trigger': false,
196
+ 'trailing': false,
197
+ },
198
+ 'fetchOpenOrders': {
199
+ 'marginMode': false,
200
+ 'limit': undefined,
201
+ 'trigger': false,
202
+ 'trailing': false,
203
+ },
204
+ 'fetchOrders': {
205
+ 'marginMode': false,
206
+ 'limit': 500,
207
+ 'daysBack': 100000,
208
+ 'untilDays': 100000,
209
+ 'trigger': false,
210
+ 'trailing': false,
211
+ },
212
+ 'fetchClosedOrders': undefined,
213
+ 'fetchOHLCV': {
214
+ 'limit': 1000,
215
+ },
216
+ },
217
+ 'swap': {
218
+ 'linear': undefined,
219
+ 'inverse': undefined,
220
+ },
221
+ 'future': {
222
+ 'linear': undefined,
223
+ 'inverse': undefined,
224
+ },
225
+ },
161
226
  'precisionMode': number.TICK_SIZE,
162
227
  });
163
228
  }