ccxt 4.4.95__py2.py3-none-any.whl → 4.4.97__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 (110) hide show
  1. ccxt/__init__.py +3 -1
  2. ccxt/abstract/binance.py +3 -0
  3. ccxt/abstract/binancecoinm.py +3 -0
  4. ccxt/abstract/binanceus.py +3 -0
  5. ccxt/abstract/binanceusdm.py +3 -0
  6. ccxt/abstract/foxbit.py +26 -0
  7. ccxt/abstract/hyperliquid.py +1 -1
  8. ccxt/abstract/phemex.py +1 -0
  9. ccxt/apex.py +3 -3
  10. ccxt/ascendex.py +2 -2
  11. ccxt/async_support/__init__.py +3 -1
  12. ccxt/async_support/apex.py +3 -3
  13. ccxt/async_support/ascendex.py +2 -2
  14. ccxt/async_support/base/exchange.py +10 -5
  15. ccxt/async_support/base/ws/future.py +5 -3
  16. ccxt/async_support/binance.py +90 -34
  17. ccxt/async_support/binancecoinm.py +5 -1
  18. ccxt/async_support/binanceus.py +3 -1
  19. ccxt/async_support/binanceusdm.py +3 -1
  20. ccxt/async_support/bingx.py +1 -1
  21. ccxt/async_support/bitget.py +30 -143
  22. ccxt/async_support/bitmart.py +2 -2
  23. ccxt/async_support/bitrue.py +13 -8
  24. ccxt/async_support/bybit.py +14 -5
  25. ccxt/async_support/coinbaseexchange.py +4 -2
  26. ccxt/async_support/coinbaseinternational.py +2 -2
  27. ccxt/async_support/coinspot.py +36 -1
  28. ccxt/async_support/cryptocom.py +78 -3
  29. ccxt/async_support/cryptomus.py +41 -1
  30. ccxt/async_support/defx.py +1 -1
  31. ccxt/async_support/derive.py +1 -1
  32. ccxt/async_support/ellipx.py +40 -0
  33. ccxt/async_support/exmo.py +1 -1
  34. ccxt/async_support/foxbit.py +1935 -0
  35. ccxt/async_support/gate.py +1 -2
  36. ccxt/async_support/hashkey.py +39 -0
  37. ccxt/async_support/hyperliquid.py +42 -27
  38. ccxt/async_support/independentreserve.py +35 -0
  39. ccxt/async_support/indodax.py +34 -0
  40. ccxt/async_support/kucoin.py +3 -2
  41. ccxt/async_support/kucoinfutures.py +3 -2
  42. ccxt/async_support/latoken.py +42 -0
  43. ccxt/async_support/luno.py +36 -0
  44. ccxt/async_support/mercado.py +34 -0
  45. ccxt/async_support/mexc.py +31 -32
  46. ccxt/async_support/modetrade.py +3 -3
  47. ccxt/async_support/okcoin.py +1 -1
  48. ccxt/async_support/okx.py +10 -3
  49. ccxt/async_support/onetrading.py +1 -1
  50. ccxt/async_support/oxfun.py +2 -1
  51. ccxt/async_support/paradex.py +2 -2
  52. ccxt/async_support/phemex.py +36 -31
  53. ccxt/async_support/vertex.py +3 -2
  54. ccxt/async_support/woo.py +6 -2
  55. ccxt/async_support/woofipro.py +2 -2
  56. ccxt/base/decimal_to_precision.py +16 -10
  57. ccxt/base/errors.py +6 -0
  58. ccxt/base/exchange.py +60 -17
  59. ccxt/binance.py +90 -34
  60. ccxt/binancecoinm.py +5 -1
  61. ccxt/binanceus.py +3 -1
  62. ccxt/binanceusdm.py +3 -1
  63. ccxt/bingx.py +1 -1
  64. ccxt/bitget.py +30 -143
  65. ccxt/bitmart.py +2 -2
  66. ccxt/bitrue.py +13 -8
  67. ccxt/bybit.py +14 -5
  68. ccxt/coinbaseexchange.py +4 -2
  69. ccxt/coinbaseinternational.py +2 -2
  70. ccxt/coinspot.py +36 -1
  71. ccxt/cryptocom.py +78 -3
  72. ccxt/cryptomus.py +41 -1
  73. ccxt/defx.py +1 -1
  74. ccxt/derive.py +1 -1
  75. ccxt/ellipx.py +40 -0
  76. ccxt/exmo.py +1 -1
  77. ccxt/foxbit.py +1935 -0
  78. ccxt/gate.py +1 -2
  79. ccxt/hashkey.py +39 -0
  80. ccxt/hyperliquid.py +42 -27
  81. ccxt/independentreserve.py +35 -0
  82. ccxt/indodax.py +34 -0
  83. ccxt/kucoin.py +3 -2
  84. ccxt/kucoinfutures.py +3 -2
  85. ccxt/latoken.py +42 -0
  86. ccxt/luno.py +36 -0
  87. ccxt/mercado.py +34 -0
  88. ccxt/mexc.py +31 -32
  89. ccxt/modetrade.py +3 -3
  90. ccxt/okcoin.py +1 -1
  91. ccxt/okx.py +10 -3
  92. ccxt/onetrading.py +1 -1
  93. ccxt/oxfun.py +2 -1
  94. ccxt/paradex.py +2 -2
  95. ccxt/phemex.py +36 -31
  96. ccxt/pro/__init__.py +1 -1
  97. ccxt/pro/binancecoinm.py +3 -1
  98. ccxt/pro/binanceus.py +3 -1
  99. ccxt/pro/binanceusdm.py +3 -1
  100. ccxt/pro/bybit.py +33 -1
  101. ccxt/test/tests_async.py +15 -0
  102. ccxt/test/tests_sync.py +15 -0
  103. ccxt/vertex.py +3 -2
  104. ccxt/woo.py +6 -2
  105. ccxt/woofipro.py +2 -2
  106. {ccxt-4.4.95.dist-info → ccxt-4.4.97.dist-info}/METADATA +19 -19
  107. {ccxt-4.4.95.dist-info → ccxt-4.4.97.dist-info}/RECORD +110 -107
  108. {ccxt-4.4.95.dist-info → ccxt-4.4.97.dist-info}/LICENSE.txt +0 -0
  109. {ccxt-4.4.95.dist-info → ccxt-4.4.97.dist-info}/WHEEL +0 -0
  110. {ccxt-4.4.95.dist-info → ccxt-4.4.97.dist-info}/top_level.txt +0 -0
