ccxt 4.4.70__py2.py3-none-any.whl → 4.4.71__py2.py3-none-any.whl

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. ccxt/__init__.py +1 -3
  2. ccxt/abstract/bingx.py +1 -0
  3. ccxt/abstract/bitmart.py +1 -0
  4. ccxt/abstract/poloniex.py +36 -0
  5. ccxt/async_support/__init__.py +1 -3
  6. ccxt/async_support/base/exchange.py +3 -3
  7. ccxt/async_support/binance.py +106 -101
  8. ccxt/async_support/bingx.py +64 -42
  9. ccxt/async_support/bitget.py +0 -3
  10. ccxt/async_support/bitmart.py +12 -1
  11. ccxt/async_support/bitopro.py +1 -0
  12. ccxt/async_support/bitrue.py +1 -0
  13. ccxt/async_support/cex.py +1 -0
  14. ccxt/async_support/coinbaseexchange.py +1 -0
  15. ccxt/async_support/deribit.py +1 -0
  16. ccxt/async_support/hashkey.py +4 -2
  17. ccxt/async_support/kraken.py +77 -5
  18. ccxt/async_support/kucoin.py +4 -2
  19. ccxt/async_support/mexc.py +8 -4
  20. ccxt/async_support/okx.py +58 -46
  21. ccxt/async_support/poloniex.py +1263 -85
  22. ccxt/async_support/whitebit.py +4 -2
  23. ccxt/base/exchange.py +23 -3
  24. ccxt/base/types.py +28 -0
  25. ccxt/binance.py +106 -101
  26. ccxt/bingx.py +64 -42
  27. ccxt/bitget.py +0 -3
  28. ccxt/bitmart.py +12 -1
  29. ccxt/bitopro.py +1 -0
  30. ccxt/bitrue.py +1 -0
  31. ccxt/cex.py +1 -0
  32. ccxt/coinbaseexchange.py +1 -0
  33. ccxt/deribit.py +1 -0
  34. ccxt/hashkey.py +4 -2
  35. ccxt/kraken.py +77 -5
  36. ccxt/kucoin.py +4 -2
  37. ccxt/mexc.py +8 -4
  38. ccxt/okx.py +58 -46
  39. ccxt/poloniex.py +1262 -85
  40. ccxt/pro/__init__.py +1 -3
  41. ccxt/pro/binance.py +102 -102
  42. ccxt/pro/bingx.py +62 -51
  43. ccxt/test/tests_async.py +1 -0
  44. ccxt/test/tests_sync.py +1 -0
  45. ccxt/whitebit.py +4 -2
  46. {ccxt-4.4.70.dist-info → ccxt-4.4.71.dist-info}/METADATA +6 -9
  47. {ccxt-4.4.70.dist-info → ccxt-4.4.71.dist-info}/RECORD +50 -51
  48. ccxt/abstract/poloniexfutures.py +0 -48
  49. {ccxt-4.4.70.dist-info → ccxt-4.4.71.dist-info}/LICENSE.txt +0 -0
  50. {ccxt-4.4.70.dist-info → ccxt-4.4.71.dist-info}/WHEEL +0 -0
  51. {ccxt-4.4.70.dist-info → ccxt-4.4.71.dist-info}/top_level.txt +0 -0
ccxt/bingx.py CHANGED
@@ -57,6 +57,7 @@ class bingx(Exchange, ImplicitAPI):
57
57
  'createOrder': True,
58
58
  'createOrders': True,
59
59
  'createOrderWithTakeProfitAndStopLoss': True,
60
+ 'createReduceOnlyOrder': True,
60
61
  'createStopLossOrder': True,
61
62
  'createStopOrder': True,
62
63
  'createTakeProfitOrder': True,
@@ -174,6 +175,7 @@ class bingx(Exchange, ImplicitAPI):
174
175
  'trade/myTrades': 2,
175
176
  'user/commissionRate': 5,
