ccxt 4.4.70 → 4.4.71

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 (60) hide show
  1. package/README.md +5 -8
  2. package/dist/ccxt.browser.min.js +7 -7
  3. package/dist/cjs/ccxt.js +1 -6
  4. package/dist/cjs/src/abstract/poloniexfutures.js +1 -1
  5. package/dist/cjs/src/base/Exchange.js +22 -0
  6. package/dist/cjs/src/binance.js +106 -101
  7. package/dist/cjs/src/bingx.js +64 -42
  8. package/dist/cjs/src/bitget.js +1 -5
  9. package/dist/cjs/src/bitmart.js +15 -1
  10. package/dist/cjs/src/bitopro.js +1 -0
  11. package/dist/cjs/src/bitrue.js +1 -0
  12. package/dist/cjs/src/cex.js +1 -0
  13. package/dist/cjs/src/coinbaseexchange.js +1 -0
  14. package/dist/cjs/src/deribit.js +1 -0
  15. package/dist/cjs/src/hashkey.js +4 -2
  16. package/dist/cjs/src/kraken.js +83 -6
  17. package/dist/cjs/src/kucoin.js +4 -2
  18. package/dist/cjs/src/mexc.js +8 -4
  19. package/dist/cjs/src/okx.js +58 -46
  20. package/dist/cjs/src/poloniex.js +1311 -81
  21. package/dist/cjs/src/poloniexfutures.js +1 -1
  22. package/dist/cjs/src/pro/binance.js +94 -94
  23. package/dist/cjs/src/pro/bingx.js +63 -52
  24. package/dist/cjs/src/pro/poloniexfutures.js +1 -1
  25. package/dist/cjs/src/whitebit.js +4 -2
  26. package/js/ccxt.d.ts +3 -9
  27. package/js/ccxt.js +2 -6
  28. package/js/src/abstract/bingx.d.ts +1 -0
  29. package/js/src/abstract/bitmart.d.ts +1 -0
  30. package/js/src/abstract/poloniex.d.ts +36 -0
  31. package/js/src/abstract/poloniexfutures.js +6 -0
  32. package/js/src/base/Exchange.d.ts +11 -2
  33. package/js/src/base/Exchange.js +22 -0
  34. package/js/src/base/types.d.ts +31 -0
  35. package/js/src/binance.d.ts +98 -97
  36. package/js/src/binance.js +106 -101
  37. package/js/src/bingx.js +64 -42
  38. package/js/src/bitget.js +1 -5
  39. package/js/src/bitmart.d.ts +1 -0
  40. package/js/src/bitmart.js +15 -1
  41. package/js/src/bitopro.js +1 -0
  42. package/js/src/bitrue.js +1 -0
  43. package/js/src/cex.js +1 -0
  44. package/js/src/coinbaseexchange.js +1 -0
  45. package/js/src/deribit.js +1 -0
  46. package/js/src/hashkey.js +4 -2
  47. package/js/src/kraken.d.ts +1 -0
  48. package/js/src/kraken.js +83 -6
  49. package/js/src/kucoin.js +4 -2
  50. package/js/src/mexc.js +8 -4
  51. package/js/src/okx.js +58 -46
  52. package/js/src/poloniex.d.ts +109 -1
  53. package/js/src/poloniex.js +1311 -81
  54. package/js/src/poloniexfutures.js +6 -0
  55. package/js/src/pro/binance.d.ts +94 -94
  56. package/js/src/pro/binance.js +94 -94
  57. package/js/src/pro/bingx.js +63 -52
  58. package/js/src/pro/poloniexfutures.js +6 -0
  59. package/js/src/whitebit.js +4 -2
  60. package/package.json +1 -1