ccxt/gate.py CHANGED
@@ -686,7 +686,6 @@ class gate(Exchange, ImplicitAPI):
686
686
  'SOL': 'SOL',
687
687
  'POLYGON': 'POL',
688
688
  'MATIC': 'POL',
689
- 'OP': 'OPETH',
690
689
  'OPTIMISM': 'OPETH',
691
690
  'ADA': 'ADA', # CARDANO
692
691
  'AVAXC': 'AVAX_C',
@@ -3788,7 +3787,7 @@ class gate(Exchange, ImplicitAPI):
3788
3787
  start = self.parse_to_int(since / 1000)
3789
3788
  request['from'] = start
3790
3789
  request['to'] = self.sum(start, 30 * 24 * 60 * 60)
3791
- request, params = self.handle_until_option('to', request, params)
3790
+ request, params = self.handle_until_option('to', request, params, 0.001)
3792
3791
  response = self.privateWalletGetWithdrawals(self.extend(request, params))
3793
3792
  return self.parse_transactions(response, currency)
3794
3793
 
ccxt/hashkey.py CHANGED
@@ -55,11 +55,15 @@ class hashkey(Exchange, ImplicitAPI):
55
55
  'future': False,
56
56
  'option': False,
57
57
  'addMargin': False,
58
+ 'borrowCrossMargin': False,
59
+ 'borrowIsolatedMargin': False,
60
+ 'borrowMargin': False,
58
61
  'cancelAllOrders': True,
59
62
  'cancelAllOrdersAfter': False,
60
63
  'cancelOrder': True,
61
64
  'cancelOrders': True,
62
65
  'cancelWithdraw': False,
66
+ 'closeAllPositions': False,
63
67
  'closePosition': False,
64
68
  'createConvertTrade': False,
65
69
  'createDepositAddress': False,
@@ -79,7 +83,14 @@ class hashkey(Exchange, ImplicitAPI):
79
83
  'createTrailingPercentOrder': False,
80
84
  'createTriggerOrder': True,
81
85
  'fetchAccounts': True,
86
+ 'fetchAllGreeks': False,
82
87
  'fetchBalance': True,
88
+ 'fetchBorrowInterest': False,
89
+ 'fetchBorrowRate': False,
90
+ 'fetchBorrowRateHistories': False,
91
+ 'fetchBorrowRateHistory': False,
92
+ 'fetchBorrowRates': False,
93
+ 'fetchBorrowRatesPerSymbol': False,
83
94
  'fetchCanceledAndClosedOrders': True,
84
95
  'fetchCanceledOrders': True,
85
96
  'fetchClosedOrder': True,
@@ -88,6 +99,8 @@ class hashkey(Exchange, ImplicitAPI):
88
99
  'fetchConvertQuote': False,
89
100
  'fetchConvertTrade': False,
90
101
  'fetchConvertTradeHistory': False,
102
+ 'fetchCrossBorrowRate': False,
103
+ 'fetchCrossBorrowRates': False,
91
104
  'fetchCurrencies': True,