176
177
  'account/balance': 2,
178
+ 'account/allAccountBalance': 2,
177
179
  },
178
180
  'post': {
179
181
  'trade/order': 2,
@@ -1428,62 +1430,82 @@ class bingx(Exchange, ImplicitAPI):
1428
1430
  # spot
1429
1431
  #
1430
1432
  # {
1431
- # "code": 0,
1432
- # "data": {
1433
- # "bids": [
1434
- # [
1435
- # "26324.73",
1436
- # "0.37655"
1437
- # ],
1438
- # [
1439
- # "26324.71",
1440
- # "0.31888"
1441
- # ],
1442
- # ],
1443
- # "asks": [
1444
- # [
1445
- # "26340.30",
1446
- # "6.45221"
1433
+ # "code":0,
1434
+ # "timestamp":1743240504535,
1435
+ # "data":{
1436
+ # "bids":[
1437
+ # ["83775.39","1.981875"],
1438
+ # ["83775.38","0.001076"],
1439
+ # ["83775.34","0.254716"],
1447
1440
  # ],
1448
- # [
1449
- # "26340.15",
1450
- # "6.73261"
1441
+ # "asks":[
1442
+ # ["83985.40","0.000013"],
1443
+ # ["83980.00","0.000011"],
1444
+ # ["83975.70","0.000061000000000000005"],
1451
1445
  # ],
1452
- # ]}
1446
+ # "ts":1743240504535,
1447
+ # "lastUpdateId":13565639906
1448
+ # }
1453
1449
  # }
1454
1450
  #
1455
- # swap
1451
+ #
1452
+ # linear swap
1456
1453
  #
1457
1454
  # {
1458
- # "code": 0,
1459
- # "msg": "",
1460
- # "data": {
1461
- # "T": 1683914263304,
1462
- # "bids": [
1463
- # [
1464
- # "26300.90000000",
1465
- # "30408.00000000"
1455
+ # "code":0,
1456
+ # "msg":"",
1457
+ # "data":{
1458
+ # "T":1743240836255,
1459
+ # "bids":[
1460
+ # ["83760.7","7.0861"],
1461
+ # ["83760.6","0.0044"],
1462
+ # ["83757.7","1.9526"],
1466
1463
  # ],
1467
- # [
1468
- # "26300.80000000",
1469
- # "50906.00000000"
1464
+ # "asks":[
1465
+ # ["83784.3","8.3531"],
1466
+ # ["83782.8","23.7289"],
1467
+ # ["83780.1","18.0617"],
1470
1468
  # ],
1471
- # ],
1472
- # "asks": [
1473
- # [
1474
- # "26301.00000000",
1475
- # "43616.00000000"
1469
+ # "bidsCoin":[
1470
+ # ["83760.7","0.0007"],
1471
+ # ["83760.6","0.0000"],
1472
+ # ["83757.7","0.0002"],
1476
1473
  # ],
1477
- # [
1478
- # "26301.10000000",
1479
- # "49402.00000000"
1474
+ # "asksCoin":[
1475
+ # ["83784.3","0.0008"],
1476
+ # ["83782.8","0.0024"],
1477
+ # ["83780.1","0.0018"],
1478
+ # ]
1479
+ # }
1480
+ # }
1481
+ #
1482
+ # inverse swap
1483
+ #
1484
+ # {
1485
+ # "code":0,
1486
+ # "msg":"",
1487
+ # "timestamp":1743240979146,
1488
+ # "data":{
1489
+ # "T":1743240978691,
1490
+ # "bids":[
1491
+ # ["83611.4","241.0"],
1492
+ # ["83611.3","1.0"],
1493
+ # ["83602.9","666.0"],
1480
1494
  # ],
1481
- # ]}
1495
+ # "asks":[
1496
+ # ["83645.0","4253.0"],
1497
+ # ["83640.5","3188.0"],
1498
+ # ["83636.0","5540.0"],
1499
+ # ]
1500
+ # }
1482
1501
  # }
1483
1502
  #
1484
1503
  orderbook = self.safe_dict(response, 'data', {})
1504
+ nonce = self.safe_integer(orderbook, 'lastUpdateId')
1485
1505
  timestamp = self.safe_integer_2(orderbook, 'T', 'ts')
1486
- return self.parse_order_book(orderbook, market['symbol'], timestamp, 'bids', 'asks', 0, 1)
1506
+ result = self.parse_order_book(orderbook, market['symbol'], timestamp, 'bids', 'asks', 0, 1)
1507
+ result['nonce'] = nonce
1508
+ return result
1487
1509
 
1488
1510
  def fetch_funding_rate(self, symbol: str, params={}) -> FundingRate:
1489
1511
  """
ccxt/bitget.py CHANGED
@@ -1757,10 +1757,7 @@ class bitget(Exchange, ImplicitAPI):
1757
1757
  """
1758
1758
  if self.options['adjustForTimeDifference']:
1759
1759
  self.load_time_difference()
1760
- sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
1761
1760
  types = self.safe_value(self.options, 'fetchMarkets', ['spot', 'swap'])
1762
- if sandboxMode:
1763
- types = ['swap']
1764
1761
  promises = []
1765
1762
  fetchMargins = False
1766
1763
  for i in range(0, len(types)):
ccxt/bitmart.py CHANGED
@@ -61,6 +61,7 @@ class bitmart(Exchange, ImplicitAPI):
61
61
  'createOrder': True,
62
62
  'createOrders': True,
63
63
  'createPostOnlyOrder': True,
64
+ 'createReduceOnlyOrder': True,
64
65
  'createStopLimitOrder': False,
65
66
  'createStopMarketOrder': False,
66
67
  'createStopOrder': False,
@@ -278,6 +279,7 @@ class bitmart(Exchange, ImplicitAPI):
278
279
  'contract/private/submit-tp-sl-order': 2.5,
279
280
  'contract/private/modify-plan-order': 2.5,
280
281
  'contract/private/modify-preset-plan-order': 2.5,
282
+ 'contract/private/modify-limit-order': 2.5,
281
283
  'contract/private/modify-tp-sl-order': 2.5,
282
284
  'contract/private/submit-trail-order': 2.5, # weight is not provided by the exchange, is set order
283
285
  'contract/private/cancel-trail-order': 1.5, # weight is not provided by the exchange, is set order
@@ -4875,6 +4877,7 @@ class bitmart(Exchange, ImplicitAPI):
4875
4877
  https://developer-pro.bitmart.com/en/futuresv2/#modify-plan-order-signed
4876
4878
  https://developer-pro.bitmart.com/en/futuresv2/#modify-tp-sl-order-signed
4877
4879
  https://developer-pro.bitmart.com/en/futuresv2/#modify-preset-plan-order-signed
4880
+ https://developer-pro.bitmart.com/en/futuresv2/#modify-limit-order-signed
4878
4881
 
4879
4882
  :param str id: order id
4880
4883
  :param str symbol: unified symbol of the market to edit an order in
@@ -4909,6 +4912,7 @@ class bitmart(Exchange, ImplicitAPI):
4909
4912
  isTakeProfit = takeProfitPrice is not None
4910
4913
  isPresetStopLoss = presetStopLoss is not None
4911
4914
  isPresetTakeProfit = presetTakeProfit is not None
4915
+ isLimitOrder = (type == 'limit')
4912
4916
  request: dict = {
4913
4917
  'symbol': market['id'],
4914
4918
  }
@@ -4973,8 +4977,15 @@ class bitmart(Exchange, ImplicitAPI):
4973
4977
  # "trace": "a5c3234534534a836bc476a203.123452.172716624359200197"
4974
4978
  # }
4975
4979
  #
4980
+ elif isLimitOrder:
4981
+ request['order_id'] = self.parse_to_int(id) # reparse id self endpoint is the only one requiring it
4982
+ if amount is not None:
4983
+ request['size'] = self.amount_to_precision(symbol, amount)
4984
+ if price is not None:
4985
+ request['price'] = self.price_to_precision(symbol, price)
4986
+ response = self.privatePostContractPrivateModifyLimitOrder(self.extend(request, params))
4976
4987
  else:
4977
- raise NotSupported(self.id + ' editOrder() only supports trigger, stop loss and take profit orders')
4988
+ raise NotSupported(self.id + ' editOrder() only supports limit, trigger, stop loss and take profit orders')
4978
4989
  data = self.safe_dict(response, 'data', {})
4979
4990
  return self.parse_order(data, market)
4980
4991
 
ccxt/bitopro.py CHANGED
@@ -42,6 +42,7 @@ class bitopro(Exchange, ImplicitAPI):
42
42
  'closeAllPositions': False,
43
43
  'closePosition': False,
44
44
  'createOrder': True,
45
+ 'createReduceOnlyOrder': False,
45
46
  'createStopOrder': True,
46
47
  'createTriggerOrder': True,
47
48
  'editOrder': False,
ccxt/bitrue.py CHANGED
@@ -56,6 +56,7 @@ class bitrue(Exchange, ImplicitAPI):
56
56
  'createMarketOrderWithCost': False,
57
57
  'createMarketSellOrderWithCost': False,
58
58
  'createOrder': True,
59
+ 'createReduceOnlyOrder': True,
59
60
  'createStopLimitOrder': True,
60
61
  'createStopMarketOrder': True,
61
62
  'createStopOrder': True,
ccxt/cex.py CHANGED
@@ -38,6 +38,7 @@ class cex(Exchange, ImplicitAPI):
38
38
  'cancelAllOrders': True,
39
39
  'cancelOrder': True,
40
40
  'createOrder': True,
41
+ 'createReduceOnlyOrder': False,
41
42
  'createStopOrder': True,
42
43
  'createTriggerOrder': True,
43
44
  'fetchAccounts': True,
ccxt/coinbaseexchange.py CHANGED
@@ -43,6 +43,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
43
43
  'cancelOrder': True,
44
44
  'createDepositAddress': True,
45
45
  'createOrder': True,
46
+ 'createReduceOnlyOrder': False,
46
47
  'createStopLimitOrder': True,
47
48
  'createStopMarketOrder': True,
48
49
  'createStopOrder': True,
ccxt/deribit.py CHANGED
@@ -50,6 +50,7 @@ class deribit(Exchange, ImplicitAPI):
50
50
  'cancelOrders': False,
51
51
  'createDepositAddress': True,
52
52
  'createOrder': True,
53
+ 'createReduceOnlyOrder': True,
53
54
  'createStopLimitOrder': True,
54
55
  'createStopMarketOrder': True,
55
56
  'createStopOrder': True,
ccxt/hashkey.py CHANGED
@@ -2399,8 +2399,10 @@ class hashkey(Exchange, ImplicitAPI):
2399
2399
  market = self.market(symbol)
2400
2400
  if not market['spot']:
2401
2401
  raise NotSupported(self.id + ' createMarketBuyOrderWithCost() is supported for spot markets only')
2402
- params['cost'] = cost
2403
- return self.create_order(symbol, 'market', 'buy', cost, None, params)
2402
+ req = {
2403
+ 'cost': cost,
2404
+ }
2405
+ return self.create_order(symbol, 'market', 'buy', cost, None, self.extend(req, params))
2404
2406
 
2405
2407
  def create_spot_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}) -> Order:
2406
2408
  """
ccxt/kraken.py CHANGED
@@ -243,13 +243,13 @@ class kraken(Exchange, ImplicitAPI):
243
243
  },
244
244
  },
245
245
  'commonCurrencies': {
246
+ # about X & Z prefixes and .S & .M suffixes, see comment under fetchCurrencies
246
247
  'LUNA': 'LUNC',
247
248
  'LUNA2': 'LUNA',
248
249
  'REPV2': 'REP',
249
250
  'REP': 'REPV1',
250
251
  'UST': 'USTC',
251
252
  'XBT': 'BTC',
252
- 'XBT.M': 'BTC.M', # https://support.kraken.com/hc/en-us/articles/360039879471-What-is-Asset-S-and-Asset-M-
253
253
  'XDG': 'DOGE',
254
254
  },
255
255
  'options': {
@@ -780,9 +780,48 @@ class kraken(Exchange, ImplicitAPI):
780
780
  # {
781
781
  # "error": [],
782
782
  # "result": {
783
- # "BCH": {
783
+ # "ATOM": {
784
784
  # "aclass": "currency",
785
- # "altname": "BCH",
785
+ # "altname": "ATOM",
786
+ # "collateral_value": "0.7",
787
+ # "decimals": 8,
788
+ # "display_decimals": 6,
789
+ # "margin_rate": 0.02,
790
+ # "status": "enabled",
791
+ # },
792
+ # "ATOM.S": {
793
+ # "aclass": "currency",
794
+ # "altname": "ATOM.S",
795
+ # "decimals": 8,
796
+ # "display_decimals": 6,
797
+ # "status": "enabled",
798
+ # },
799
+ # "XXBT": {
800
+ # "aclass": "currency",
801
+ # "altname": "XBT",
802
+ # "decimals": 10,
803
+ # "display_decimals": 5,
804
+ # "margin_rate": 0.01,
805
+ # "status": "enabled",
806
+ # },
807
+ # "XETH": {
808
+ # "aclass": "currency",
809
+ # "altname": "ETH",
810
+ # "decimals": 10,
811
+ # "display_decimals": 5
812
+ # "margin_rate": 0.02,
813
+ # "status": "enabled",
814
+ # },
815
+ # "XBT.M": {
816
+ # "aclass": "currency",
817
+ # "altname": "XBT.M",
818
+ # "decimals": 10,
819
+ # "display_decimals": 5
820
+ # "status": "enabled",
821
+ # },
822
+ # "ETH.M": {
823
+ # "aclass": "currency",
824
+ # "altname": "ETH.M",
786
825
  # "decimals": 10,
787
826
  # "display_decimals": 5
788
827
  # "status": "enabled",
@@ -801,7 +840,27 @@ class kraken(Exchange, ImplicitAPI):
801
840
  # see: https://support.kraken.com/hc/en-us/articles/201893608-What-are-the-withdrawal-fees-
802
841
  # to add support for multiple withdrawal/deposit methods and
803
842
  # differentiated fees for each particular method
843
+ #
844
+ # Notes about abbreviations:
845
+ # Z and X prefixes: https://support.kraken.com/hc/en-us/articles/360001206766-Bitcoin-currency-code-XBT-vs-BTC
846
+ # S and M suffixes: https://support.kraken.com/hc/en-us/articles/360039879471-What-is-Asset-S-and-Asset-M-
847
+ #
804
848
  code = self.safe_currency_code(id)
849
+ # the below can not be reliable done in `safeCurrencyCode`, so we have to do it here
850
+ if id.find('.') < 0:
851
+ altName = self.safe_string(currency, 'altname')
852
+ # handle cases like below:
853
+ #
854
+ # id | altname
855
+ # ---------------
856
+ # XXBT | XBT
857
+ # ZUSD | USD
858
+ if id != altName and (id.startswith('X') or id.startswith('Z')):
859
+ code = self.safe_currency_code(altName)
860
+ # also, add map in commonCurrencies:
861
+ self.commonCurrencies[id] = code
862
+ else:
863
+ code = self.safe_currency_code(id)
805
864
  precision = self.parse_number(self.parse_precision(self.safe_string(currency, 'decimals')))
806
865
  # assumes all currencies are active except those listed above
807
866
  active = self.safe_string(currency, 'status') == 'enabled'
@@ -829,6 +888,17 @@ class kraken(Exchange, ImplicitAPI):
829
888
  }
830
889
  return result
831
890
 
891
+ def safe_currency_code(self, currencyId: Str, currency: Currency = None) -> Str:
892
+ if currencyId is None:
893
+ return currencyId
894
+ if currencyId.find('.') > 0:
895
+ # if ID contains .M, .S or .F, then it can't contain X or Z prefix. in such case, ID equals to ALTNAME
896
+ parts = currencyId.split('.')
897
+ firstPart = self.safe_string(parts, 0)
898
+ secondPart = self.safe_string(parts, 1)
899
+ return super(kraken, self).safe_currency_code(firstPart, currency) + '.' + secondPart
900
+ return super(kraken, self).safe_currency_code(currencyId, currency)
901
+
832
902
  def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
833
903
  """