package/js/src/bingx.js CHANGED
@@ -39,6 +39,7 @@ export default class bingx extends Exchange {
39
39
  'createOrder': true,
40
40
  'createOrders': true,
41
41
  'createOrderWithTakeProfitAndStopLoss': true,
42
+ 'createReduceOnlyOrder': true,
42
43
  'createStopLossOrder': true,
43
44
  'createStopOrder': true,
44
45
  'createTakeProfitOrder': true,
@@ -156,6 +157,7 @@ export default class bingx extends Exchange {
156
157
  'trade/myTrades': 2,
157
158
  'user/commissionRate': 5,
158
159
  'account/balance': 2,
160
+ 'account/allAccountBalance': 2,
159
161
  },
160
162
  'post': {
161
163
  'trade/order': 2,
@@ -1454,62 +1456,82 @@ export default class bingx extends Exchange {
1454
1456
  // spot
1455
1457
  //
1456
1458
  // {
1457
- // "code": 0,
1458
- // "data": {
1459
- // "bids": [
1460
- // [
1461
- // "26324.73",
1462
- // "0.37655"
1463
- // ],
1464
- // [
1465
- // "26324.71",
1466
- // "0.31888"
1467
- // ],
1468
- // ],
1469
- // "asks": [
1470
- // [
1471
- // "26340.30",
1472
- // "6.45221"
1459
+ // "code":0,
1460
+ // "timestamp":1743240504535,
1461
+ // "data":{
1462
+ // "bids":[
1463
+ // ["83775.39","1.981875"],
1464
+ // ["83775.38","0.001076"],
1465
+ // ["83775.34","0.254716"],
1473
1466
  // ],
1474
- // [
1475
- // "26340.15",
1476
- // "6.73261"
1467
+ // "asks":[
1468
+ // ["83985.40","0.000013"],
1469
+ // ["83980.00","0.000011"],
1470
+ // ["83975.70","0.000061000000000000005"],
1477
1471
  // ],
1478
- // ]}
1472
+ // "ts":1743240504535,
1473
+ // "lastUpdateId":13565639906
1474
+ // }
1479
1475
  // }
1480
1476
  //
1481
- // swap
1477
+ //
1478
+ // linear swap
1482
1479
  //
1483
1480
  // {
1484
- // "code": 0,
1485
- // "msg": "",
1486
- // "data": {
1487
- // "T": 1683914263304,
1488
- // "bids": [
1489
- // [
1490
- // "26300.90000000",
1491
- // "30408.00000000"
1481
+ // "code":0,
1482
+ // "msg":"",
1483
+ // "data":{
1484
+ // "T":1743240836255,
1485
+ // "bids":[
1486
+ // ["83760.7","7.0861"],
1487
+ // ["83760.6","0.0044"],
1488
+ // ["83757.7","1.9526"],
1492
1489
  // ],
1493
- // [
1494
- // "26300.80000000",
1495
- // "50906.00000000"
1490
+ // "asks":[
1491
+ // ["83784.3","8.3531"],
1492
+ // ["83782.8","23.7289"],
1493
+ // ["83780.1","18.0617"],
1496
1494
  // ],
1497
- // ],
1498
- // "asks": [
1499
- // [
1500
- // "26301.00000000",
1501
- // "43616.00000000"
1495
+ // "bidsCoin":[
1496
+ // ["83760.7","0.0007"],
1497
+ // ["83760.6","0.0000"],
1498
+ // ["83757.7","0.0002"],
1502
1499
  // ],
1503
- // [
1504
- // "26301.10000000",
1505
- // "49402.00000000"
1500
+ // "asksCoin":[
1501
+ // ["83784.3","0.0008"],
1502
+ // ["83782.8","0.0024"],
1503
+ // ["83780.1","0.0018"],
1504
+ // ]
1505
+ // }
1506
+ // }
1507
+ //
1508
+ // inverse swap
1509
+ //
1510
+ // {
1511
+ // "code":0,
1512
+ // "msg":"",
1513
+ // "timestamp":1743240979146,
1514
+ // "data":{
1515
+ // "T":1743240978691,
1516
+ // "bids":[
1517
+ // ["83611.4","241.0"],
1518
+ // ["83611.3","1.0"],
1519
+ // ["83602.9","666.0"],
1506
1520
  // ],
1507
- // ]}
1521
+ // "asks":[
1522
+ // ["83645.0","4253.0"],
1523
+ // ["83640.5","3188.0"],
1524
+ // ["83636.0","5540.0"],
1525
+ // ]
1526
+ // }
1508
1527
  // }
1509
1528
  //
1510
1529
  const orderbook = this.safeDict(response, 'data', {});
1530
+ const nonce = this.safeInteger(orderbook, 'lastUpdateId');
1511
1531
  const timestamp = this.safeInteger2(orderbook, 'T', 'ts');
1512
- return this.parseOrderBook(orderbook, market['symbol'], timestamp, 'bids', 'asks', 0, 1);
1532
+ const result = this.parseOrderBook(orderbook, market['symbol'], timestamp, 'bids', 'asks', 0, 1);
1533
+ result['nonce'] = nonce;
1534
+ return result;
1513
1535
  }
1514
1536
  /**
1515
1537
  * @method
package/js/src/bitget.js CHANGED
@@ -1744,11 +1744,7 @@ export default class bitget extends Exchange {
1744
1744
  if (this.options['adjustForTimeDifference']) {
1745
1745
  await this.loadTimeDifference();
1746
1746
  }
1747
- const sandboxMode = this.safeBool(this.options, 'sandboxMode', false);
1748
- let types = this.safeValue(this.options, 'fetchMarkets', ['spot', 'swap']);
1749
- if (sandboxMode) {
1750
- types = ['swap'];
1751
- }
1747
+ const types = this.safeValue(this.options, 'fetchMarkets', ['spot', 'swap']);
1752
1748
  const promises = [];
1753
1749
  let fetchMargins = false;
1754
1750
  for (let i = 0; i < types.length; i++) {
@@ -634,6 +634,7 @@ export default class bitmart extends Exchange {
634
634
  * @see https://developer-pro.bitmart.com/en/futuresv2/#modify-plan-order-signed
635
635
  * @see https://developer-pro.bitmart.com/en/futuresv2/#modify-tp-sl-order-signed
636
636
  * @see https://developer-pro.bitmart.com/en/futuresv2/#modify-preset-plan-order-signed
637
+ * @see https://developer-pro.bitmart.com/en/futuresv2/#modify-limit-order-signed
637
638
  * @param {string} id order id
638
639
  * @param {string} symbol unified symbol of the market to edit an order in
639
640
  * @param {string} type 'market' or 'limit'
package/js/src/bitmart.js CHANGED
@@ -39,6 +39,7 @@ export default class bitmart extends Exchange {
39
39
  'createOrder': true,
40
40
  'createOrders': true,
41
41
  'createPostOnlyOrder': true,
42
+ 'createReduceOnlyOrder': true,
42
43
  'createStopLimitOrder': false,
43
44
  'createStopMarketOrder': false,
44
45
  'createStopOrder': false,
@@ -256,6 +257,7 @@ export default class bitmart extends Exchange {
256
257
  'contract/private/submit-tp-sl-order': 2.5,
257
258
  'contract/private/modify-plan-order': 2.5,
258
259
  'contract/private/modify-preset-plan-order': 2.5,
260
+ 'contract/private/modify-limit-order': 2.5,
259
261
  'contract/private/modify-tp-sl-order': 2.5,
260
262
  'contract/private/submit-trail-order': 2.5,
261
263
  'contract/private/cancel-trail-order': 1.5, // weight is not provided by the exchange, is set as ordinary order
@@ -5116,6 +5118,7 @@ export default class bitmart extends Exchange {
5116
5118
  * @see https://developer-pro.bitmart.com/en/futuresv2/#modify-plan-order-signed
5117
5119
  * @see https://developer-pro.bitmart.com/en/futuresv2/#modify-tp-sl-order-signed
5118
5120
  * @see https://developer-pro.bitmart.com/en/futuresv2/#modify-preset-plan-order-signed
5121
+ * @see https://developer-pro.bitmart.com/en/futuresv2/#modify-limit-order-signed
5119
5122
  * @param {string} id order id
5120
5123
  * @param {string} symbol unified symbol of the market to edit an order in
5121
5124
  * @param {string} type 'market' or 'limit'
@@ -5151,6 +5154,7 @@ export default class bitmart extends Exchange {
5151
5154
  const isTakeProfit = takeProfitPrice !== undefined;
5152
5155
  const isPresetStopLoss = presetStopLoss !== undefined;
5153
5156
  const isPresetTakeProfit = presetTakeProfit !== undefined;
5157
+ const isLimitOrder = (type === 'limit');
5154
5158
  const request = {
5155
5159
  'symbol': market['id'],
5156
5160
  };
@@ -5226,8 +5230,18 @@ export default class bitmart extends Exchange {
5226
5230
  // }
5227
5231
  //
5228
5232
  }
5233
+ else if (isLimitOrder) {
5234
+ request['order_id'] = this.parseToInt(id); // reparse id as int this endpoint is the only one requiring it
5235
+ if (amount !== undefined) {
5236
+ request['size'] = this.amountToPrecision(symbol, amount);
5237
+ }
5238
+ if (price !== undefined) {
5239
+ request['price'] = this.priceToPrecision(symbol, price);
5240
+ }
5241
+ response = await this.privatePostContractPrivateModifyLimitOrder(this.extend(request, params));
5242
+ }
5229
5243
  else {
5230
- throw new NotSupported(this.id + ' editOrder() only supports trigger, stop loss and take profit orders');
5244
+ throw new NotSupported(this.id + ' editOrder() only supports limit, trigger, stop loss and take profit orders');
5231
5245
  }
5232
5246
  const data = this.safeDict(response, 'data', {});
5233
5247
  return this.parseOrder(data, market);
package/js/src/bitopro.js CHANGED
@@ -31,6 +31,7 @@ export default class bitopro extends Exchange {
31
31
  'closeAllPositions': false,
32
32
  'closePosition': false,
33
33
  'createOrder': true,
34
+ 'createReduceOnlyOrder': false,
34
35
  'createStopOrder': true,
35
36
  'createTriggerOrder': true,
36
37
  'editOrder': false,
package/js/src/bitrue.js CHANGED
@@ -33,6 +33,7 @@ export default class bitrue extends Exchange {
33
33
  'createMarketOrderWithCost': false,
34
34
  'createMarketSellOrderWithCost': false,
35
35
  'createOrder': true,
36
+ 'createReduceOnlyOrder': true,
36
37
  'createStopLimitOrder': true,
37
38
  'createStopMarketOrder': true,
38
39
  'createStopOrder': true,
package/js/src/cex.js CHANGED
@@ -27,6 +27,7 @@ export default class cex extends Exchange {
27
27
  'cancelAllOrders': true,
28
28
  'cancelOrder': true,
29
29
  'createOrder': true,
30
+ 'createReduceOnlyOrder': false,
30
31
  'createStopOrder': true,
31
32
  'createTriggerOrder': true,
32
33
  'fetchAccounts': true,
@@ -29,6 +29,7 @@ export default class coinbaseexchange extends Exchange {
29
29
  'cancelOrder': true,
30
30
  'createDepositAddress': true,
31
31
  'createOrder': true,
32
+ 'createReduceOnlyOrder': false,
32
33
  'createStopLimitOrder': true,
33
34
  'createStopMarketOrder': true,
34
35
  'createStopOrder': true,
package/js/src/deribit.js CHANGED
@@ -34,6 +34,7 @@ export default class deribit extends Exchange {
34
34
  'cancelOrders': false,
35
35
  'createDepositAddress': true,
36
36
  'createOrder': true,
37
+ 'createReduceOnlyOrder': true,
37
38
  'createStopLimitOrder': true,
38
39
  'createStopMarketOrder': true,
39
40
  'createStopOrder': true,
package/js/src/hashkey.js CHANGED
@@ -2441,8 +2441,10 @@ export default class hashkey extends Exchange {
2441
2441
  if (!market['spot']) {
2442
2442
  throw new NotSupported(this.id + ' createMarketBuyOrderWithCost() is supported for spot markets only');
2443
2443
  }
2444
- params['cost'] = cost;
2445
- return await this.createOrder(symbol, 'market', 'buy', cost, undefined, params);
2444
+ const req = {
2445
+ 'cost': cost,
2446
+ };
2447
+ return await this.createOrder(symbol, 'market', 'buy', cost, undefined, this.extend(req, params));
2446
2448
  }
2447
2449
  /**
2448
2450
  * @method
@@ -43,6 +43,7 @@ export default class kraken extends Exchange {
43
43
  * @returns {object} an associative dictionary of currencies
44
44
  */
45
45
  fetchCurrencies(params?: {}): Promise<Currencies>;
46
+ safeCurrencyCode(currencyId: Str, currency?: Currency): Str;
46
47
  /**
47
48
  * @method
48
49
  * @name kraken#fetchTradingFee
package/js/src/kraken.js CHANGED
@@ -222,13 +222,13 @@ export default class kraken extends Exchange {
222
222
  },
223
223
  },
224
224
  'commonCurrencies': {
225
+ // about X & Z prefixes and .S & .M suffixes, see comment under fetchCurrencies
225
226
  'LUNA': 'LUNC',
226
227
  'LUNA2': 'LUNA',
227
228
  'REPV2': 'REP',
228
229
  'REP': 'REPV1',
229
230
  'UST': 'USTC',
230
231
  'XBT': 'BTC',
231
- 'XBT.M': 'BTC.M',
232
232
  'XDG': 'DOGE',
233
233
  },
234
234
  'options': {
@@ -768,9 +768,48 @@ export default class kraken extends Exchange {
768
768
  // {
769
769
  // "error": [],
770
770
  // "result": {
771
- // "BCH": {
771
+ // "ATOM": {
772
772
  // "aclass": "currency",
773
- // "altname": "BCH",
773
+ // "altname": "ATOM",
774
+ // "collateral_value": "0.7",
775
+ // "decimals": 8,
776
+ // "display_decimals": 6,
777
+ // "margin_rate": 0.02,
778
+ // "status": "enabled",
779
+ // },
780
+ // "ATOM.S": {
781
+ // "aclass": "currency",
782
+ // "altname": "ATOM.S",
783
+ // "decimals": 8,
784
+ // "display_decimals": 6,
785
+ // "status": "enabled",
786
+ // },
787
+ // "XXBT": {
788
+ // "aclass": "currency",
789
+ // "altname": "XBT",
790
+ // "decimals": 10,
791
+ // "display_decimals": 5,
792
+ // "margin_rate": 0.01,
793
+ // "status": "enabled",
794
+ // },
795
+ // "XETH": {
796
+ // "aclass": "currency",
797
+ // "altname": "ETH",
798
+ // "decimals": 10,
799
+ // "display_decimals": 5
800
+ // "margin_rate": 0.02,
801
+ // "status": "enabled",
802
+ // },
803
+ // "XBT.M": {
804
+ // "aclass": "currency",
805
+ // "altname": "XBT.M",
806
+ // "decimals": 10,
807
+ // "display_decimals": 5
808
+ // "status": "enabled",
809
+ // },
810
+ // "ETH.M": {
811
+ // "aclass": "currency",
812
+ // "altname": "ETH.M",
774
813
  // "decimals": 10,
775
814
  // "display_decimals": 5
776
815
  // "status": "enabled",
@@ -789,7 +828,30 @@ export default class kraken extends Exchange {
789
828
  // see: https://support.kraken.com/hc/en-us/articles/201893608-What-are-the-withdrawal-fees-
790
829
  // to add support for multiple withdrawal/deposit methods and
791
830
  // differentiated fees for each particular method
792
- const code = this.safeCurrencyCode(id);
831
+ //
832
+ // Notes about abbreviations:
833
+ // Z and X prefixes: https://support.kraken.com/hc/en-us/articles/360001206766-Bitcoin-currency-code-XBT-vs-BTC
834
+ // S and M suffixes: https://support.kraken.com/hc/en-us/articles/360039879471-What-is-Asset-S-and-Asset-M-
835
+ //
836
+ let code = this.safeCurrencyCode(id);
837
+ // the below can not be reliable done in `safeCurrencyCode`, so we have to do it here
838
+ if (id.indexOf('.') < 0) {
839
+ const altName = this.safeString(currency, 'altname');
840
+ // handle cases like below:
841
+ //
842
+ // id | altname
843
+ // ---------------
844
+ // XXBT | XBT
845
+ // ZUSD | USD
846
+ if (id !== altName && (id.startsWith('X') || id.startsWith('Z'))) {
847
+ code = this.safeCurrencyCode(altName);
848
+ // also, add map in commonCurrencies:
849
+ this.commonCurrencies[id] = code;
850
+ }
851
+ else {
852
+ code = this.safeCurrencyCode(id);
853
+ }
854
+ }
793
855
  const precision = this.parseNumber(this.parsePrecision(this.safeString(currency, 'decimals')));
794
856
  // assumes all currencies are active except those listed above
795
857
  const active = this.safeString(currency, 'status') === 'enabled';
@@ -818,6 +880,19 @@ export default class kraken extends Exchange {
818
880
  }
819
881
  return result;
820
882
  }
883
+ safeCurrencyCode(currencyId, currency = undefined) {
884
+ if (currencyId === undefined) {
885
+ return currencyId;
886
+ }
887
+ if (currencyId.indexOf('.') > 0) {
888
+ // if ID contains .M, .S or .F, then it can't contain X or Z prefix. in such case, ID equals to ALTNAME
889
+ const parts = currencyId.split('.');
890
+ const firstPart = this.safeString(parts, 0);
891
+ const secondPart = this.safeString(parts, 1);
892
+ return super.safeCurrencyCode(firstPart, currency) + '.' + secondPart;
893
+ }
894
+ return super.safeCurrencyCode(currencyId, currency);
895
+ }
821
896
  /**
822
897
  * @method
823
898
  * @name kraken#fetchTradingFee
@@ -1514,8 +1589,10 @@ export default class kraken extends Exchange {
1514
1589
  async createMarketOrderWithCost(symbol, side, cost, params = {}) {
1515
1590
  await this.loadMarkets();
1516
1591
  // only buy orders are supported by the endpoint
1517
- params['cost'] = cost;
1518
- return await this.createOrder(symbol, 'market', side, cost, undefined, params);
1592
+ const req = {
1593
+ 'cost': cost,
1594
+ };
1595
+ return await this.createOrder(symbol, 'market', side, cost, undefined, this.extend(req, params));
1519
1596
  }
1520
1597
  /**
1521
1598
  * @method
package/js/src/kucoin.js CHANGED
@@ -2296,8 +2296,10 @@ export default class kucoin extends Exchange {
2296
2296
  */
2297
2297
  async createMarketOrderWithCost(symbol, side, cost, params = {}) {
2298
2298
  await this.loadMarkets();
2299
- params['cost'] = cost;
2300
- return await this.createOrder(symbol, 'market', side, cost, undefined, params);
2299
+ const req = {
2300
+ 'cost': cost,
2301
+ };
2302
+ return await this.createOrder(symbol, 'market', side, cost, undefined, this.extend(req, params));
2301
2303
  }
2302
2304
  /**
2303
2305
  * @method
package/js/src/mexc.js CHANGED
@@ -2254,8 +2254,10 @@ export default class mexc extends Exchange {
2254
2254
  if (!market['spot']) {
2255
2255
  throw new NotSupported(this.id + ' createMarketBuyOrderWithCost() supports spot orders only');
2256
2256
  }
2257
- params['cost'] = cost;
2258
- return await this.createOrder(symbol, 'market', 'buy', 0, undefined, params);
2257
+ const req = {
2258
+ 'cost': cost,
2259
+ };
2260
+ return await this.createOrder(symbol, 'market', 'buy', 0, undefined, this.extend(req, params));
2259
2261
  }
2260
2262
  /**
2261
2263
  * @method
@@ -2273,8 +2275,10 @@ export default class mexc extends Exchange {
2273
2275
  if (!market['spot']) {
2274
2276
  throw new NotSupported(this.id + ' createMarketBuyOrderWithCost() supports spot orders only');
2275
2277
  }
2276
- params['cost'] = cost;
2277
- return await this.createOrder(symbol, 'market', 'sell', 0, undefined, params);
2278
+ const req = {
2279
+ 'cost': cost,
2280
+ };
2281
+ return await this.createOrder(symbol, 'market', 'sell', 0, undefined, this.extend(req, params));
2278
2282
  }
2279
2283
  /**
2280
2284
  * @method
package/js/src/okx.js CHANGED
@@ -984,71 +984,64 @@ export default class okx extends Exchange {
984
984
  'networks': {
985
985
  'BTC': 'Bitcoin',
986
986
  'BTCLN': 'Lightning',
987
+ 'BTCLIGHTNING': 'Lightning',
987
988
  'BEP20': 'BSC',
989
+ 'BRC20': 'BRC20',
988
990
  'ERC20': 'ERC20',
989
991
  'TRC20': 'TRC20',
990
992
  'CRC20': 'Crypto',
991
- // sorted
992
993
  'ACA': 'Acala',
993
994
  'ALGO': 'Algorand',
994
- 'BHP': 'BHP',
995
995
  'APT': 'Aptos',
996
+ 'SCROLL': 'Scroll',
996
997
  'ARBONE': 'Arbitrum One',
997
998
  'AVAXC': 'Avalanche C-Chain',
998
999
  'AVAXX': 'Avalanche X-Chain',
999
- 'ARK': 'ARK',
1000
+ 'BASE': 'Base',
1001
+ 'SUI': 'SUI',
1002
+ 'ZKSYNCERA': 'zkSync Era',
1003
+ 'LINEA': 'Linea',
1000
1004
  'AR': 'Arweave',
1001
1005
  'ASTR': 'Astar',
1002
1006
  'BCH': 'BitcoinCash',
1003
1007
  'BSV': 'Bitcoin SV',
1004
- 'BTM': 'Bytom',
1005
1008
  'ADA': 'Cardano',
1006
1009
  'CSPR': 'Casper',
1007
1010
  'CELO': 'CELO',
1008
1011
  'XCH': 'Chia',
1009
- 'CHZ': 'Chiliz',
1012
+ // 'CHZ': 'Chiliz', TBD: Chiliz 2.0 Chain vs Chiliz Chain
1010
1013
  'ATOM': 'Cosmos',
1011
- 'TRUE': 'TrueChain',
1012
- 'DCR': 'Decred',
1013
1014
  'DGB': 'Digibyte',
1014
1015
  'DOGE': 'Dogecoin',
1015
- 'XEC': 'XEC',
1016
1016
  'EGLD': 'Elrond',
1017
+ 'CFX': 'Conflux',
1017
1018
  'EOS': 'EOS',
1019
+ 'CORE': 'CORE',
1018
1020
  'ETC': 'Ethereum Classic',
1019
1021
  'ETHW': 'EthereumPow',
1020
- 'FTM': 'Fantom',
1022
+ // 'FTM': 'Fantom', 'Sonic' TBD
1021
1023
  'FIL': 'Filecoin',
1022
- 'FLOW': 'FLOW',
1023
- 'FSN': 'Fusion',
1024
1024
  'ONE': 'Harmony',
1025
1025
  'HBAR': 'Hedera',
1026
- 'HNT': 'Helium',
1027
- 'ZEN': 'Horizen',
1028
1026
  'ICX': 'ICON',
1029
1027
  'ICP': 'Dfinity',
1030
1028
  'IOST': 'IOST',
1031
1029
  'IOTA': 'MIOTA',
1032
- 'KDA': 'Kadena',
1033
- 'KAR': 'KAR',
1034
1030
  'KLAY': 'Klaytn',
1035
1031
  'KSM': 'Kusama',
1036
1032
  'LSK': 'Lisk',
1037
1033
  'LTC': 'Litecoin',
1038
1034
  'METIS': 'Metis',
1039
1035
  'MINA': 'Mina',
1040
- 'XMR': 'Monero',
1041
1036
  'GLRM': 'Moonbeam',
1042
1037
  'MOVR': 'Moonriver',
1043
1038
  'NANO': 'Nano',
1044
1039
  'NEAR': 'NEAR',
1045
- 'NAS': 'Nebulas',
1046
- 'NEM': 'New Economy Movement',
1047
1040
  'NULS': 'NULS',
1048
1041
  'OASYS': 'OASYS',
1049
- 'OKC': 'OKC',
1050
1042
  'ONT': 'Ontology',
1051
1043
  'OPTIMISM': 'Optimism',
1044
+ // 'OP': 'Optimism', or Optimism (V2), TBD
1052
1045
  'LAT': 'PlatON',
1053
1046
  'DOT': 'Polkadot',
1054
1047
  'MATIC': 'Polygon',
@@ -1061,35 +1054,54 @@ export default class okx extends Exchange {
1061
1054
  'XTZ': 'Tezos',
1062
1055
  'TON': 'TON',
1063
1056
  'THETA': 'Theta',
1064
- 'VSYS': 'VSYSTEMS',
1065
- 'WAVES': 'WAVES',
1066
1057
  'WAX': 'Wax',
1067
- 'ZEC': 'Zcash',
1068
1058
  'ZIL': 'Zilliqa',
1069
- 'ZKSYNC': 'ZKSYNC',
1070
- 'OMNI': 'Omni',
1071
- // 'NEON3': 'N3', // tbd
1072
- // undetermined : "CELO-TOKEN", "Digital Cash", Khala
1073
- // todo: uncomment below after consensus
1074
- // 'AELF': 'AELF',
1075
- // 'BITCOINDIAMOND': 'Bitcoin Diamond',
1076
- // 'BITCOINGOLD': 'BitcoinGold',
1077
- // 'YOYOW': 'YOYOW',
1078
- // 'QTUM': 'Quantum',
1079
- // 'INTCHAIN': 'INTCHAIN',
1080
- // 'YOUCHAIN': 'YOUCHAIN',
1081
- // 'RONIN': 'Ronin',
1082
- // 'OEC': 'OEC',
1083
- // 'WAYIKICHAIN': 'WGRT',
1084
- // 'MDNA': 'DNA',
1085
- // 'STEP': 'Step Network',
1086
- // 'EMINER': 'Eminer',
1087
- // 'CYBERMILES': 'CyberMiles',
1088
- // 'HYPERCASH': 'HyperCash',
1089
- // 'CONFLUX': 'Conflux',
1090
- // 'CORTEX': 'Cortex',
1091
- // 'TERRA': 'Terra',
1092
- // 'TERRACLASSIC': 'Terra Classic',
1059
+ // non-supported known network: CRP. KAVA, TAIKO, BOB, GNO, BLAST, RSK, SEI, MANTLE, HYPE, RUNE, OSMO, XIN, WEMIX, HT, FSN, NEO, TLOS, CANTO, SCRT, AURORA, XMR
1060
+ // others:
1061
+ // "OKTC",
1062
+ // "X Layer",
1063
+ // "Polygon (Bridged)",
1064
+ // "BTCK-OKTC",
1065
+ // "ETHK-OKTC",
1066
+ // "Starknet",
1067
+ // "LTCK-OKTC",
1068
+ // "XRPK-OKTC",
1069
+ // "BCHK-OKTC",
1070
+ // "ETCK-OKTC",
1071
+ // "Endurance Smart Chain",
1072
+ // "Berachain",
1073
+ // "CELO-TOKEN",
1074
+ // "CFX_EVM",
1075
+ // "Cortex",
1076
+ // "DAIK-OKTC",
1077
+ // "Dora Vota Mainnet",
1078
+ // "DOTK-OKTC",
1079
+ // "DYDX",
1080
+ // "AELF",
1081
+ // "Enjin Relay Chain",
1082
+ // "FEVM",
1083
+ // "FILK-OKTC",
1084
+ // "Flare",
1085
+ // "Gravity Alpha Mainnet",
1086
+ // "INJ",
1087
+ // "Story",
1088
+ // "LINKK-OKTC",
1089
+ // "Terra",
1090
+ // "Terra Classic",
1091
+ // "Terra Classic (USTC)",
1092
+ // "MERLIN Network",
1093
+ // "Layer 3",
1094
+ // "PI",
1095
+ // "Ronin",
1096
+ // "Quantum",
1097
+ // "SHIBK-OKTC",
1098
+ // "SUSHIK-OKTC",
1099
+ // "Celestia",
1100
+ // "TRXK-OKTC",
1101
+ // "UNIK-OKTC",
1102
+ // "Venom",
1103
+ // "WBTCK-OKTC",
1104
+ // "ZetaChain",
1093
1105
  },
1094
1106
  'fetchOpenInterestHistory': {
1095
1107
  'timeframes': {