92
105
  'fetchDepositAddress': True,
93
106
  'fetchDepositAddresses': False,
@@ -95,23 +108,42 @@ class hashkey(Exchange, ImplicitAPI):
95
108
  'fetchDeposits': True,
96
109
  'fetchDepositsWithdrawals': False,
97
110
  'fetchFundingHistory': False,
111
+ 'fetchFundingInterval': False,
112
+ 'fetchFundingIntervals': False,
98
113
  'fetchFundingRate': True,
99
114
  'fetchFundingRateHistory': True,
100
115
  'fetchFundingRates': True,
116
+ 'fetchGreeks': False,
101
117
  'fetchIndexOHLCV': False,
118
+ 'fetchIsolatedBorrowRate': False,
119
+ 'fetchIsolatedBorrowRates': False,
120
+ 'fetchIsolatedPositions': False,
102
121
  'fetchLedger': True,
103
122
  'fetchLeverage': True,
123
+ 'fetchLeverages': False,
104
124
  'fetchLeverageTiers': True,
125
+ 'fetchLiquidations': False,
126
+ 'fetchLongShortRatio': False,
127
+ 'fetchLongShortRatioHistory': False,
105
128
  'fetchMarginAdjustmentHistory': False,
106
129
  'fetchMarginMode': False,
130
+ 'fetchMarginModes': False,
107
131
  'fetchMarketLeverageTiers': 'emulated',
108
132
  'fetchMarkets': True,
109
133
  'fetchMarkOHLCV': False,
134
+ 'fetchMarkPrice': False,
135
+ 'fetchMarkPrices': False,
136
+ 'fetchMyLiquidations': False,
137
+ 'fetchMySettlementHistory': False,
110
138
  'fetchMyTrades': True,
111
139
  'fetchOHLCV': True,
140
+ 'fetchOpenInterest': False,
112
141
  'fetchOpenInterestHistory': False,
142
+ 'fetchOpenInterests': False,
113
143
  'fetchOpenOrder': False,
114
144
  'fetchOpenOrders': True,
145
+ 'fetchOption': False,
146
+ 'fetchOptionChain': False,
115
147
  'fetchOrder': True,
116
148
  'fetchOrderBook': True,
117
149
  'fetchOrders': False,
@@ -122,7 +154,9 @@ class hashkey(Exchange, ImplicitAPI):
122
154
  'fetchPositions': True,
123
155
  'fetchPositionsForSymbol': True,
124
156
  'fetchPositionsHistory': False,
157
+ 'fetchPositionsRisk': False,
125
158
  'fetchPremiumIndexOHLCV': False,
159
+ 'fetchSettlementHistory': False,
126
160
  'fetchStatus': True,
127
161
  'fetchTicker': True,
128
162
  'fetchTickers': True,
@@ -132,11 +166,16 @@ class hashkey(Exchange, ImplicitAPI):
132
166
  'fetchTradingFees': True, # for spot markets only
133
167
  'fetchTransactions': False,
134
168
  'fetchTransfers': False,
169
+ 'fetchUnderlyingAssets': False,
170
+ 'fetchVolatilityHistory': False,
135
171
  'fetchWithdrawals': True,
136
172
  'reduceMargin': False,
173
+ 'repayCrossMargin': False,
174
+ 'repayIsolatedMargin': False,
137
175
  'sandbox': False,
138
176
  'setLeverage': True,
139
177
  'setMargin': False,
178
+ 'setMarginMode': False,
140
179
  'setPositionMode': False,
141
180
  'transfer': True,
142
181
  'withdraw': True,
ccxt/hyperliquid.py CHANGED
@@ -173,7 +173,7 @@ class hyperliquid(Exchange, ImplicitAPI):
173
173
  'orderStatus': 2,
174
174
  'spotClearinghouseState': 2,
175
175
  'exchangeStatus': 2,
176
- 'candleSnapshot': 3,
176
+ 'candleSnapshot': 4,
177
177
  },
178
178
  },
179
179
  },
@@ -1810,7 +1810,7 @@ class hyperliquid(Exchange, ImplicitAPI):
1810
1810
  # }
1811
1811
  # }
1812
1812
  #
1813
- return response
1813
+ return [self.safe_order({'info': response})]
1814
1814
 
1815
1815
  def cancel_all_orders_after(self, timeout: Int, params={}):
