ccxt 4.4.51__py2.py3-none-any.whl → 4.4.53__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.
- ccxt/__init__.py +1 -1
- ccxt/abstract/binance.py +0 -1
- ccxt/abstract/binancecoinm.py +0 -1
- ccxt/abstract/binanceus.py +0 -1
- ccxt/abstract/binanceusdm.py +0 -1
- ccxt/ace.py +3 -0
- ccxt/alpaca.py +5 -0
- ccxt/ascendex.py +2 -1
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/ace.py +3 -0
- ccxt/async_support/alpaca.py +5 -0
- ccxt/async_support/ascendex.py +2 -1
- ccxt/async_support/base/exchange.py +20 -3
- ccxt/async_support/bigone.py +5 -0
- ccxt/async_support/binance.py +55 -69
- ccxt/async_support/bingx.py +25 -29
- ccxt/async_support/bit2c.py +3 -0
- ccxt/async_support/bitbank.py +3 -0
- ccxt/async_support/bitbns.py +3 -0
- ccxt/async_support/bitfinex.py +6 -1
- ccxt/async_support/bitflyer.py +6 -1
- ccxt/async_support/bitget.py +8 -4
- ccxt/async_support/bithumb.py +3 -1
- ccxt/async_support/bitmart.py +22 -12
- ccxt/async_support/bitmex.py +99 -93
- ccxt/async_support/bitopro.py +7 -2
- ccxt/async_support/bitrue.py +4 -0
- ccxt/async_support/bitso.py +5 -2
- ccxt/async_support/bitstamp.py +3 -0
- ccxt/async_support/bitteam.py +5 -0
- ccxt/async_support/bitvavo.py +4 -0
- ccxt/async_support/blockchaincom.py +4 -0
- ccxt/async_support/blofin.py +3 -0
- ccxt/async_support/btcalpha.py +5 -0
- ccxt/async_support/btcbox.py +3 -2
- ccxt/async_support/btcmarkets.py +5 -0
- ccxt/async_support/btcturk.py +3 -0
- ccxt/async_support/bybit.py +10 -4
- ccxt/async_support/cex.py +2 -0
- ccxt/async_support/coinbase.py +19 -12
- ccxt/async_support/coinbaseexchange.py +5 -0
- ccxt/async_support/coinbaseinternational.py +21 -2
- ccxt/async_support/coincatch.py +3 -0
- ccxt/async_support/coincheck.py +2 -0
- ccxt/async_support/coinex.py +5 -1
- ccxt/async_support/coinlist.py +5 -0
- ccxt/async_support/coinmate.py +4 -0
- ccxt/async_support/coinmetro.py +9 -5
- ccxt/async_support/coinone.py +3 -0
- ccxt/async_support/coinsph.py +4 -0
- ccxt/async_support/coinspot.py +1 -0
- ccxt/async_support/cryptocom.py +5 -0
- ccxt/async_support/currencycom.py +3 -0
- ccxt/async_support/defx.py +5 -0
- ccxt/async_support/delta.py +4 -1
- ccxt/async_support/deribit.py +16 -5
- ccxt/async_support/digifinex.py +10 -5
- ccxt/async_support/ellipx.py +9 -5
- ccxt/async_support/exmo.py +6 -3
- ccxt/async_support/gate.py +5 -1
- ccxt/async_support/gemini.py +3 -0
- ccxt/async_support/hashkey.py +5 -4
- ccxt/async_support/hitbtc.py +6 -2
- ccxt/async_support/hollaex.py +7 -2
- ccxt/async_support/htx.py +8 -1
- ccxt/async_support/huobijp.py +5 -0
- ccxt/async_support/hyperliquid.py +6 -1
- ccxt/async_support/idex.py +5 -1
- ccxt/async_support/independentreserve.py +4 -0
- ccxt/async_support/indodax.py +3 -0
- ccxt/async_support/kraken.py +6 -4
- ccxt/async_support/krakenfutures.py +5 -2
- ccxt/async_support/kucoin.py +13 -6
- ccxt/async_support/kucoinfutures.py +5 -1
- ccxt/async_support/kuna.py +3 -0
- ccxt/async_support/latoken.py +4 -0
- ccxt/async_support/lbank.py +6 -1
- ccxt/async_support/luno.py +6 -1
- ccxt/async_support/lykke.py +4 -0
- ccxt/async_support/mercado.py +4 -0
- ccxt/async_support/mexc.py +10 -9
- ccxt/async_support/ndax.py +6 -1
- ccxt/async_support/novadax.py +5 -0
- ccxt/async_support/oceanex.py +6 -2
- ccxt/async_support/okcoin.py +4 -0
- ccxt/async_support/okx.py +17 -5
- ccxt/async_support/onetrading.py +4 -0
- ccxt/async_support/oxfun.py +3 -0
- ccxt/async_support/p2b.py +3 -0
- ccxt/async_support/paradex.py +8 -2
- ccxt/async_support/phemex.py +10 -4
- ccxt/async_support/poloniex.py +6 -3
- ccxt/async_support/poloniexfutures.py +5 -1
- ccxt/async_support/probit.py +4 -0
- ccxt/async_support/timex.py +4 -0
- ccxt/async_support/tokocrypto.py +5 -0
- ccxt/async_support/tradeogre.py +2 -0
- ccxt/async_support/upbit.py +5 -2
- ccxt/async_support/vertex.py +6 -2
- ccxt/async_support/wavesexchange.py +20 -3
- ccxt/async_support/wazirx.py +2 -0
- ccxt/async_support/whitebit.py +5 -4
- ccxt/async_support/woo.py +15 -5
- ccxt/async_support/woofipro.py +21 -7
- ccxt/async_support/xt.py +5 -0
- ccxt/async_support/yobit.py +5 -2
- ccxt/async_support/zaif.py +2 -0
- ccxt/async_support/zonda.py +2 -0
- ccxt/base/exchange.py +113 -50
- ccxt/base/types.py +1 -1
- ccxt/bigone.py +5 -0
- ccxt/binance.py +55 -69
- ccxt/bingx.py +25 -29
- ccxt/bit2c.py +3 -0
- ccxt/bitbank.py +3 -0
- ccxt/bitbns.py +3 -0
- ccxt/bitfinex.py +6 -1
- ccxt/bitflyer.py +6 -1
- ccxt/bitget.py +8 -4
- ccxt/bithumb.py +3 -1
- ccxt/bitmart.py +22 -12
- ccxt/bitmex.py +99 -93
- ccxt/bitopro.py +7 -2
- ccxt/bitrue.py +4 -0
- ccxt/bitso.py +5 -2
- ccxt/bitstamp.py +3 -0
- ccxt/bitteam.py +5 -0
- ccxt/bitvavo.py +4 -0
- ccxt/blockchaincom.py +4 -0
- ccxt/blofin.py +3 -0
- ccxt/btcalpha.py +5 -0
- ccxt/btcbox.py +3 -2
- ccxt/btcmarkets.py +5 -0
- ccxt/btcturk.py +3 -0
- ccxt/bybit.py +10 -4
- ccxt/cex.py +2 -0
- ccxt/coinbase.py +19 -12
- ccxt/coinbaseexchange.py +5 -0
- ccxt/coinbaseinternational.py +21 -2
- ccxt/coincatch.py +3 -0
- ccxt/coincheck.py +2 -0
- ccxt/coinex.py +5 -1
- ccxt/coinlist.py +5 -0
- ccxt/coinmate.py +4 -0
- ccxt/coinmetro.py +9 -5
- ccxt/coinone.py +3 -0
- ccxt/coinsph.py +4 -0
- ccxt/coinspot.py +1 -0
- ccxt/cryptocom.py +5 -0
- ccxt/currencycom.py +3 -0
- ccxt/defx.py +5 -0
- ccxt/delta.py +4 -1
- ccxt/deribit.py +16 -5
- ccxt/digifinex.py +10 -5
- ccxt/ellipx.py +9 -5
- ccxt/exmo.py +6 -3
- ccxt/gate.py +5 -1
- ccxt/gemini.py +3 -0
- ccxt/hashkey.py +5 -4
- ccxt/hitbtc.py +6 -2
- ccxt/hollaex.py +7 -2
- ccxt/htx.py +8 -1
- ccxt/huobijp.py +5 -0
- ccxt/hyperliquid.py +6 -1
- ccxt/idex.py +5 -1
- ccxt/independentreserve.py +4 -0
- ccxt/indodax.py +3 -0
- ccxt/kraken.py +6 -4
- ccxt/krakenfutures.py +5 -2
- ccxt/kucoin.py +13 -6
- ccxt/kucoinfutures.py +5 -1
- ccxt/kuna.py +3 -0
- ccxt/latoken.py +4 -0
- ccxt/lbank.py +6 -1
- ccxt/luno.py +6 -1
- ccxt/lykke.py +4 -0
- ccxt/mercado.py +4 -0
- ccxt/mexc.py +10 -9
- ccxt/ndax.py +6 -1
- ccxt/novadax.py +5 -0
- ccxt/oceanex.py +6 -2
- ccxt/okcoin.py +4 -0
- ccxt/okx.py +17 -5
- ccxt/onetrading.py +4 -0
- ccxt/oxfun.py +3 -0
- ccxt/p2b.py +3 -0
- ccxt/paradex.py +8 -2
- ccxt/phemex.py +10 -4
- ccxt/poloniex.py +6 -3
- ccxt/poloniexfutures.py +5 -1
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/bitcoincom.py +1 -4
- ccxt/pro/bitopro.py +1 -1
- ccxt/probit.py +4 -0
- ccxt/test/tests_async.py +57 -31
- ccxt/test/tests_sync.py +57 -31
- ccxt/timex.py +4 -0
- ccxt/tokocrypto.py +5 -0
- ccxt/tradeogre.py +2 -0
- ccxt/upbit.py +5 -2
- ccxt/vertex.py +6 -2
- ccxt/wavesexchange.py +20 -3
- ccxt/wazirx.py +2 -0
- ccxt/whitebit.py +5 -4
- ccxt/woo.py +15 -5
- ccxt/woofipro.py +21 -7
- ccxt/xt.py +5 -0
- ccxt/yobit.py +5 -2
- ccxt/zaif.py +2 -0
- ccxt/zonda.py +2 -0
- {ccxt-4.4.51.dist-info → ccxt-4.4.53.dist-info}/METADATA +225 -140
- {ccxt-4.4.51.dist-info → ccxt-4.4.53.dist-info}/RECORD +215 -224
- ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- {ccxt-4.4.51.dist-info → ccxt-4.4.53.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.51.dist-info → ccxt-4.4.53.dist-info}/WHEEL +0 -0
- {ccxt-4.4.51.dist-info → ccxt-4.4.53.dist-info}/top_level.txt +0 -0
ccxt/hashkey.py
CHANGED
@@ -394,17 +394,20 @@ class hashkey(Exchange, ImplicitAPI):
|
|
394
394
|
'limit': 1000,
|
395
395
|
'daysBack': 30,
|
396
396
|
'untilDays': 30,
|
397
|
+
'symbolRequired': False,
|
397
398
|
},
|
398
399
|
'fetchOrder': {
|
399
400
|
'marginMode': False,
|
400
401
|
'trigger': False,
|
401
402
|
'trailing': False,
|
403
|
+
'symbolRequired': False,
|
402
404
|
},
|
403
405
|
'fetchOpenOrders': {
|
404
406
|
'marginMode': False,
|
405
407
|
'limit': 1000,
|
406
408
|
'trigger': False,
|
407
409
|
'trailing': False,
|
410
|
+
'symbolRequired': False,
|
408
411
|
},
|
409
412
|
'fetchOrders': None,
|
410
413
|
'fetchClosedOrders': None, # todo
|
@@ -2396,10 +2399,8 @@ class hashkey(Exchange, ImplicitAPI):
|
|
2396
2399
|
market = self.market(symbol)
|
2397
2400
|
if not market['spot']:
|
2398
2401
|
raise NotSupported(self.id + ' createMarketBuyOrderWithCost() is supported for spot markets only')
|
2399
|
-
|
2400
|
-
|
2401
|
-
}
|
2402
|
-
return self.create_order(symbol, 'market', 'buy', cost, None, self.extend(req, params))
|
2402
|
+
params['cost'] = cost
|
2403
|
+
return self.create_order(symbol, 'market', 'buy', cost, None, params)
|
2403
2404
|
|
2404
2405
|
def create_spot_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}) -> Order:
|
2405
2406
|
"""
|
ccxt/hitbtc.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.hitbtc import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Leverage, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
9
|
+
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Leverage, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, OrderBooks, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -335,12 +335,14 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
335
335
|
'limit': 1000,
|
336
336
|
'daysBack': 100000,
|
337
337
|
'untilDays': 100000,
|
338
|
+
'symbolRequired': False,
|
338
339
|
'marketType': True,
|
339
340
|
},
|
340
341
|
'fetchOrder': {
|
341
342
|
'marginMode': True,
|
342
343
|
'trigger': False,
|
343
344
|
'trailing': False,
|
345
|
+
'symbolRequired': False,
|
344
346
|
'marketType': True,
|
345
347
|
},
|
346
348
|
'fetchOpenOrders': {
|
@@ -348,6 +350,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
348
350
|
'limit': 1000,
|
349
351
|
'trigger': False,
|
350
352
|
'trailing': False,
|
353
|
+
'symbolRequired': False,
|
351
354
|
'marketType': True,
|
352
355
|
},
|
353
356
|
'fetchOrders': None,
|
@@ -359,6 +362,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
359
362
|
'untilDays': 100000, # todo
|
360
363
|
'trigger': False,
|
361
364
|
'trailing': False,
|
365
|
+
'symbolRequired': False,
|
362
366
|
'marketType': True,
|
363
367
|
},
|
364
368
|
'fetchOHLCV': {
|
@@ -1624,7 +1628,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
1624
1628
|
"""
|
1625
1629
|
return self.fetch_transactions_helper('WITHDRAW', code, since, limit, params)
|
1626
1630
|
|
1627
|
-
def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}):
|
1631
|
+
def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}) -> OrderBooks:
|
1628
1632
|
"""
|
1629
1633
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
1630
1634
|
|
ccxt/hollaex.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.hollaex import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
9
|
+
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, OrderBooks, Trade, TradingFees, Transaction
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
12
12
|
from ccxt.base.errors import ArgumentsRequired
|
@@ -205,17 +205,20 @@ class hollaex(Exchange, ImplicitAPI):
|
|
205
205
|
'limit': 100,
|
206
206
|
'daysBack': 100000,
|
207
207
|
'untilDays': 100000, # todo implement
|
208
|
+
'symbolRequired': False,
|
208
209
|
},
|
209
210
|
'fetchOrder': {
|
210
211
|
'marginMode': False,
|
211
212
|
'trigger': False,
|
212
213
|
'trailing': False,
|
214
|
+
'symbolRequired': False,
|
213
215
|
},
|
214
216
|
'fetchOpenOrders': {
|
215
217
|
'marginMode': False,
|
216
218
|
'limit': 100,
|
217
219
|
'trigger': False,
|
218
220
|
'trailing': False,
|
221
|
+
'symbolRequired': False,
|
219
222
|
},
|
220
223
|
'fetchOrders': {
|
221
224
|
'marginMode': False,
|
@@ -224,6 +227,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
224
227
|
'untilDays': 100000, # todo
|
225
228
|
'trigger': False,
|
226
229
|
'trailing': False,
|
230
|
+
'symbolRequired': False,
|
227
231
|
},
|
228
232
|
'fetchClosedOrders': {
|
229
233
|
'marginMode': False,
|
@@ -233,6 +237,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
233
237
|
'untilDays': 100000, # todo
|
234
238
|
'trigger': False,
|
235
239
|
'trailing': False,
|
240
|
+
'symbolRequired': False,
|
236
241
|
},
|
237
242
|
'fetchOHLCV': {
|
238
243
|
'limit': 1000, # todo: no limit in request
|
@@ -491,7 +496,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
491
496
|
}
|
492
497
|
return result
|
493
498
|
|
494
|
-
def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}):
|
499
|
+
def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}) -> OrderBooks:
|
495
500
|
"""
|
496
501
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
497
502
|
|
ccxt/htx.py
CHANGED
@@ -1286,17 +1286,20 @@ class htx(Exchange, ImplicitAPI):
|
|
1286
1286
|
'limit': 500,
|
1287
1287
|
'daysBack': 120,
|
1288
1288
|
'untilDays': 2,
|
1289
|
+
'symbolRequired': False,
|
1289
1290
|
},
|
1290
1291
|
'fetchOrder': {
|
1291
1292
|
'marginMode': False,
|
1292
1293
|
'trigger': False,
|
1293
1294
|
'trailing': False,
|
1295
|
+
'symbolRequired': False,
|
1294
1296
|
},
|
1295
1297
|
'fetchOpenOrders': {
|
1296
1298
|
'marginMode': False,
|
1297
1299
|
'trigger': True,
|
1298
1300
|
'trailing': False,
|
1299
1301
|
'limit': 500,
|
1302
|
+
'symbolRequired': False,
|
1300
1303
|
},
|
1301
1304
|
'fetchOrders': {
|
1302
1305
|
'marginMode': False,
|
@@ -1305,6 +1308,7 @@ class htx(Exchange, ImplicitAPI):
|
|
1305
1308
|
'limit': 500,
|
1306
1309
|
'untilDays': 2,
|
1307
1310
|
'daysBack': 180,
|
1311
|
+
'symbolRequired': False,
|
1308
1312
|
},
|
1309
1313
|
'fetchClosedOrders': {
|
1310
1314
|
'marginMode': False,
|
@@ -1314,6 +1318,7 @@ class htx(Exchange, ImplicitAPI):
|
|
1314
1318
|
'limit': 500,
|
1315
1319
|
'daysBack': 180,
|
1316
1320
|
'daysBackCanceled': 1 / 12,
|
1321
|
+
'symbolRequired': False,
|
1317
1322
|
},
|
1318
1323
|
'fetchOHLCV': {
|
1319
1324
|
'limit': 1000, # 2000 for non-historical
|
@@ -3212,7 +3217,9 @@ class htx(Exchange, ImplicitAPI):
|
|
3212
3217
|
type = 'super-margin'
|
3213
3218
|
elif marginMode == 'isolated':
|
3214
3219
|
type = 'margin'
|
3215
|
-
marketId = None
|
3220
|
+
marketId = None
|
3221
|
+
if symbol is not None:
|
3222
|
+
marketId = self.market_id(symbol)
|
3216
3223
|
for i in range(0, len(accounts)):
|
3217
3224
|
account = accounts[i]
|
3218
3225
|
info = self.safe_value(account, 'info')
|
ccxt/huobijp.py
CHANGED
@@ -296,17 +296,20 @@ class huobijp(Exchange, ImplicitAPI):
|
|
296
296
|
'limit': 100,
|
297
297
|
'daysBack': 120,
|
298
298
|
'untilDays': 2,
|
299
|
+
'symbolRequired': False,
|
299
300
|
},
|
300
301
|
'fetchOrder': {
|
301
302
|
'marginMode': False,
|
302
303
|
'trigger': False,
|
303
304
|
'trailing': False,
|
305
|
+
'symbolRequired': False,
|
304
306
|
},
|
305
307
|
'fetchOpenOrders': {
|
306
308
|
'marginMode': False,
|
307
309
|
'limit': None, # todo
|
308
310
|
'trigger': False,
|
309
311
|
'trailing': False,
|
312
|
+
'symbolRequired': False,
|
310
313
|
},
|
311
314
|
'fetchOrders': {
|
312
315
|
'marginMode': False,
|
@@ -315,6 +318,7 @@ class huobijp(Exchange, ImplicitAPI):
|
|
315
318
|
'untilDays': None, # todo
|
316
319
|
'trigger': False,
|
317
320
|
'trailing': False,
|
321
|
+
'symbolRequired': False,
|
318
322
|
},
|
319
323
|
'fetchClosedOrders': {
|
320
324
|
'marginMode': False,
|
@@ -324,6 +328,7 @@ class huobijp(Exchange, ImplicitAPI):
|
|
324
328
|
'untilDays': None, # todo
|
325
329
|
'trigger': False,
|
326
330
|
'trailing': False,
|
331
|
+
'symbolRequired': False,
|
327
332
|
},
|
328
333
|
'fetchOHLCV': {
|
329
334
|
'limit': 2000,
|
ccxt/hyperliquid.py
CHANGED
@@ -261,17 +261,20 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
261
261
|
'limit': 2000,
|
262
262
|
'daysBack': None,
|
263
263
|
'untilDays': None,
|
264
|
+
'symbolRequired': True,
|
264
265
|
},
|
265
266
|
'fetchOrder': {
|
266
267
|
'marginMode': False,
|
267
268
|
'trigger': False,
|
268
269
|
'trailing': False,
|
270
|
+
'symbolRequired': True,
|
269
271
|
},
|
270
272
|
'fetchOpenOrders': {
|
271
273
|
'marginMode': False,
|
272
274
|
'limit': 2000,
|
273
275
|
'trigger': False,
|
274
276
|
'trailing': False,
|
277
|
+
'symbolRequired': True,
|
275
278
|
},
|
276
279
|
'fetchOrders': {
|
277
280
|
'marginMode': False,
|
@@ -280,6 +283,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
280
283
|
'untilDays': None,
|
281
284
|
'trigger': False,
|
282
285
|
'trailing': False,
|
286
|
+
'symbolRequired': True,
|
283
287
|
},
|
284
288
|
'fetchClosedOrders': {
|
285
289
|
'marginMode': False,
|
@@ -289,6 +293,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
289
293
|
'untilDays': None,
|
290
294
|
'trigger': False,
|
291
295
|
'trailing': False,
|
296
|
+
'symbolRequired': True,
|
292
297
|
},
|
293
298
|
'fetchOHLCV': {
|
294
299
|
'limit': 5000,
|
@@ -1132,7 +1137,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1132
1137
|
self.safe_number(ohlcv, 'v'),
|
1133
1138
|
]
|
1134
1139
|
|
1135
|
-
def fetch_trades(self, symbol: Str
|
1140
|
+
def fetch_trades(self, symbol: Str, since: Int = None, limit: Int = None, params={}):
|
1136
1141
|
"""
|
1137
1142
|
get the list of most recent trades for a particular symbol
|
1138
1143
|
|
ccxt/idex.py
CHANGED
@@ -212,17 +212,20 @@ class idex(Exchange, ImplicitAPI):
|
|
212
212
|
'limit': 1000,
|
213
213
|
'daysBack': 100000, # todo
|
214
214
|
'untilDays': 100000, # todo
|
215
|
+
'symbolRequired': False,
|
215
216
|
},
|
216
217
|
'fetchOrder': {
|
217
218
|
'marginMode': False,
|
218
219
|
'trigger': False,
|
219
220
|
'trailing': False,
|
221
|
+
'symbolRequired': False,
|
220
222
|
},
|
221
223
|
'fetchOpenOrders': {
|
222
224
|
'marginMode': False,
|
223
225
|
'limit': 1000,
|
224
226
|
'trigger': False,
|
225
227
|
'trailing': False,
|
228
|
+
'symbolRequired': False,
|
226
229
|
},
|
227
230
|
'fetchOrders': None,
|
228
231
|
'fetchClosedOrders': {
|
@@ -233,6 +236,7 @@ class idex(Exchange, ImplicitAPI):
|
|
233
236
|
'untilDays': 1000000, # todo
|
234
237
|
'trigger': False,
|
235
238
|
'trailing': False,
|
239
|
+
'symbolRequired': False,
|
236
240
|
},
|
237
241
|
'fetchOHLCV': {
|
238
242
|
'limit': 1000,
|
@@ -1772,7 +1776,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1772
1776
|
authenticated = hasApiKey and hasSecret and hasWalletAddress and hasPrivateKey
|
1773
1777
|
return(defaultCost / 2) if authenticated else defaultCost
|
1774
1778
|
|
1775
|
-
def fetch_deposit_address(self, code: Str
|
1779
|
+
def fetch_deposit_address(self, code: Str, params={}) -> DepositAddress:
|
1776
1780
|
"""
|
1777
1781
|
fetch the Polygon address of the wallet
|
1778
1782
|
|
ccxt/independentreserve.py
CHANGED
@@ -179,17 +179,20 @@ class independentreserve(Exchange, ImplicitAPI):
|
|
179
179
|
'limit': 100, # todo
|
180
180
|
'daysBack': None,
|
181
181
|
'untilDays': None,
|
182
|
+
'symbolRequired': False,
|
182
183
|
},
|
183
184
|
'fetchOrder': {
|
184
185
|
'marginMode': False,
|
185
186
|
'trigger': False,
|
186
187
|
'trailing': False,
|
188
|
+
'symbolRequired': False,
|
187
189
|
},
|
188
190
|
'fetchOpenOrders': {
|
189
191
|
'marginMode': False,
|
190
192
|
'limit': 100, # todo
|
191
193
|
'trigger': False,
|
192
194
|
'trailing': False,
|
195
|
+
'symbolRequired': False,
|
193
196
|
},
|
194
197
|
'fetchOrders': None,
|
195
198
|
'fetchClosedOrders': {
|
@@ -200,6 +203,7 @@ class independentreserve(Exchange, ImplicitAPI):
|
|
200
203
|
'untilDays': None,
|
201
204
|
'trigger': False,
|
202
205
|
'trailing': False,
|
206
|
+
'symbolRequired': False,
|
203
207
|
},
|
204
208
|
'fetchOHLCV': None,
|
205
209
|
},
|
ccxt/indodax.py
CHANGED
@@ -235,12 +235,14 @@ class indodax(Exchange, ImplicitAPI):
|
|
235
235
|
'marginMode': False,
|
236
236
|
'trigger': False,
|
237
237
|
'trailing': False,
|
238
|
+
'symbolRequired': True,
|
238
239
|
},
|
239
240
|
'fetchOpenOrders': {
|
240
241
|
'marginMode': False,
|
241
242
|
'limit': None,
|
242
243
|
'trigger': False,
|
243
244
|
'trailing': False,
|
245
|
+
'symbolRequired': False,
|
244
246
|
},
|
245
247
|
'fetchOrders': None,
|
246
248
|
'fetchClosedOrders': {
|
@@ -251,6 +253,7 @@ class indodax(Exchange, ImplicitAPI):
|
|
251
253
|
'untilDays': None,
|
252
254
|
'trigger': False,
|
253
255
|
'trailing': False,
|
256
|
+
'symbolRequired': True,
|
254
257
|
},
|
255
258
|
'fetchOHLCV': {
|
256
259
|
'limit': 2000, # todo: not in request
|
ccxt/kraken.py
CHANGED
@@ -476,17 +476,20 @@ class kraken(Exchange, ImplicitAPI):
|
|
476
476
|
'limit': None,
|
477
477
|
'daysBack': None,
|
478
478
|
'untilDays': None,
|
479
|
+
'symbolRequired': False,
|
479
480
|
},
|
480
481
|
'fetchOrder': {
|
481
482
|
'marginMode': False,
|
482
483
|
'trigger': False,
|
483
484
|
'trailing': False,
|
485
|
+
'symbolRequired': False,
|
484
486
|
},
|
485
487
|
'fetchOpenOrders': {
|
486
488
|
'marginMode': False,
|
487
489
|
'limit': None,
|
488
490
|
'trigger': False,
|
489
491
|
'trailing': False,
|
492
|
+
'symbolRequired': False,
|
490
493
|
},
|
491
494
|
'fetchOrders': None,
|
492
495
|
'fetchClosedOrders': {
|
@@ -497,6 +500,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
497
500
|
'untilDays': 100000,
|
498
501
|
'trigger': False,
|
499
502
|
'trailing': False,
|
503
|
+
'symbolRequired': False,
|
500
504
|
},
|
501
505
|
'fetchOHLCV': {
|
502
506
|
'limit': 720,
|
@@ -1488,10 +1492,8 @@ class kraken(Exchange, ImplicitAPI):
|
|
1488
1492
|
"""
|
1489
1493
|
self.load_markets()
|
1490
1494
|
# only buy orders are supported by the endpoint
|
1491
|
-
|
1492
|
-
|
1493
|
-
}
|
1494
|
-
return self.create_order(symbol, 'market', side, 1, None, self.extend(req, params))
|
1495
|
+
params['cost'] = cost
|
1496
|
+
return self.create_order(symbol, 'market', side, cost, None, params)
|
1495
1497
|
|
1496
1498
|
def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
|
1497
1499
|
"""
|
ccxt/krakenfutures.py
CHANGED
@@ -313,6 +313,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
313
313
|
'limit': None,
|
314
314
|
'daysBack': None,
|
315
315
|
'untilDays': 100000,
|
316
|
+
'symbolRequired': False,
|
316
317
|
},
|
317
318
|
'fetchOrder': None,
|
318
319
|
'fetchOpenOrders': {
|
@@ -320,6 +321,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
320
321
|
'limit': None,
|
321
322
|
'trigger': False,
|
322
323
|
'trailing': False,
|
324
|
+
'symbolRequired': False,
|
323
325
|
},
|
324
326
|
'fetchOrders': None,
|
325
327
|
'fetchClosedOrders': {
|
@@ -330,6 +332,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
330
332
|
'untilDays': None,
|
331
333
|
'trigger': False,
|
332
334
|
'trailing': False,
|
335
|
+
'symbolRequired': False,
|
333
336
|
},
|
334
337
|
'fetchOHLCV': {
|
335
338
|
'limit': 5000,
|
@@ -1488,13 +1491,13 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1488
1491
|
return self.parse_orders(canceledAndRejected, market, since, limit)
|
1489
1492
|
|
1490
1493
|
def parse_order_type(self, orderType):
|
1491
|
-
|
1494
|
+
typesMap: dict = {
|
1492
1495
|
'lmt': 'limit',
|
1493
1496
|
'mkt': 'market',
|
1494
1497
|
'post': 'limit',
|
1495
1498
|
'ioc': 'market',
|
1496
1499
|
}
|
1497
|
-
return self.safe_string(
|
1500
|
+
return self.safe_string(typesMap, orderType, orderType)
|
1498
1501
|
|
1499
1502
|
def verify_order_action_success(self, status, method, omit=[]):
|
1500
1503
|
errors: dict = {
|
ccxt/kucoin.py
CHANGED
@@ -1039,17 +1039,20 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1039
1039
|
'limit': None,
|
1040
1040
|
'daysBack': None,
|
1041
1041
|
'untilDays': 7, # per implementation comments
|
1042
|
+
'symbolRequired': True,
|
1042
1043
|
},
|
1043
1044
|
'fetchOrder': {
|
1044
1045
|
'marginMode': False,
|
1045
1046
|
'trigger': True,
|
1046
1047
|
'trailing': False,
|
1048
|
+
'symbolRequired': True,
|
1047
1049
|
},
|
1048
1050
|
'fetchOpenOrders': {
|
1049
1051
|
'marginMode': True,
|
1050
1052
|
'limit': 500,
|
1051
1053
|
'trigger': True,
|
1052
1054
|
'trailing': False,
|
1055
|
+
'symbolRequired': True,
|
1053
1056
|
},
|
1054
1057
|
'fetchOrders': None,
|
1055
1058
|
'fetchClosedOrders': {
|
@@ -1060,6 +1063,7 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1060
1063
|
'untilDays': 7,
|
1061
1064
|
'trigger': True,
|
1062
1065
|
'trailing': False,
|
1066
|
+
'symbolRequired': True,
|
1063
1067
|
},
|
1064
1068
|
'fetchOHLCV': {
|
1065
1069
|
'limit': 1500,
|
@@ -1325,10 +1329,12 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1325
1329
|
|
1326
1330
|
https://www.kucoin.com/docs/rest/spot-trading/spot-hf-trade-pro-account/get-user-type
|
1327
1331
|
|
1332
|
+
:returns any: ignore
|
1328
1333
|
"""
|
1329
1334
|
if not ('hf' in self.options) or (self.options['hf'] is None) or force:
|
1330
1335
|
result: dict = self.privateGetHfAccountsOpened()
|
1331
1336
|
self.options['hf'] = self.safe_bool(result, 'data')
|
1337
|
+
return True
|
1332
1338
|
|
1333
1339
|
def handle_hf_and_params(self, params={}):
|
1334
1340
|
migrated: Bool = self.safe_bool(self.options, 'hf', False)
|
@@ -2265,10 +2271,8 @@ class kucoin(Exchange, ImplicitAPI):
|
|
2265
2271
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2266
2272
|
"""
|
2267
2273
|
self.load_markets()
|
2268
|
-
|
2269
|
-
|
2270
|
-
}
|
2271
|
-
return self.create_order(symbol, 'market', side, 0, None, self.extend(req, params))
|
2274
|
+
params['cost'] = cost
|
2275
|
+
return self.create_order(symbol, 'market', side, cost, None, params)
|
2272
2276
|
|
2273
2277
|
def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}):
|
2274
2278
|
"""
|
@@ -3877,7 +3881,9 @@ class kucoin(Exchange, ImplicitAPI):
|
|
3877
3881
|
account['free'] = self.safe_string(balance, 'available')
|
3878
3882
|
account['used'] = self.safe_string(balance, 'holds')
|
3879
3883
|
result[codeInner2] = account
|
3880
|
-
returnType = result
|
3884
|
+
returnType = result
|
3885
|
+
if not isolated:
|
3886
|
+
returnType = self.safe_balance(result)
|
3881
3887
|
return returnType
|
3882
3888
|
|
3883
3889
|
def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
|
@@ -4590,7 +4596,8 @@ class kucoin(Exchange, ImplicitAPI):
|
|
4590
4596
|
if not (code in borrowRateHistories):
|
4591
4597
|
borrowRateHistories[code] = []
|
4592
4598
|
borrowRateStructure = self.parse_borrow_rate(item)
|
4593
|
-
borrowRateHistories[code]
|
4599
|
+
borrowRateHistoriesCode = borrowRateHistories[code]
|
4600
|
+
borrowRateHistoriesCode.append(borrowRateStructure)
|
4594
4601
|
keys = list(borrowRateHistories.keys())
|
4595
4602
|
for i in range(0, len(keys)):
|
4596
4603
|
code = keys[i]
|
ccxt/kucoinfutures.py
CHANGED
@@ -411,17 +411,20 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
411
411
|
'limit': 1000,
|
412
412
|
'daysBack': None,
|
413
413
|
'untilDays': 7,
|
414
|
+
'symbolRequired': False,
|
414
415
|
},
|
415
416
|
'fetchOrder': {
|
416
417
|
'marginMode': False,
|
417
418
|
'trigger': False,
|
418
419
|
'trailing': False,
|
420
|
+
'symbolRequired': False,
|
419
421
|
},
|
420
422
|
'fetchOpenOrders': {
|
421
423
|
'marginMode': False,
|
422
424
|
'limit': 1000,
|
423
425
|
'trigger': True,
|
424
426
|
'trailing': False,
|
427
|
+
'symbolRequired': False,
|
425
428
|
},
|
426
429
|
'fetchOrders': None,
|
427
430
|
'fetchClosedOrders': {
|
@@ -432,6 +435,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
432
435
|
'untilDays': None,
|
433
436
|
'trigger': True,
|
434
437
|
'trailing': False,
|
438
|
+
'symbolRequired': False,
|
435
439
|
},
|
436
440
|
'fetchOHLCV': {
|
437
441
|
'limit': 500,
|
@@ -2097,7 +2101,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
2097
2101
|
return self.fetch_paginated_call_dynamic('fetchOpenOrders', symbol, since, limit, params)
|
2098
2102
|
return self.fetch_orders_by_status('open', symbol, since, limit, params)
|
2099
2103
|
|
2100
|
-
def fetch_order(self, id: Str
|
2104
|
+
def fetch_order(self, id: Str, symbol: Str = None, params={}):
|
2101
2105
|
"""
|
2102
2106
|
fetches information on an order made by the user
|
2103
2107
|
|
ccxt/kuna.py
CHANGED
@@ -394,12 +394,14 @@ class kuna(Exchange, ImplicitAPI):
|
|
394
394
|
'marginMode': False,
|
395
395
|
'trigger': False,
|
396
396
|
'trailing': False,
|
397
|
+
'symbolRequired': False,
|
397
398
|
},
|
398
399
|
'fetchOpenOrders': {
|
399
400
|
'marginMode': False,
|
400
401
|
'limit': 100,
|
401
402
|
'trigger': False,
|
402
403
|
'trailing': False,
|
404
|
+
'symbolRequired': False,
|
403
405
|
},
|
404
406
|
'fetchOrders': None,
|
405
407
|
'fetchClosedOrders': {
|
@@ -410,6 +412,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
410
412
|
'untilDays': 14,
|
411
413
|
'trigger': False,
|
412
414
|
'trailing': False,
|
415
|
+
'symbolRequired': False,
|
413
416
|
},
|
414
417
|
'fetchOHLCV': None,
|
415
418
|
},
|
ccxt/latoken.py
CHANGED
@@ -279,17 +279,20 @@ class latoken(Exchange, ImplicitAPI):
|
|
279
279
|
'limit': 1000,
|
280
280
|
'daysBack': 100000, # todo
|
281
281
|
'untilDays': None,
|
282
|
+
'symbolRequired': False,
|
282
283
|
},
|
283
284
|
'fetchOrder': {
|
284
285
|
'marginMode': False,
|
285
286
|
'trigger': True,
|
286
287
|
'trailing': False,
|
288
|
+
'symbolRequired': False,
|
287
289
|
},
|
288
290
|
'fetchOpenOrders': {
|
289
291
|
'marginMode': False,
|
290
292
|
'limit': None,
|
291
293
|
'trigger': False,
|
292
294
|
'trailing': False,
|
295
|
+
'symbolRequired': True,
|
293
296
|
},
|
294
297
|
'fetchOrders': None,
|
295
298
|
'fetchClosedOrders': {
|
@@ -300,6 +303,7 @@ class latoken(Exchange, ImplicitAPI):
|
|
300
303
|
'untilDays': None,
|
301
304
|
'trigger': True,
|
302
305
|
'trailing': False,
|
306
|
+
'symbolRequired': False,
|
303
307
|
},
|
304
308
|
'fetchOHLCV': None,
|
305
309
|
},
|
ccxt/lbank.py
CHANGED
@@ -339,17 +339,20 @@ class lbank(Exchange, ImplicitAPI):
|
|
339
339
|
'limit': 100,
|
340
340
|
'daysBack': 100000, # todo
|
341
341
|
'untilDays': 2,
|
342
|
+
'symbolRequired': True,
|
342
343
|
},
|
343
344
|
'fetchOrder': {
|
344
345
|
'marginMode': False,
|
345
346
|
'trigger': False,
|
346
347
|
'trailing': False,
|
348
|
+
'symbolRequired': True,
|
347
349
|
},
|
348
350
|
'fetchOpenOrders': {
|
349
351
|
'marginMode': False,
|
350
352
|
'limit': 200,
|
351
353
|
'trigger': False,
|
352
354
|
'trailing': False,
|
355
|
+
'symbolRequired': True,
|
353
356
|
},
|
354
357
|
'fetchOrders': {
|
355
358
|
'marginMode': False,
|
@@ -358,6 +361,7 @@ class lbank(Exchange, ImplicitAPI):
|
|
358
361
|
'untilDays': None,
|
359
362
|
'trigger': False,
|
360
363
|
'trailing': False,
|
364
|
+
'symbolRequired': True,
|
361
365
|
},
|
362
366
|
'fetchClosedOrders': None, # todo: through fetchOrders "status" -1: Cancelled 0: Unfilled 1: Partially filled 2: Completely filled 3: Partially filled has been cancelled 4: Cancellation is being processed
|
363
367
|
'fetchOHLCV': {
|
@@ -2669,7 +2673,8 @@ class lbank(Exchange, ImplicitAPI):
|
|
2669
2673
|
if resultValue is None:
|
2670
2674
|
result[code] = self.deposit_withdraw_fee([fee])
|
2671
2675
|
else:
|
2672
|
-
result[code]['info']
|
2676
|
+
resultCodeInfo = result[code]['info']
|
2677
|
+
resultCodeInfo.append(fee)
|
2673
2678
|
chain = self.safe_string(fee, 'chain')
|
2674
2679
|
networkCode = self.safe_string(self.options['inverse-networks'], chain, chain)
|
2675
2680
|
if networkCode is not None:
|