834
904
  fetch the trading fees for a market
@@ -1492,8 +1562,10 @@ class kraken(Exchange, ImplicitAPI):
1492
1562
  """
1493
1563
  self.load_markets()
1494
1564
  # only buy orders are supported by the endpoint
1495
- params['cost'] = cost
1496
- return self.create_order(symbol, 'market', side, cost, None, params)
1565
+ req = {
1566
+ 'cost': cost,
1567
+ }
1568
+ return self.create_order(symbol, 'market', side, cost, None, self.extend(req, params))
1497
1569
 
1498
1570
  def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
1499
1571
  """
ccxt/kucoin.py CHANGED
@@ -2271,8 +2271,10 @@ class kucoin(Exchange, ImplicitAPI):
2271
2271
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2272
2272
  """
2273
2273
  self.load_markets()
2274
- params['cost'] = cost
2275
- return self.create_order(symbol, 'market', side, cost, None, params)
2274
+ req = {
2275
+ 'cost': cost,
2276
+ }
2277
+ return self.create_order(symbol, 'market', side, cost, None, self.extend(req, params))
2276
2278
 
2277
2279
  def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
2278
2280
  """
ccxt/mexc.py CHANGED
@@ -2195,8 +2195,10 @@ class mexc(Exchange, ImplicitAPI):
2195
2195
  market = self.market(symbol)