1816
1816
  """
@@ -2964,10 +2964,9 @@ class hyperliquid(Exchange, ImplicitAPI):
2964
2964
  if not self.in_array(toAccount, ['spot', 'swap', 'perp']):
2965
2965
  raise NotSupported(self.id + ' transfer() only support spot <> swap transfer')
2966
2966
  strAmount = self.number_to_string(amount)
2967
- vaultAddress = None
2968
- vaultAddress, params = self.handle_option_and_params(params, 'transfer', 'vaultAddress')
2969
- vaultAddress = self.format_vault_address(vaultAddress)
2967
+ vaultAddress = self.safe_string_2(params, 'vaultAddress', 'subAccountAddress')
2970
2968
  if vaultAddress is not None:
2969
+ vaultAddress = self.format_vault_address(vaultAddress)
2971
2970
  strAmount = strAmount + ' subaccount:' + vaultAddress
2972
2971
  toPerp = (toAccount == 'perp') or (toAccount == 'swap')
2973
2972
  transferPayload: dict = {
@@ -2994,10 +2993,6 @@ class hyperliquid(Exchange, ImplicitAPI):
2994
2993
  transferResponse = self.privatePostExchange(transferRequest)
2995
2994
  return transferResponse
2996
2995
  # transfer between main account and subaccount
2997
- if code is not None:
2998
- code = code.upper()
2999
- if code != 'USDC':
3000
- raise NotSupported(self.id + ' transfer() only support USDC')
3001
2996
  isDeposit = False
3002
2997
  subAccountAddress = None
3003
2998
  if fromAccount == 'main':
@@ -3008,24 +3003,44 @@ class hyperliquid(Exchange, ImplicitAPI):
3008
3003
  else:
3009
3004
  raise NotSupported(self.id + ' transfer() only support main <> subaccount transfer')
3010
3005
  self.check_address(subAccountAddress)
3011
- usd = self.parse_to_int(Precise.string_mul(self.number_to_string(amount), '1000000'))
3012
- action = {
3013
- 'type': 'subAccountTransfer',
3014
- 'subAccountUser': subAccountAddress,
3015
- 'isDeposit': isDeposit,
3016
- 'usd': usd,
3017
- }
3018
- sig = self.sign_l1_action(action, nonce)
3019
- request: dict = {
3020
- 'action': action,
3021
- 'nonce': nonce,
3022
- 'signature': sig,
3023
- }
3024
- response = self.privatePostExchange(request)
3025
- #
3026
- # {'response': {'type': 'default'}, 'status': 'ok'}
3027
- #
3028
- return self.parse_transfer(response)
3006
+ if code is None or code.upper() == 'USDC':
3007
+ # Transfer USDC with subAccountTransfer
3008
+ usd = self.parse_to_int(Precise.string_mul(self.number_to_string(amount), '1000000'))
3009
+ action = {
3010
+ 'type': 'subAccountTransfer',
3011
+ 'subAccountUser': subAccountAddress,
3012
+ 'isDeposit': isDeposit,
3013
+ 'usd': usd,
3014
+ }
3015
+ sig = self.sign_l1_action(action, nonce)
3016
+ request: dict = {
3017
+ 'action': action,
3018
+ 'nonce': nonce,
3019
+ 'signature': sig,
3020
+ }
3021
+ response = self.privatePostExchange(request)
3022
+ #
3023
+ # {'response': {'type': 'default'}, 'status': 'ok'}
3024
+ #
3025
+ return self.parse_transfer(response)
3026
+ else:
3027
+ # Transfer non-USDC with subAccountSpotTransfer
3028
+ symbol = self.symbol(code)
3029
+ action = {
3030
+ 'type': 'subAccountSpotTransfer',
3031
+ 'subAccountUser': subAccountAddress,
3032
+ 'isDeposit': isDeposit,
3033
+ 'token': symbol,
3034
+ 'amount': self.number_to_string(amount),
3035
+ }
3036
+ sig = self.sign_l1_action(action, nonce)
3037
+ request: dict = {
3038
+ 'action': action,
3039
+ 'nonce': nonce,
3040
+ 'signature': sig,
3041
+ }
3042
+ response = self.privatePostExchange(request)
3043
+ return self.parse_transfer(response)
3029
3044
 
3030
3045
  def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
3031
3046
  #
@@ -30,6 +30,9 @@ class independentreserve(Exchange, ImplicitAPI):
30
30
  'future': False,
31
31
  'option': False,
32
32
  'addMargin': False,
33
+ 'borrowCrossMargin': False,
34
+ 'borrowIsolatedMargin': False,
35
+ 'borrowMargin': False,
33
36
  'cancelOrder': True,
34
37
  'closeAllPositions': False,
35
38
  'closePosition': False,
@@ -38,9 +41,14 @@ class independentreserve(Exchange, ImplicitAPI):
38
41
  'createStopLimitOrder': False,
39
42
  'createStopMarketOrder': False,
40
43
  'createStopOrder': False,
44
+ 'fetchAllGreeks': False,
41
45
  'fetchBalance': True,
46
+ 'fetchBorrowInterest': False,
47
+ 'fetchBorrowRate': False,
42
48
  'fetchBorrowRateHistories': False,
43
49
  'fetchBorrowRateHistory': False,
50
+ 'fetchBorrowRates': False,
51
+ 'fetchBorrowRatesPerSymbol': False,
44
52
  'fetchClosedOrders': True,
45
53
  'fetchCrossBorrowRate': False,
46
54
  'fetchCrossBorrowRates': False,
@@ -48,36 +56,63 @@ class independentreserve(Exchange, ImplicitAPI):
48
56
  'fetchDepositAddresses': False,
49
57
  'fetchDepositAddressesByNetwork': False,
50
58
  'fetchFundingHistory': False,
59
+ 'fetchFundingInterval': False,
60
+ 'fetchFundingIntervals': False,
51
61
  'fetchFundingRate': False,
52
62
  'fetchFundingRateHistory': False,
53
63
  'fetchFundingRates': False,
64
+ 'fetchGreeks': False,
54
65
  'fetchIndexOHLCV': False,
55
66
  'fetchIsolatedBorrowRate': False,
56
67
  'fetchIsolatedBorrowRates': False,
68
+ 'fetchIsolatedPositions': False,
57
69
  'fetchLeverage': False,
70
+ 'fetchLeverages': False,
58
71
  'fetchLeverageTiers': False,
72
+ 'fetchLiquidations': False,
73
+ 'fetchLongShortRatio': False,
74
+ 'fetchLongShortRatioHistory': False,
75
+ 'fetchMarginAdjustmentHistory': False,
59
76
  'fetchMarginMode': False,
77
+ 'fetchMarginModes': False,
78
+ 'fetchMarketLeverageTiers': False,
60
79
  'fetchMarkets': True,
61
80
  'fetchMarkOHLCV': False,
81
+ 'fetchMarkPrice': False,
82
+ 'fetchMarkPrices': False,
83
+ 'fetchMyLiquidations': False,
84
+ 'fetchMySettlementHistory': False,
62
85
  'fetchMyTrades': True,
86
+ 'fetchOpenInterest': False,
63
87
  'fetchOpenInterestHistory': False,
88
+ 'fetchOpenInterests': False,
64
89
  'fetchOpenOrders': True,
90
+ 'fetchOption': False,
91
+ 'fetchOptionChain': False,
65
92
  'fetchOrder': True,
66
93
  'fetchOrderBook': True,
67
94
  'fetchPosition': False,
95
+ 'fetchPositionForSymbolWs': False,
68
96
  'fetchPositionHistory': False,
69
97
  'fetchPositionMode': False,
70
98
  'fetchPositions': False,
71
99
  'fetchPositionsForSymbol': False,
100
+ 'fetchPositionsForSymbolWs': False,
72
101
  'fetchPositionsHistory': False,
73
102
  'fetchPositionsRisk': False,
74
103
  'fetchPremiumIndexOHLCV': False,
104
+ 'fetchSettlementHistory': False,
75
105
  'fetchTicker': True,
76
106
  'fetchTrades': True,
77
107
  'fetchTradingFee': False,
78
108
  'fetchTradingFees': True,
109
+ 'fetchUnderlyingAssets': False,
110
+ 'fetchVolatilityHistory': False,
79
111
  'reduceMargin': False,
112
+ 'repayCrossMargin': False,
113
+ 'repayIsolatedMargin': False,
80
114
  'setLeverage': False,
115
+ 'setMargin': False,
81
116
  'setMarginMode': False,
82
117
  'setPositionMode': False,
83
118
  'withdraw': True,
ccxt/indodax.py CHANGED
@@ -38,6 +38,9 @@ class indodax(Exchange, ImplicitAPI):
38
38
  'future': False,
39
39
  'option': False,
40
40
  'addMargin': False,
41
+ 'borrowCrossMargin': False,
42
+ 'borrowIsolatedMargin': False,
43
+ 'borrowMargin': False,
41
44
  'cancelAllOrders': False,
42
45
  'cancelOrder': True,
43
46
  'cancelOrders': False,
@@ -49,9 +52,14 @@ class indodax(Exchange, ImplicitAPI):
49
52
  'createStopLimitOrder': False,
50
53
  'createStopMarketOrder': False,
51
54
  'createStopOrder': False,
55
+ 'fetchAllGreeks': False,
52
56
  'fetchBalance': True,
57
+ 'fetchBorrowInterest': False,
58
+ 'fetchBorrowRate': False,
53
59
  'fetchBorrowRateHistories': False,
54
60
  'fetchBorrowRateHistory': False,
61
+ 'fetchBorrowRates': False,
62
+ 'fetchBorrowRatesPerSymbol': False,
55
63
  'fetchClosedOrders': True,
56
64
  'fetchCrossBorrowRate': False,
57
65
  'fetchCrossBorrowRates': False,
@@ -62,30 +70,52 @@ class indodax(Exchange, ImplicitAPI):
62
70
  'fetchDeposits': False,
63
71
  'fetchDepositsWithdrawals': True,
64
72
  'fetchFundingHistory': False,
73
+ 'fetchFundingInterval': False,
74
+ 'fetchFundingIntervals': False,
65
75
  'fetchFundingRate': False,
66
76
  'fetchFundingRateHistory': False,
67
77
  'fetchFundingRates': False,
78
+ 'fetchGreeks': False,
68
79
  'fetchIndexOHLCV': False,
69
80
  'fetchIsolatedBorrowRate': False,
70
81
  'fetchIsolatedBorrowRates': False,
82
+ 'fetchIsolatedPositions': False,
71
83
  'fetchLeverage': False,
84
+ 'fetchLeverages': False,
72
85
  'fetchLeverageTiers': False,
86
+ 'fetchLiquidations': False,
87
+ 'fetchLongShortRatio': False,
88
+ 'fetchLongShortRatioHistory': False,
89
+ 'fetchMarginAdjustmentHistory': False,
73
90
  'fetchMarginMode': False,
91
+ 'fetchMarginModes': False,
92
+ 'fetchMarketLeverageTiers': False,
74
93
  'fetchMarkets': True,
75
94
  'fetchMarkOHLCV': False,
95
+ 'fetchMarkPrice': False,
96
+ 'fetchMarkPrices': False,
97
+ 'fetchMyLiquidations': False,
98
+ 'fetchMySettlementHistory': False,
99
+ 'fetchOpenInterest': False,
76
100
  'fetchOpenInterestHistory': False,
101
+ 'fetchOpenInterests': False,
77
102
  'fetchOpenOrders': True,
103
+ 'fetchOption': False,
104
+ 'fetchOptionChain': False,
78
105
  'fetchOrder': True,
79
106
  'fetchOrderBook': True,
80
107
  'fetchOrders': False,
81
108
  'fetchPosition': False,
109
+ 'fetchPositionForSymbolWs': False,
82
110
  'fetchPositionHistory': False,
83
111
  'fetchPositionMode': False,
84
112
  'fetchPositions': False,
85
113
  'fetchPositionsForSymbol': False,
114
+ 'fetchPositionsForSymbolWs': False,
86
115
  'fetchPositionsHistory': False,
87
116
  'fetchPositionsRisk': False,
88
117
  'fetchPremiumIndexOHLCV': False,
118
+ 'fetchSettlementHistory': False,
89
119
  'fetchTicker': True,
90
120
  'fetchTime': True,
91
121
  'fetchTrades': True,
@@ -96,9 +126,13 @@ class indodax(Exchange, ImplicitAPI):
96
126
  'fetchTransactions': 'emulated',
97
127
  'fetchTransfer': False,
98
128
  'fetchTransfers': False,
129
+ 'fetchUnderlyingAssets': False,
130
+ 'fetchVolatilityHistory': False,
99
131
  'fetchWithdrawal': False,
100
132
  'fetchWithdrawals': False,
101
133
  'reduceMargin': False,
134
+ 'repayCrossMargin': False,
135
+ 'repayIsolatedMargin': False,
102
136
  'setLeverage': False,
103
137
  'setMargin': False,
104
138
  'setMarginMode': False,
ccxt/kucoin.py CHANGED
@@ -811,7 +811,7 @@ class kucoin(Exchange, ImplicitAPI):
811
811
  'TLOS': 'tlos', # tlosevm is different
812
812
  'CFX': 'cfx',
813
813
  'ACA': 'aca',
814
- 'OP': 'optimism',
814
+ 'OPTIMISM': 'optimism',
815
815
  'ONT': 'ont',
816
816
  'GLMR': 'glmr',
817
817
  'CSPR': 'cspr',
@@ -931,6 +931,7 @@ class kucoin(Exchange, ImplicitAPI):
931
931
  'CS': 'cs',
932
932
  'ORAI': 'orai',
933
933
  'BASE': 'base',
934
+ 'TARA': 'tara',
934
935
  # below will be uncommented after consensus
935
936
  # 'BITCOINDIAMON': 'bcd',
936
937
  # 'BITCOINGOLD': 'btg',
@@ -2646,7 +2647,7 @@ class kucoin(Exchange, ImplicitAPI):
2646
2647
  response = self.privateDeleteHfOrders(self.extend(request, query))
2647
2648
  else:
2648
2649
  response = self.privateDeleteOrders(self.extend(request, query))
2649
- return response
2650
+ return [self.safe_order({'info': response})]
2650
2651
 
2651
2652
  def fetch_orders_by_status(self, status, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
2652
2653
  """
