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
@@ -687,7 +687,6 @@ class gate(Exchange, ImplicitAPI):
687
687
  'SOL': 'SOL',
688
688
  'POLYGON': 'POL',
689
689
  'MATIC': 'POL',
690
- 'OP': 'OPETH',
691
690
  'OPTIMISM': 'OPETH',
692
691
  'ADA': 'ADA', # CARDANO
693
692
  'AVAXC': 'AVAX_C',
@@ -3789,7 +3788,7 @@ class gate(Exchange, ImplicitAPI):
3789
3788
  start = self.parse_to_int(since / 1000)
3790
3789
  request['from'] = start
3791
3790
  request['to'] = self.sum(start, 30 * 24 * 60 * 60)
3792
- request, params = self.handle_until_option('to', request, params)
3791
+ request, params = self.handle_until_option('to', request, params, 0.001)
3793
3792
  response = await self.privateWalletGetWithdrawals(self.extend(request, params))
3794
3793
  return self.parse_transactions(response, currency)
3795
3794
 
@@ -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,
@@ -174,7 +174,7 @@ class hyperliquid(Exchange, ImplicitAPI):
174
174
  'orderStatus': 2,
175
175
  'spotClearinghouseState': 2,
176
176
  'exchangeStatus': 2,
177
- 'candleSnapshot': 3,
177
+ 'candleSnapshot': 4,
178
178
  },
179
179
  },
180
180
  },
@@ -1811,7 +1811,7 @@ class hyperliquid(Exchange, ImplicitAPI):
1811
1811
  # }
1812
1812
  # }
1813
1813
  #
1814
- return response
1814
+ return [self.safe_order({'info': response})]
1815
1815
 
1816
1816
  async def cancel_all_orders_after(self, timeout: Int, params={}):