2196
2196
  if not market['spot']:
2197
2197
  raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports spot orders only')
2198
- params['cost'] = cost
2199
- return self.create_order(symbol, 'market', 'buy', 0, None, params)
2198
+ req = {
2199
+ 'cost': cost,
2200
+ }
2201
+ return self.create_order(symbol, 'market', 'buy', 0, None, self.extend(req, params))
2200
2202
 
2201
2203
  def create_market_sell_order_with_cost(self, symbol: str, cost: float, params={}):
2202
2204
  """
@@ -2213,8 +2215,10 @@ class mexc(Exchange, ImplicitAPI):
2213
2215
  market = self.market(symbol)
2214
2216
  if not market['spot']:
2215
2217
  raise NotSupported(self.id + ' createMarketBuyOrderWithCost() supports spot orders only')
2216
- params['cost'] = cost
2217
- return self.create_order(symbol, 'market', 'sell', 0, None, params)
2218
+ req = {
2219
+ 'cost': cost,
2220
+ }
2221
+ return self.create_order(symbol, 'market', 'sell', 0, None, self.extend(req, params))
2218
2222
 
2219
2223
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
2220
2224
  """
ccxt/okx.py CHANGED
@@ -1012,71 +1012,64 @@ class okx(Exchange, ImplicitAPI):
1012
1012
  'networks': {
1013
1013
  'BTC': 'Bitcoin',
1014
1014
  'BTCLN': 'Lightning',
1015
+ 'BTCLIGHTNING': 'Lightning',
1015
1016
  'BEP20': 'BSC',
1017
+ 'BRC20': 'BRC20',
1016
1018
  'ERC20': 'ERC20',
1017
1019
  'TRC20': 'TRC20',
1018
1020
  'CRC20': 'Crypto',
1019
- # sorted
1020
1021
  'ACA': 'Acala',
1021
1022
  'ALGO': 'Algorand',
1022
- 'BHP': 'BHP',
1023
1023
  'APT': 'Aptos',
1024
+ 'SCROLL': 'Scroll',
1024
1025
  'ARBONE': 'Arbitrum One',
1025
1026
  'AVAXC': 'Avalanche C-Chain',
1026
1027
  'AVAXX': 'Avalanche X-Chain',
1027
- 'ARK': 'ARK',
1028
+ 'BASE': 'Base',
1029
+ 'SUI': 'SUI',
1030
+ 'ZKSYNCERA': 'zkSync Era',
1031
+ 'LINEA': 'Linea',
1028
1032
  'AR': 'Arweave',
1029
1033
  'ASTR': 'Astar',
1030
1034
  'BCH': 'BitcoinCash',
1031
1035
  'BSV': 'Bitcoin SV',
1032
- 'BTM': 'Bytom',
1033
1036
  'ADA': 'Cardano',
1034
1037
  'CSPR': 'Casper',
1035
1038
  'CELO': 'CELO',
1036
1039
  'XCH': 'Chia',
1037
- 'CHZ': 'Chiliz',
1040
+ # 'CHZ': 'Chiliz', TBD: Chiliz 2.0 Chain vs Chiliz Chain
1038
1041
  'ATOM': 'Cosmos',
1039
- 'TRUE': 'TrueChain',
1040
- 'DCR': 'Decred',
1041
1042
  'DGB': 'Digibyte',
1042
1043
  'DOGE': 'Dogecoin',
1043
- 'XEC': 'XEC',
1044
1044
  'EGLD': 'Elrond',
1045
+ 'CFX': 'Conflux', # CFX_EVM is different
1045
1046
  'EOS': 'EOS',
1047
+ 'CORE': 'CORE',
1046
1048
  'ETC': 'Ethereum Classic',
1047
1049
  'ETHW': 'EthereumPow',
1048
- 'FTM': 'Fantom',
1050
+ # 'FTM': 'Fantom', 'Sonic' TBD
1049
1051
  'FIL': 'Filecoin',
1050
- 'FLOW': 'FLOW',
1051
- 'FSN': 'Fusion',
1052
1052
  'ONE': 'Harmony',
1053
1053
  'HBAR': 'Hedera',
1054
- 'HNT': 'Helium',
1055
- 'ZEN': 'Horizen',
1056
1054
  'ICX': 'ICON',
1057
1055
  'ICP': 'Dfinity',
1058
1056
  'IOST': 'IOST',
1059
1057
  'IOTA': 'MIOTA',
1060
- 'KDA': 'Kadena',
1061
- 'KAR': 'KAR',
1062
1058
  'KLAY': 'Klaytn',
1063
1059
  'KSM': 'Kusama',
1064
1060
  'LSK': 'Lisk',
1065
1061
  'LTC': 'Litecoin',
1066
1062
  'METIS': 'Metis',
1067
1063
  'MINA': 'Mina',
1068
- 'XMR': 'Monero',
1069
1064
  'GLRM': 'Moonbeam',
1070
1065
  'MOVR': 'Moonriver',
1071
1066
  'NANO': 'Nano',
1072
1067
  'NEAR': 'NEAR',
1073
- 'NAS': 'Nebulas',
1074
- 'NEM': 'New Economy Movement',
1075
1068
  'NULS': 'NULS',
1076
1069
  'OASYS': 'OASYS',
1077
- 'OKC': 'OKC',
1078
1070
  'ONT': 'Ontology',
1079
1071
  'OPTIMISM': 'Optimism',
1072
+ # 'OP': 'Optimism', or Optimism(V2), TBD
1080
1073
  'LAT': 'PlatON',
1081
1074
  'DOT': 'Polkadot',
1082
1075
  'MATIC': 'Polygon',
@@ -1089,35 +1082,54 @@ class okx(Exchange, ImplicitAPI):
1089
1082
  'XTZ': 'Tezos',
1090
1083
  'TON': 'TON',
1091
1084
  'THETA': 'Theta',
1092
- 'VSYS': 'VSYSTEMS',
1093
- 'WAVES': 'WAVES',
1094
1085
  'WAX': 'Wax',
1095
- 'ZEC': 'Zcash',
1096
1086
  'ZIL': 'Zilliqa',
1097
- 'ZKSYNC': 'ZKSYNC',
1098
- 'OMNI': 'Omni',
1099
- # 'NEON3': 'N3', # tbd
1100
- # undetermined : "CELO-TOKEN", "Digital Cash", Khala
1101
- # todo: uncomment below after consensus
1102
- # 'AELF': 'AELF',
1103
- # 'BITCOINDIAMOND': 'Bitcoin Diamond',
1104
- # 'BITCOINGOLD': 'BitcoinGold',
1105
- # 'YOYOW': 'YOYOW',
1106
- # 'QTUM': 'Quantum',
1107
- # 'INTCHAIN': 'INTCHAIN',
1108
- # 'YOUCHAIN': 'YOUCHAIN',
1109
- # 'RONIN': 'Ronin',
1110
- # 'OEC': 'OEC',
1111
- # 'WAYIKICHAIN': 'WGRT',
1112
- # 'MDNA': 'DNA',
1113
- # 'STEP': 'Step Network',
1114
- # 'EMINER': 'Eminer',
1115
- # 'CYBERMILES': 'CyberMiles',
1116
- # 'HYPERCASH': 'HyperCash',
1117
- # 'CONFLUX': 'Conflux',
1118
- # 'CORTEX': 'Cortex',
1119
- # 'TERRA': 'Terra',
1120
- # 'TERRACLASSIC': 'Terra Classic',
1087
+ # 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
1088
+ # others:
1089
+ # "OKTC",
1090
+ # "X Layer",
1091
+ # "Polygon(Bridged)",
1092
+ # "BTCK-OKTC",
1093
+ # "ETHK-OKTC",
1094
+ # "Starknet",
1095
+ # "LTCK-OKTC",
1096
+ # "XRPK-OKTC",
1097
+ # "BCHK-OKTC",
1098
+ # "ETCK-OKTC",
1099
+ # "Endurance Smart Chain",
1100
+ # "Berachain",
1101
+ # "CELO-TOKEN",
1102
+ # "CFX_EVM",
1103
+ # "Cortex",
1104
+ # "DAIK-OKTC",
1105
+ # "Dora Vota Mainnet",
1106
+ # "DOTK-OKTC",
1107
+ # "DYDX",
1108
+ # "AELF",
1109
+ # "Enjin Relay Chain",
1110
+ # "FEVM",
1111
+ # "FILK-OKTC",
1112
+ # "Flare",
1113
+ # "Gravity Alpha Mainnet",
1114
+ # "INJ",
1115
+ # "Story",
1116
+ # "LINKK-OKTC",
1117
+ # "Terra",
1118
+ # "Terra Classic",
1119
+ # "Terra Classic(USTC)",
1120
+ # "MERLIN Network",
1121
+ # "Layer 3",
1122
+ # "PI",
1123
+ # "Ronin",
1124
+ # "Quantum",
1125
+ # "SHIBK-OKTC",
1126
+ # "SUSHIK-OKTC",
1127
+ # "Celestia",
1128
+ # "TRXK-OKTC",
1129
+ # "UNIK-OKTC",
1130
+ # "Venom",
1131
+ # "WBTCK-OKTC",
1132
+ # "ZetaChain",
1121
1133
  },
1122
1134
  'fetchOpenInterestHistory': {
1123
1135
  'timeframes': {