ccxt/kucoinfutures.py CHANGED
@@ -1719,7 +1719,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
1719
1719
  # },
1720
1720
  # }
1721
1721
  #
1722
- return self.safe_value(response, 'data')
1722
+ return self.safe_order({'info': response})
1723
1723
 
1724
1724
  def cancel_orders(self, ids, symbol: Str = None, params={}):
1725
1725
  """
@@ -1811,7 +1811,8 @@ class kucoinfutures(kucoin, ImplicitAPI):
1811
1811
  # },
1812
1812
  # }
1813
1813
  #
1814
- return self.safe_value(response, 'data')
1814
+ data = self.safe_dict(response, 'data')
1815
+ return [self.safe_order({'info': data})]
1815
1816
 
1816
1817
  def add_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
1817
1818
  """
ccxt/latoken.py CHANGED
@@ -40,6 +40,10 @@ class latoken(Exchange, ImplicitAPI):
40
40
  'swap': False,
41
41
  'future': False,
42
42
  'option': False,
43
+ 'addMargin': False,
44
+ 'borrowCrossMargin': False,
45
+ 'borrowIsolatedMargin': False,
46
+ 'borrowMargin': False,
43
47
  'cancelAllOrders': True,
44
48
  'cancelOrder': True,
45
49
  'closeAllPositions': False,