1817
1817
  """
@@ -2965,10 +2965,9 @@ class hyperliquid(Exchange, ImplicitAPI):
2965
2965
  if not self.in_array(toAccount, ['spot', 'swap', 'perp']):
2966
2966
  raise NotSupported(self.id + ' transfer() only support spot <> swap transfer')
2967
2967
  strAmount = self.number_to_string(amount)
2968
- vaultAddress = None
2969
- vaultAddress, params = self.handle_option_and_params(params, 'transfer', 'vaultAddress')
2970
- vaultAddress = self.format_vault_address(vaultAddress)
2968
+ vaultAddress = self.safe_string_2(params, 'vaultAddress', 'subAccountAddress')
2971
2969
  if vaultAddress is not None:
2970
+ vaultAddress = self.format_vault_address(vaultAddress)
2972
2971
  strAmount = strAmount + ' subaccount:' + vaultAddress
2973
2972
  toPerp = (toAccount == 'perp') or (toAccount == 'swap')
2974
2973
  transferPayload: dict = {
@@ -2995,10 +2994,6 @@ class hyperliquid(Exchange, ImplicitAPI):
2995
2994
  transferResponse = await self.privatePostExchange(transferRequest)
2996
2995
  return transferResponse
2997
2996
  # transfer between main account and subaccount
2998
- if code is not None:
2999
- code = code.upper()
3000
- if code != 'USDC':
3001
- raise NotSupported(self.id + ' transfer() only support USDC')
3002
2997
  isDeposit = False
3003
2998
  subAccountAddress = None
3004
2999
  if fromAccount == 'main':
@@ -3009,24 +3004,44 @@ class hyperliquid(Exchange, ImplicitAPI):
3009
3004
  else:
3010
3005
  raise NotSupported(self.id + ' transfer() only support main <> subaccount transfer')
3011
3006
  self.check_address(subAccountAddress)
3012
- usd = self.parse_to_int(Precise.string_mul(self.number_to_string(amount), '1000000'))
3013
- action = {
3014
- 'type': 'subAccountTransfer',
3015
- 'subAccountUser': subAccountAddress,
3016
- 'isDeposit': isDeposit,
3017
- 'usd': usd,
3018
- }
3019
- sig = self.sign_l1_action(action, nonce)
3020
- request: dict = {
3021
- 'action': action,
3022
- 'nonce': nonce,
3023
- 'signature': sig,
3024
- }
3025
- response = await self.privatePostExchange(request)
3026
- #
3027
- # {'response': {'type': 'default'}, 'status': 'ok'}
3028
- #
3029
- return self.parse_transfer(response)
3007
+ if code is None or code.upper() == 'USDC':
3008
+ # Transfer USDC with subAccountTransfer
3009
+ usd = self.parse_to_int(Precise.string_mul(self.number_to_string(amount), '1000000'))
3010
+ action = {
3011
+ 'type': 'subAccountTransfer',
3012
+ 'subAccountUser': subAccountAddress,
3013
+ 'isDeposit': isDeposit,
3014
+ 'usd': usd,
3015
+ }
3016
+ sig = self.sign_l1_action(action, nonce)
3017
+ request: dict = {
3018
+ 'action': action,
3019
+ 'nonce': nonce,
3020
+ 'signature': sig,
3021
+ }
3022
+ response = await self.privatePostExchange(request)
3023
+ #
3024
+ # {'response': {'type': 'default'}, 'status': 'ok'}
3025
+ #
3026
+ return self.parse_transfer(response)
3027
+ else:
3028
+ # Transfer non-USDC with subAccountSpotTransfer
3029
+ symbol = self.symbol(code)
3030
+ action = {
3031
+ 'type': 'subAccountSpotTransfer',
3032
+ 'subAccountUser': subAccountAddress,
3033
+ 'isDeposit': isDeposit,
3034
+ 'token': symbol,
3035
+ 'amount': self.number_to_string(amount),
3036
+ }
3037
+ sig = self.sign_l1_action(action, nonce)
3038
+ request: dict = {
3039
+ 'action': action,
3040
+ 'nonce': nonce,
3041
+ 'signature': sig,
3042
+ }
3043
+ response = await self.privatePostExchange(request)
3044
+ return self.parse_transfer(response)
3030
3045
 
3031
3046
  def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
3032
3047
  #
@@ -31,6 +31,9 @@ class independentreserve(Exchange, ImplicitAPI):
31
31
  'future': False,
32
32
  'option': False,
33
33
  'addMargin': False,
34
+ 'borrowCrossMargin': False,
35
+ 'borrowIsolatedMargin': False,
36
+ 'borrowMargin': False,
34
37
  'cancelOrder': True,
35
38
  'closeAllPositions': False,
36
39
  'closePosition': False,
@@ -39,9 +42,14 @@ class independentreserve(Exchange, ImplicitAPI):
39
42
  'createStopLimitOrder': False,
40
43
  'createStopMarketOrder': False,
41
44
  'createStopOrder': False,
45
+ 'fetchAllGreeks': False,
42
46
  'fetchBalance': True,
47
+ 'fetchBorrowInterest': False,
48
+ 'fetchBorrowRate': False,
43
49
  'fetchBorrowRateHistories': False,
44
50
  'fetchBorrowRateHistory': False,
51
+ 'fetchBorrowRates': False,
52
+ 'fetchBorrowRatesPerSymbol': False,
45
53
  'fetchClosedOrders': True,
46
54
  'fetchCrossBorrowRate': False,
47
55
  'fetchCrossBorrowRates': False,
@@ -49,36 +57,63 @@ class independentreserve(Exchange, ImplicitAPI):
49
57
  'fetchDepositAddresses': False,
50
58
  'fetchDepositAddressesByNetwork': False,
51
59
  'fetchFundingHistory': False,
60
+ 'fetchFundingInterval': False,
61
+ 'fetchFundingIntervals': False,
52
62
  'fetchFundingRate': False,
53
63
  'fetchFundingRateHistory': False,
54
64
  'fetchFundingRates': False,
65
+ 'fetchGreeks': False,
55
66
  'fetchIndexOHLCV': False,
56
67
  'fetchIsolatedBorrowRate': False,
57
68
  'fetchIsolatedBorrowRates': False,
69
+ 'fetchIsolatedPositions': False,
58
70
  'fetchLeverage': False,
71
+ 'fetchLeverages': False,
59
72
  'fetchLeverageTiers': False,
73
+ 'fetchLiquidations': False,
74
+ 'fetchLongShortRatio': False,
75
+ 'fetchLongShortRatioHistory': False,
76
+ 'fetchMarginAdjustmentHistory': False,
60
77
  'fetchMarginMode': False,
78
+ 'fetchMarginModes': False,
79
+ 'fetchMarketLeverageTiers': False,
61
80
  'fetchMarkets': True,
62
81
  'fetchMarkOHLCV': False,
82
+ 'fetchMarkPrice': False,
83
+ 'fetchMarkPrices': False,
84
+ 'fetchMyLiquidations': False,
85
+ 'fetchMySettlementHistory': False,
63
86
  'fetchMyTrades': True,
87
+ 'fetchOpenInterest': False,
64
88
  'fetchOpenInterestHistory': False,
89
+ 'fetchOpenInterests': False,
65
90
  'fetchOpenOrders': True,
91
+ 'fetchOption': False,
92
+ 'fetchOptionChain': False,
66
93
  'fetchOrder': True,
67
94
  'fetchOrderBook': True,
68
95
  'fetchPosition': False,
96
+ 'fetchPositionForSymbolWs': False,
69
97
  'fetchPositionHistory': False,
70
98
  'fetchPositionMode': False,
71
99
  'fetchPositions': False,
72
100
  'fetchPositionsForSymbol': False,
101
+ 'fetchPositionsForSymbolWs': False,
73
102
  'fetchPositionsHistory': False,
74
103
  'fetchPositionsRisk': False,
75
104
  'fetchPremiumIndexOHLCV': False,
105
+ 'fetchSettlementHistory': False,
76
106
  'fetchTicker': True,
77
107
  'fetchTrades': True,
78
108
  'fetchTradingFee': False,
79
109
  'fetchTradingFees': True,
110
+ 'fetchUnderlyingAssets': False,
111
+ 'fetchVolatilityHistory': False,
80
112
  'reduceMargin': False,
113
+ 'repayCrossMargin': False,
114
+ 'repayIsolatedMargin': False,
81
115
  'setLeverage': False,
116
+ 'setMargin': False,
82
117
  'setMarginMode': False,
83
118
  'setPositionMode': False,
84
119
  'withdraw': True,
@@ -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,
@@ -812,7 +812,7 @@ class kucoin(Exchange, ImplicitAPI):
812
812
  'TLOS': 'tlos', # tlosevm is different
813
813
  'CFX': 'cfx',
814
814
  'ACA': 'aca',
815
- 'OP': 'optimism',
815
+ 'OPTIMISM': 'optimism',
816
816
  'ONT': 'ont',
817
817
  'GLMR': 'glmr',
818
818
  'CSPR': 'cspr',
@@ -932,6 +932,7 @@ class kucoin(Exchange, ImplicitAPI):
932
932
  'CS': 'cs',
933
933
  'ORAI': 'orai',
934
934
  'BASE': 'base',
935
+ 'TARA': 'tara',
935
936
  # below will be uncommented after consensus
936
937
  # 'BITCOINDIAMON': 'bcd',
937
938
  # 'BITCOINGOLD': 'btg',
@@ -2647,7 +2648,7 @@ class kucoin(Exchange, ImplicitAPI):
2647
2648
  response = await self.privateDeleteHfOrders(self.extend(request, query))
2648
2649
  else:
2649
2650
  response = await self.privateDeleteOrders(self.extend(request, query))
2650
- return response
2651
+ return [self.safe_order({'info': response})]
2651
2652
 
2652
2653
  async def fetch_orders_by_status(self, status, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
2653
2654
  """
@@ -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
  async 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
  async def add_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
1817
1818
  """
@@ -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': {
@@ -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
  },