@@ -49,9 +53,14 @@ class latoken(Exchange, ImplicitAPI):
49
53
  'createStopLimitOrder': True,
50
54
  'createStopMarketOrder': False,
51
55
  'createStopOrder': True,
56
+ 'fetchAllGreeks': False,
52
57
  'fetchBalance': True,
58
+ 'fetchBorrowInterest': False,
59
+ 'fetchBorrowRate': False,
53
60
  'fetchBorrowRateHistories': False,
54
61
  'fetchBorrowRateHistory': False,
62
+ 'fetchBorrowRates': False,
63
+ 'fetchBorrowRatesPerSymbol': False,
55
64
  'fetchCrossBorrowRate': False,
56
65
  'fetchCrossBorrowRates': False,
57
66
  'fetchCurrencies': True,
@@ -66,12 +75,34 @@ class latoken(Exchange, ImplicitAPI):
66
75
  'fetchFundingRate': False,
67
76
  'fetchFundingRateHistory': False,
68
77
  'fetchFundingRates': False,
78
+ 'fetchGreeks': False,
79
+ 'fetchIndexOHLCV': False,
69
80
  'fetchIsolatedBorrowRate': False,
70
81
  'fetchIsolatedBorrowRates': False,
82
+ 'fetchIsolatedPositions': False,
83
+ 'fetchLeverage': False,
84
+ 'fetchLeverages': False,
85
+ 'fetchLeverageTiers': False,
86
+ 'fetchLiquidations': False,
87
+ 'fetchLongShortRatio': False,
88
+ 'fetchLongShortRatioHistory': False,
89
+ 'fetchMarginAdjustmentHistory': False,
71
90
  'fetchMarginMode': False,
91
+ 'fetchMarginModes': False,
92
+ 'fetchMarketLeverageTiers': False,
72
93
  'fetchMarkets': True,
94
+ 'fetchMarkOHLCV': False,
95
+ 'fetchMarkPrice': False,
96
+ 'fetchMarkPrices': False,
97
+ 'fetchMyLiquidations': False,
98
+ 'fetchMySettlementHistory': False,
73
99
  'fetchMyTrades': True,
100
+ 'fetchOpenInterest': False,
101
+ 'fetchOpenInterestHistory': False,
102
+ 'fetchOpenInterests': False,
74
103
  'fetchOpenOrders': True,
104
+ 'fetchOption': False,
105
+ 'fetchOptionChain': False,
75
106
  'fetchOrder': True,
76
107
  'fetchOrderBook': True,
77
108
  'fetchOrders': True,
@@ -82,6 +113,8 @@ class latoken(Exchange, ImplicitAPI):
82
113
  'fetchPositionsForSymbol': False,
83
114
  'fetchPositionsHistory': False,
84
115
  'fetchPositionsRisk': False,
116
+ 'fetchPremiumIndexOHLCV': False,
117
+ 'fetchSettlementHistory': False,
85
118
  'fetchTicker': True,
86
119
  'fetchTickers': True,
87
120
  'fetchTime': True,
@@ -91,6 +124,15 @@ class latoken(Exchange, ImplicitAPI):
91
124
  'fetchTransactions': 'emulated',
92
125
  'fetchTransfer': False,
93
126
  'fetchTransfers': True,
127
+ 'fetchUnderlyingAssets': False,
128
+ 'fetchVolatilityHistory': False,
129
+ 'reduceMargin': False,
130
+ 'repayCrossMargin': False,
131
+ 'repayIsolatedMargin': False,
132
+ 'setLeverage': False,
133
+ 'setMargin': False,
134
+ 'setMarginMode': False,
135
+ 'setPositionMode': False,
94
136
  'transfer': True,
95
137
  },
96
138
  'urls': {
ccxt/luno.py CHANGED
@@ -32,6 +32,9 @@ class luno(Exchange, ImplicitAPI):
32
32
  'future': False,
33
33
  'option': False,
34
34
  'addMargin': False,
35
+ 'borrowCrossMargin': False,
36
+ 'borrowIsolatedMargin': False,
37
+ 'borrowMargin': False,
35
38
  'cancelOrder': True,
36
39
  'closeAllPositions': False,
37
40
  'closePosition': False,
@@ -39,48 +42,81 @@ class luno(Exchange, ImplicitAPI):
39
42
  'createOrder': True,
40
43
  'createReduceOnlyOrder': False,
41
44
  'fetchAccounts': True,
45
+ 'fetchAllGreeks': False,
42
46
  'fetchBalance': True,
47
+ 'fetchBorrowInterest': False,
48
+ 'fetchBorrowRate': False,
49
+ 'fetchBorrowRateHistories': False,
43
50
  'fetchBorrowRateHistory': False,
51
+ 'fetchBorrowRates': False,
52
+ 'fetchBorrowRatesPerSymbol': False,
44
53
  'fetchClosedOrders': True,
45
54
  'fetchCrossBorrowRate': False,
46
55
  'fetchCrossBorrowRates': False,
47
56
  'fetchCurrencies': True,
48
57
  'fetchDepositAddress': True,
49
58
  'fetchFundingHistory': False,
59
+ 'fetchFundingInterval': False,
60
+ 'fetchFundingIntervals': False,
50
61
  'fetchFundingRate': False,
51
62
  'fetchFundingRateHistory': False,
52
63
  'fetchFundingRates': False,
64
+ 'fetchGreeks': False,
53
65
  'fetchIndexOHLCV': False,
54
66
  'fetchIsolatedBorrowRate': False,
55
67
  'fetchIsolatedBorrowRates': False,
68
+ 'fetchIsolatedPositions': False,
56
69
  'fetchLedger': True,
57
70
  'fetchLeverage': False,
71
+ 'fetchLeverages': False,
58
72
  'fetchLeverageTiers': False,
73
+ 'fetchLiquidations': False,
74
+ 'fetchLongShortRatio': False,
75
+ 'fetchLongShortRatioHistory': False,
76
+ 'fetchMarginAdjustmentHistory': False,
59
77
  'fetchMarginMode': False,
78
+ 'fetchMarginModes': False,
79
+ 'fetchMarketLeverageTiers': False,
60
80
  'fetchMarkets': True,
61
81
  'fetchMarkOHLCV': False,
82
+ 'fetchMarkPrice': False,
83
+ 'fetchMarkPrices': False,
84
+ 'fetchMyLiquidations': False,
85
+ 'fetchMySettlementHistory': False,
62
86
  'fetchMyTrades': True,
63
87
  'fetchOHLCV': True,
88
+ 'fetchOpenInterest': False,
64
89
  'fetchOpenInterestHistory': False,
90
+ 'fetchOpenInterests': False,
65
91
  'fetchOpenOrders': True,
92
+ 'fetchOption': False,
93
+ 'fetchOptionChain': False,
66
94
  'fetchOrder': True,
67
95
  'fetchOrderBook': True,
68
96
  'fetchOrders': True,
69
97
  'fetchPosition': False,
98
+ 'fetchPositionForSymbolWs': False,
70
99
  'fetchPositionHistory': False,
71
100
  'fetchPositionMode': False,
72
101
  'fetchPositions': False,
73
102
  'fetchPositionsForSymbol': False,
103
+ 'fetchPositionsForSymbolWs': False,
74
104
  'fetchPositionsHistory': False,
75
105
  'fetchPositionsRisk': False,
76
106
  'fetchPremiumIndexOHLCV': False,
107
+ 'fetchSettlementHistory': False,
77
108
  'fetchTicker': True,
78
109
  'fetchTickers': True,
79
110
  'fetchTrades': True,
80
111
  'fetchTradingFee': True,
81
112
  'fetchTradingFees': False,
113
+ 'fetchUnderlyingAssets': False,
114
+ 'fetchVolatilityHistory': False,
82
115
  'reduceMargin': False,
116
+ 'repayCrossMargin': False,
117
+ 'repayIsolatedMargin': False,
83
118
  'setLeverage': False,
119
+ 'setMargin': False,
84
120
  'setMarginMode': False,
85
121
  'setPositionMode': False,
86
122
  },