ccxt 4.1.68__tar.gz → 4.1.70__tar.gz
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-4.1.68/ccxt.egg-info → ccxt-4.1.70}/PKG-INFO +4 -4
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/__init__.py +1 -1
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/phemex.py +8 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/ascendex.py +69 -68
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/ascendex.py +69 -68
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinex.py +348 -59
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/phemex.py +14 -2
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/base/exchange.py +1 -1
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinex.py +348 -59
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/phemex.py +14 -2
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/binance.py +2 -2
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/htx.py +3 -2
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/test_async.py +51 -29
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/test_sync.py +51 -29
- {ccxt-4.1.68 → ccxt-4.1.70/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.1.68 → ccxt-4.1.70}/package.json +1 -1
- {ccxt-4.1.68 → ccxt-4.1.70}/setup.py +1 -1
- {ccxt-4.1.68 → ccxt-4.1.70}/LICENSE.txt +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/MANIFEST.in +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/README.rst +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitforex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bittrex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinbaseprime.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/tidex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/ace.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/alpaca.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitforex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bittrex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinbaseprime.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/huobipro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/mexc3.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/okex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/okex5.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/tidex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/base/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/base/errors.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/base/precise.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/base/types.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bequant.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bigone.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/binance.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/binanceus.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bingx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bit2c.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitbank.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitbay.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitbns.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitfinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitflyer.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitforex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitget.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bithumb.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitmart.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitmex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitopro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitpanda.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitrue.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitso.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitstamp.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bittrex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bitvavo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bl3p.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/btcalpha.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/btcbox.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/btcturk.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/bybit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/cex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinbase.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinbaseprime.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coincheck.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinlist.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinmate.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinone.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinsph.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/coinspot.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/cryptocom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/currencycom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/delta.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/deribit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/digifinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/exmo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/flowbtc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/fmfwio.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/gate.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/gateio.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/gemini.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/hitbtc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/hollaex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/htx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/huobi.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/huobijp.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/huobipro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/idex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/independentreserve.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/indodax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/kraken.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/kucoin.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/kuna.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/latoken.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/lbank.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/luno.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/lykke.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/mercado.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/mexc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/mexc3.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/ndax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/novadax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/oceanex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/okcoin.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/okex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/okex5.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/okx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/p2b.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/paymium.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/poloniex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bittrex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/cex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/coinbaseprime.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/gate.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/huobipro.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/idex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/luno.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/mexc3.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/okex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/okx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/probit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/pro/woo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/probit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/tidex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/timex.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/upbit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/wazirx.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/whitebit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/woo.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/yobit.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/zaif.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt/zonda.py +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt.egg-info/requires.txt +1 -1
- {ccxt-4.1.68 → ccxt-4.1.70}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.1.68 → ccxt-4.1.70}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.1.
|
3
|
+
Version: 4.1.70
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -224,13 +224,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
224
224
|
|
225
225
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
226
226
|
|
227
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
228
|
-
* unpkg: https://unpkg.com/ccxt@4.1.
|
227
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.70/dist/ccxt.browser.js
|
228
|
+
* unpkg: https://unpkg.com/ccxt@4.1.70/dist/ccxt.browser.js
|
229
229
|
|
230
230
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
231
231
|
|
232
232
|
```HTML
|
233
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
233
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.70/dist/ccxt.browser.js"></script>
|
234
234
|
```
|
235
235
|
|
236
236
|
Creates a global `ccxt` object:
|
@@ -14,6 +14,7 @@ class ImplicitAPI:
|
|
14
14
|
public_get_md_trade = publicGetMdTrade = Entry('md/trade', 'public', 'GET', {'cost': 5})
|
15
15
|
public_get_md_spot_ticker_24hr = publicGetMdSpotTicker24hr = Entry('md/spot/ticker/24hr', 'public', 'GET', {'cost': 5})
|
16
16
|
public_get_exchange_public_cfg_chain_settings = publicGetExchangePublicCfgChainSettings = Entry('exchange/public/cfg/chain-settings', 'public', 'GET', {'cost': 5})
|
17
|
+
v1_get_md_fullbook = v1GetMdFullbook = Entry('md/fullbook', 'v1', 'GET', {'cost': 5})
|
17
18
|
v1_get_md_orderbook = v1GetMdOrderbook = Entry('md/orderbook', 'v1', 'GET', {'cost': 5})
|
18
19
|
v1_get_md_trade = v1GetMdTrade = Entry('md/trade', 'v1', 'GET', {'cost': 5})
|
19
20
|
v1_get_md_ticker_24hr = v1GetMdTicker24hr = Entry('md/ticker/24hr', 'v1', 'GET', {'cost': 5})
|
@@ -55,6 +56,11 @@ class ImplicitAPI:
|
|
55
56
|
private_get_phemex_user_users_children = privateGetPhemexUserUsersChildren = Entry('phemex-user/users/children', 'private', 'GET', {'cost': 5})
|
56
57
|
private_get_phemex_user_wallets_v2_depositaddress = privateGetPhemexUserWalletsV2DepositAddress = Entry('phemex-user/wallets/v2/depositAddress', 'private', 'GET', {'cost': 5})
|
57
58
|
private_get_phemex_user_wallets_tradeaccountdetail = privateGetPhemexUserWalletsTradeAccountDetail = Entry('phemex-user/wallets/tradeAccountDetail', 'private', 'GET', {'cost': 5})
|
59
|
+
private_get_phemex_deposit_wallets_api_depositaddress = privateGetPhemexDepositWalletsApiDepositAddress = Entry('phemex-deposit/wallets/api/depositAddress', 'private', 'GET', {'cost': 5})
|
60
|
+
private_get_phemex_deposit_wallets_api_deposithist = privateGetPhemexDepositWalletsApiDepositHist = Entry('phemex-deposit/wallets/api/depositHist', 'private', 'GET', {'cost': 5})
|
61
|
+
private_get_phemex_deposit_wallets_api_chaincfg = privateGetPhemexDepositWalletsApiChainCfg = Entry('phemex-deposit/wallets/api/chainCfg', 'private', 'GET', {'cost': 5})
|
62
|
+
private_get_phemex_withdraw_wallets_api_withdrawhist = privateGetPhemexWithdrawWalletsApiWithdrawHist = Entry('phemex-withdraw/wallets/api/withdrawHist', 'private', 'GET', {'cost': 5})
|
63
|
+
private_get_phemex_withdraw_wallets_api_asset_info = privateGetPhemexWithdrawWalletsApiAssetInfo = Entry('phemex-withdraw/wallets/api/asset/info', 'private', 'GET', {'cost': 5})
|
58
64
|
private_get_phemex_user_order_closedpositionlist = privateGetPhemexUserOrderClosedPositionList = Entry('phemex-user/order/closedPositionList', 'private', 'GET', {'cost': 5})
|
59
65
|
private_get_exchange_margins_transfer = privateGetExchangeMarginsTransfer = Entry('exchange/margins/transfer', 'private', 'GET', {'cost': 5})
|
60
66
|
private_get_exchange_wallets_confirm_withdraw = privateGetExchangeWalletsConfirmWithdraw = Entry('exchange/wallets/confirm/withdraw', 'private', 'GET', {'cost': 5})
|
@@ -87,6 +93,8 @@ class ImplicitAPI:
|
|
87
93
|
private_post_assets_futures_sub_accounts_transfer = privatePostAssetsFuturesSubAccountsTransfer = Entry('assets/futures/sub-accounts/transfer', 'private', 'POST', {'cost': 5})
|
88
94
|
private_post_assets_universal_transfer = privatePostAssetsUniversalTransfer = Entry('assets/universal-transfer', 'private', 'POST', {'cost': 5})
|
89
95
|
private_post_assets_convert = privatePostAssetsConvert = Entry('assets/convert', 'private', 'POST', {'cost': 5})
|
96
|
+
private_post_phemex_withdraw_wallets_api_createwithdraw = privatePostPhemexWithdrawWalletsApiCreateWithdraw = Entry('phemex-withdraw/wallets/api/createWithdraw', 'private', 'POST', {'cost': 5})
|
97
|
+
private_post_phemex_withdraw_wallets_api_cancelwithdraw = privatePostPhemexWithdrawWalletsApiCancelWithdraw = Entry('phemex-withdraw/wallets/api/cancelWithdraw', 'private', 'POST', {'cost': 5})
|
90
98
|
private_put_spot_orders_create = privatePutSpotOrdersCreate = Entry('spot/orders/create', 'private', 'PUT', {'cost': 1})
|
91
99
|
private_put_spot_orders = privatePutSpotOrders = Entry('spot/orders', 'private', 'PUT', {'cost': 1})
|
92
100
|
private_put_orders_replace = privatePutOrdersReplace = Entry('orders/replace', 'private', 'PUT', {'cost': 1})
|
@@ -270,7 +270,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
270
270
|
'account-category': 'cash', # 'cash', 'margin', 'futures' # obsolete
|
271
271
|
'account-group': None,
|
272
272
|
'fetchClosedOrders': {
|
273
|
-
'method': 'v2PrivateDataGetOrderHist', # '
|
273
|
+
'method': 'v2PrivateDataGetOrderHist', # 'v1PrivateAccountCategoryGetOrderHistCurrent'
|
274
274
|
},
|
275
275
|
'defaultType': 'spot', # 'spot', 'margin', 'swap'
|
276
276
|
'accountsByType': {
|
@@ -792,6 +792,9 @@ class ascendex(Exchange, ImplicitAPI):
|
|
792
792
|
def fetch_balance(self, params={}) -> Balances:
|
793
793
|
"""
|
794
794
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
795
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#cash-account-balance
|
796
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#margin-account-balance
|
797
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#position
|
795
798
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
796
799
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
797
800
|
"""
|
@@ -802,8 +805,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
802
805
|
marketType, query = self.handle_market_type_and_params('fetchBalance', None, params)
|
803
806
|
isMargin = self.safe_value(params, 'margin', False)
|
804
807
|
marketType = 'margin' if isMargin else marketType
|
805
|
-
|
806
|
-
options = self.safe_value(self.options, 'fetchBalance', {})
|
808
|
+
query = self.omit(query, 'margin')
|
807
809
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
808
810
|
accountCategory = self.safe_string(accountsByType, marketType, 'cash')
|
809
811
|
account = self.safe_value(self.accounts, 0, {})
|
@@ -811,15 +813,15 @@ class ascendex(Exchange, ImplicitAPI):
|
|
811
813
|
request = {
|
812
814
|
'account-group': accountGroup,
|
813
815
|
}
|
814
|
-
defaultMethod = self.safe_string(options, 'method', 'v1PrivateAccountCategoryGetBalance')
|
815
|
-
method = self.get_supported_mapping(marketType, {
|
816
|
-
'spot': defaultMethod,
|
817
|
-
'margin': defaultMethod,
|
818
|
-
'swap': 'v2PrivateAccountGroupGetFuturesPosition',
|
819
|
-
})
|
820
816
|
if (accountCategory == 'cash') or (accountCategory == 'margin'):
|
821
817
|
request['account-category'] = accountCategory
|
822
|
-
response =
|
818
|
+
response = None
|
819
|
+
if (marketType == 'spot') or (marketType == 'margin'):
|
820
|
+
response = self.v1PrivateAccountCategoryGetBalance(self.extend(request, query))
|
821
|
+
elif marketType == 'swap':
|
822
|
+
response = self.v2PrivateAccountGroupGetFuturesPosition(self.extend(request, query))
|
823
|
+
else:
|
824
|
+
raise NotSupported(self.id + ' fetchBalance() is not currently supported for ' + marketType + ' markets')
|
823
825
|
#
|
824
826
|
# cash
|
825
827
|
#
|
@@ -1675,6 +1677,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1675
1677
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
1676
1678
|
"""
|
1677
1679
|
fetches information on an order made by the user
|
1680
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#query-order
|
1681
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#query-order-by-id
|
1678
1682
|
:param str symbol: unified symbol of the market the order was made in
|
1679
1683
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1680
1684
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1685,7 +1689,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1685
1689
|
if symbol is not None:
|
1686
1690
|
market = self.market(symbol)
|
1687
1691
|
type, query = self.handle_market_type_and_params('fetchOrder', market, params)
|
1688
|
-
options = self.safe_value(self.options, 'fetchOrder', {})
|
1689
1692
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
1690
1693
|
accountCategory = self.safe_string(accountsByType, type, 'cash')
|
1691
1694
|
account = self.safe_value(self.accounts, 0, {})
|
@@ -1695,18 +1698,14 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1695
1698
|
'account-category': accountCategory,
|
1696
1699
|
'orderId': id,
|
1697
1700
|
}
|
1698
|
-
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
'swap': 'v2PrivateAccountGroupGetFuturesOrderStatus',
|
1703
|
-
})
|
1704
|
-
if method == 'v1PrivateAccountCategoryGetOrderStatus':
|
1705
|
-
if accountCategory is not None:
|
1706
|
-
request['category'] = accountCategory
|
1707
|
-
else:
|
1701
|
+
response = None
|
1702
|
+
if (type == 'spot') or (type == 'margin'):
|
1703
|
+
response = self.v1PrivateAccountCategoryGetOrderStatus(self.extend(request, query))
|
1704
|
+
elif type == 'swap':
|
1708
1705
|
request['account-category'] = accountCategory
|
1709
|
-
|
1706
|
+
response = self.v2PrivateAccountGroupGetFuturesOrderStatus(self.extend(request, query))
|
1707
|
+
else:
|
1708
|
+
raise NotSupported(self.id + ' fetchOrder() is not currently supported for ' + type + ' markets')
|
1710
1709
|
#
|
1711
1710
|
# AccountCategoryGetOrderStatus
|
1712
1711
|
#
|
@@ -1780,6 +1779,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1780
1779
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
1781
1780
|
"""
|
1782
1781
|
fetch all unfilled currently open orders
|
1782
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#list-open-orders
|
1783
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#list-open-orders
|
1783
1784
|
:param str symbol: unified market symbol
|
1784
1785
|
:param int [since]: the earliest time in ms to fetch open orders for
|
1785
1786
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
@@ -1801,19 +1802,14 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1801
1802
|
'account-group': accountGroup,
|
1802
1803
|
'account-category': accountCategory,
|
1803
1804
|
}
|
1804
|
-
|
1805
|
-
|
1806
|
-
|
1807
|
-
|
1808
|
-
'margin': defaultMethod,
|
1809
|
-
'swap': 'v2PrivateAccountGroupGetFuturesOrderOpen',
|
1810
|
-
})
|
1811
|
-
if method == 'v1PrivateAccountCategoryGetOrderOpen':
|
1812
|
-
if accountCategory is not None:
|
1813
|
-
request['category'] = accountCategory
|
1814
|
-
else:
|
1805
|
+
response = None
|
1806
|
+
if (type == 'spot') or (type == 'margin'):
|
1807
|
+
response = self.v1PrivateAccountCategoryGetOrderOpen(self.extend(request, query))
|
1808
|
+
elif type == 'swap':
|
1815
1809
|
request['account-category'] = accountCategory
|
1816
|
-
|
1810
|
+
response = self.v2PrivateAccountGroupGetFuturesOrderOpen(self.extend(request, query))
|
1811
|
+
else:
|
1812
|
+
raise NotSupported(self.id + ' fetchOpenOrders() is not currently supported for ' + type + ' markets')
|
1817
1813
|
#
|
1818
1814
|
# AccountCategoryGetOrderOpen
|
1819
1815
|
#
|
@@ -1895,6 +1891,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1895
1891
|
"""
|
1896
1892
|
fetches information on multiple closed orders made by the user
|
1897
1893
|
:see: https://ascendex.github.io/ascendex-pro-api/#list-history-orders-v2
|
1894
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#list-current-history-orders
|
1898
1895
|
:param str symbol: unified market symbol of the market orders were made in
|
1899
1896
|
:param int [since]: the earliest time in ms to fetch orders for
|
1900
1897
|
:param int [limit]: the maximum number of orde structures to retrieve
|
@@ -1907,7 +1904,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1907
1904
|
account = self.safe_value(self.accounts, 0, {})
|
1908
1905
|
accountGroup = self.safe_value(account, 'id')
|
1909
1906
|
request = {
|
1910
|
-
'account-group': accountGroup,
|
1911
1907
|
# 'category': accountCategory,
|
1912
1908
|
# 'symbol': market['id'],
|
1913
1909
|
# 'orderType': 'market', # optional, string
|
@@ -1930,22 +1926,33 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1930
1926
|
'margin': defaultMethod,
|
1931
1927
|
'swap': 'v2PrivateAccountGroupGetFuturesOrderHistCurrent',
|
1932
1928
|
})
|
1929
|
+
if since is not None:
|
1930
|
+
request['startTime'] = since
|
1931
|
+
until = self.safe_string(params, 'until')
|
1932
|
+
if until is not None:
|
1933
|
+
request['endTime'] = until
|
1933
1934
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
1934
1935
|
accountCategory = self.safe_string(accountsByType, type, 'cash') # margin, futures
|
1935
|
-
|
1936
|
+
response = None
|
1937
|
+
if method == 'v1PrivateAccountCategoryGetOrderHistCurrent':
|
1938
|
+
request['account-group'] = accountGroup
|
1939
|
+
request['account-category'] = accountCategory
|
1940
|
+
if limit is not None:
|
1941
|
+
request['limit'] = limit
|
1942
|
+
response = self.v1PrivateAccountCategoryGetOrderHistCurrent(self.extend(request, query))
|
1943
|
+
elif method == 'v2PrivateDataGetOrderHist':
|
1936
1944
|
request['account'] = accountCategory
|
1937
1945
|
if limit is not None:
|
1938
1946
|
request['limit'] = limit
|
1939
|
-
|
1947
|
+
response = self.v2PrivateDataGetOrderHist(self.extend(request, query))
|
1948
|
+
elif method == 'v2PrivateAccountGroupGetFuturesOrderHistCurrent':
|
1949
|
+
request['account-group'] = accountGroup
|
1940
1950
|
request['account-category'] = accountCategory
|
1941
1951
|
if limit is not None:
|
1942
1952
|
request['pageSize'] = limit
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
if until is not None:
|
1947
|
-
request['endTime'] = until
|
1948
|
-
response = getattr(self, method)(self.extend(request, query))
|
1953
|
+
response = self.v2PrivateAccountGroupGetFuturesOrderHistCurrent(self.extend(request, query))
|
1954
|
+
else:
|
1955
|
+
raise NotSupported(self.id + ' fetchClosedOrders() is not currently supported for ' + type + ' markets')
|
1949
1956
|
#
|
1950
1957
|
# accountCategoryGetOrderHistCurrent
|
1951
1958
|
#
|
@@ -2046,6 +2053,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2046
2053
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
2047
2054
|
"""
|
2048
2055
|
cancels an open order
|
2056
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#cancel-order
|
2057
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#cancel-order
|
2049
2058
|
:param str id: order id
|
2050
2059
|
:param str symbol: unified symbol of the market the order was made in
|
2051
2060
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -2057,7 +2066,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2057
2066
|
self.load_accounts()
|
2058
2067
|
market = self.market(symbol)
|
2059
2068
|
type, query = self.handle_market_type_and_params('cancelOrder', market, params)
|
2060
|
-
options = self.safe_value(self.options, 'cancelOrder', {})
|
2061
2069
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
2062
2070
|
accountCategory = self.safe_string(accountsByType, type, 'cash')
|
2063
2071
|
account = self.safe_value(self.accounts, 0, {})
|
@@ -2069,24 +2077,20 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2069
2077
|
'time': self.milliseconds(),
|
2070
2078
|
'id': 'foobar',
|
2071
2079
|
}
|
2072
|
-
defaultMethod = self.safe_string(options, 'method', 'v1PrivateAccountCategoryDeleteOrder')
|
2073
|
-
method = self.get_supported_mapping(type, {
|
2074
|
-
'spot': defaultMethod,
|
2075
|
-
'margin': defaultMethod,
|
2076
|
-
'swap': 'v2PrivateAccountGroupDeleteFuturesOrder',
|
2077
|
-
})
|
2078
|
-
if method == 'v1PrivateAccountCategoryDeleteOrder':
|
2079
|
-
if accountCategory is not None:
|
2080
|
-
request['category'] = accountCategory
|
2081
|
-
else:
|
2082
|
-
request['account-category'] = accountCategory
|
2083
2080
|
clientOrderId = self.safe_string_2(params, 'clientOrderId', 'id')
|
2084
2081
|
if clientOrderId is None:
|
2085
2082
|
request['orderId'] = id
|
2086
2083
|
else:
|
2087
2084
|
request['id'] = clientOrderId
|
2088
2085
|
params = self.omit(params, ['clientOrderId', 'id'])
|
2089
|
-
response =
|
2086
|
+
response = None
|
2087
|
+
if (type == 'spot') or (type == 'margin'):
|
2088
|
+
response = self.v1PrivateAccountCategoryDeleteOrder(self.extend(request, query))
|
2089
|
+
elif type == 'swap':
|
2090
|
+
request['account-category'] = accountCategory
|
2091
|
+
response = self.v2PrivateAccountGroupDeleteFuturesOrder(self.extend(request, query))
|
2092
|
+
else:
|
2093
|
+
raise NotSupported(self.id + ' cancelOrder() is not currently supported for ' + type + ' markets')
|
2090
2094
|
#
|
2091
2095
|
# AccountCategoryDeleteOrder
|
2092
2096
|
#
|
@@ -2157,6 +2161,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2157
2161
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
2158
2162
|
"""
|
2159
2163
|
cancel all open orders
|
2164
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#cancel-all-orders
|
2165
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#cancel-all-open-orders
|
2160
2166
|
:param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
|
2161
2167
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2162
2168
|
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -2167,7 +2173,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2167
2173
|
if symbol is not None:
|
2168
2174
|
market = self.market(symbol)
|
2169
2175
|
type, query = self.handle_market_type_and_params('cancelAllOrders', market, params)
|
2170
|
-
options = self.safe_value(self.options, 'cancelAllOrders', {})
|
2171
2176
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
2172
2177
|
accountCategory = self.safe_string(accountsByType, type, 'cash')
|
2173
2178
|
account = self.safe_value(self.accounts, 0, {})
|
@@ -2179,18 +2184,14 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2179
2184
|
}
|
2180
2185
|
if symbol is not None:
|
2181
2186
|
request['symbol'] = market['id']
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2185
|
-
|
2186
|
-
'swap': 'v2PrivateAccountGroupDeleteFuturesOrderAll',
|
2187
|
-
})
|
2188
|
-
if method == 'v1PrivateAccountCategoryDeleteOrderAll':
|
2189
|
-
if accountCategory is not None:
|
2190
|
-
request['category'] = accountCategory
|
2191
|
-
else:
|
2187
|
+
response = None
|
2188
|
+
if (type == 'spot') or (type == 'margin'):
|
2189
|
+
response = self.v1PrivateAccountCategoryDeleteOrderAll(self.extend(request, query))
|
2190
|
+
elif type == 'swap':
|
2192
2191
|
request['account-category'] = accountCategory
|
2193
|
-
|
2192
|
+
response = self.v2PrivateAccountGroupDeleteFuturesOrderAll(self.extend(request, query))
|
2193
|
+
else:
|
2194
|
+
raise NotSupported(self.id + ' cancelAllOrders() is not currently supported for ' + type + ' markets')
|
2194
2195
|
#
|
2195
2196
|
# AccountCategoryDeleteOrderAll
|
2196
2197
|
#
|
@@ -270,7 +270,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
270
270
|
'account-category': 'cash', # 'cash', 'margin', 'futures' # obsolete
|
271
271
|
'account-group': None,
|
272
272
|
'fetchClosedOrders': {
|
273
|
-
'method': 'v2PrivateDataGetOrderHist', # '
|
273
|
+
'method': 'v2PrivateDataGetOrderHist', # 'v1PrivateAccountCategoryGetOrderHistCurrent'
|
274
274
|
},
|
275
275
|
'defaultType': 'spot', # 'spot', 'margin', 'swap'
|
276
276
|
'accountsByType': {
|
@@ -792,6 +792,9 @@ class ascendex(Exchange, ImplicitAPI):
|
|
792
792
|
async def fetch_balance(self, params={}) -> Balances:
|
793
793
|
"""
|
794
794
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
795
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#cash-account-balance
|
796
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#margin-account-balance
|
797
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#position
|
795
798
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
796
799
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
797
800
|
"""
|
@@ -802,8 +805,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
802
805
|
marketType, query = self.handle_market_type_and_params('fetchBalance', None, params)
|
803
806
|
isMargin = self.safe_value(params, 'margin', False)
|
804
807
|
marketType = 'margin' if isMargin else marketType
|
805
|
-
|
806
|
-
options = self.safe_value(self.options, 'fetchBalance', {})
|
808
|
+
query = self.omit(query, 'margin')
|
807
809
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
808
810
|
accountCategory = self.safe_string(accountsByType, marketType, 'cash')
|
809
811
|
account = self.safe_value(self.accounts, 0, {})
|
@@ -811,15 +813,15 @@ class ascendex(Exchange, ImplicitAPI):
|
|
811
813
|
request = {
|
812
814
|
'account-group': accountGroup,
|
813
815
|
}
|
814
|
-
defaultMethod = self.safe_string(options, 'method', 'v1PrivateAccountCategoryGetBalance')
|
815
|
-
method = self.get_supported_mapping(marketType, {
|
816
|
-
'spot': defaultMethod,
|
817
|
-
'margin': defaultMethod,
|
818
|
-
'swap': 'v2PrivateAccountGroupGetFuturesPosition',
|
819
|
-
})
|
820
816
|
if (accountCategory == 'cash') or (accountCategory == 'margin'):
|
821
817
|
request['account-category'] = accountCategory
|
822
|
-
response =
|
818
|
+
response = None
|
819
|
+
if (marketType == 'spot') or (marketType == 'margin'):
|
820
|
+
response = await self.v1PrivateAccountCategoryGetBalance(self.extend(request, query))
|
821
|
+
elif marketType == 'swap':
|
822
|
+
response = await self.v2PrivateAccountGroupGetFuturesPosition(self.extend(request, query))
|
823
|
+
else:
|
824
|
+
raise NotSupported(self.id + ' fetchBalance() is not currently supported for ' + marketType + ' markets')
|
823
825
|
#
|
824
826
|
# cash
|
825
827
|
#
|
@@ -1675,6 +1677,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1675
1677
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
1676
1678
|
"""
|
1677
1679
|
fetches information on an order made by the user
|
1680
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#query-order
|
1681
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#query-order-by-id
|
1678
1682
|
:param str symbol: unified symbol of the market the order was made in
|
1679
1683
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1680
1684
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1685,7 +1689,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1685
1689
|
if symbol is not None:
|
1686
1690
|
market = self.market(symbol)
|
1687
1691
|
type, query = self.handle_market_type_and_params('fetchOrder', market, params)
|
1688
|
-
options = self.safe_value(self.options, 'fetchOrder', {})
|
1689
1692
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
1690
1693
|
accountCategory = self.safe_string(accountsByType, type, 'cash')
|
1691
1694
|
account = self.safe_value(self.accounts, 0, {})
|
@@ -1695,18 +1698,14 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1695
1698
|
'account-category': accountCategory,
|
1696
1699
|
'orderId': id,
|
1697
1700
|
}
|
1698
|
-
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
'swap': 'v2PrivateAccountGroupGetFuturesOrderStatus',
|
1703
|
-
})
|
1704
|
-
if method == 'v1PrivateAccountCategoryGetOrderStatus':
|
1705
|
-
if accountCategory is not None:
|
1706
|
-
request['category'] = accountCategory
|
1707
|
-
else:
|
1701
|
+
response = None
|
1702
|
+
if (type == 'spot') or (type == 'margin'):
|
1703
|
+
response = await self.v1PrivateAccountCategoryGetOrderStatus(self.extend(request, query))
|
1704
|
+
elif type == 'swap':
|
1708
1705
|
request['account-category'] = accountCategory
|
1709
|
-
|
1706
|
+
response = await self.v2PrivateAccountGroupGetFuturesOrderStatus(self.extend(request, query))
|
1707
|
+
else:
|
1708
|
+
raise NotSupported(self.id + ' fetchOrder() is not currently supported for ' + type + ' markets')
|
1710
1709
|
#
|
1711
1710
|
# AccountCategoryGetOrderStatus
|
1712
1711
|
#
|
@@ -1780,6 +1779,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1780
1779
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
1781
1780
|
"""
|
1782
1781
|
fetch all unfilled currently open orders
|
1782
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#list-open-orders
|
1783
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#list-open-orders
|
1783
1784
|
:param str symbol: unified market symbol
|
1784
1785
|
:param int [since]: the earliest time in ms to fetch open orders for
|
1785
1786
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
@@ -1801,19 +1802,14 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1801
1802
|
'account-group': accountGroup,
|
1802
1803
|
'account-category': accountCategory,
|
1803
1804
|
}
|
1804
|
-
|
1805
|
-
|
1806
|
-
|
1807
|
-
|
1808
|
-
'margin': defaultMethod,
|
1809
|
-
'swap': 'v2PrivateAccountGroupGetFuturesOrderOpen',
|
1810
|
-
})
|
1811
|
-
if method == 'v1PrivateAccountCategoryGetOrderOpen':
|
1812
|
-
if accountCategory is not None:
|
1813
|
-
request['category'] = accountCategory
|
1814
|
-
else:
|
1805
|
+
response = None
|
1806
|
+
if (type == 'spot') or (type == 'margin'):
|
1807
|
+
response = await self.v1PrivateAccountCategoryGetOrderOpen(self.extend(request, query))
|
1808
|
+
elif type == 'swap':
|
1815
1809
|
request['account-category'] = accountCategory
|
1816
|
-
|
1810
|
+
response = await self.v2PrivateAccountGroupGetFuturesOrderOpen(self.extend(request, query))
|
1811
|
+
else:
|
1812
|
+
raise NotSupported(self.id + ' fetchOpenOrders() is not currently supported for ' + type + ' markets')
|
1817
1813
|
#
|
1818
1814
|
# AccountCategoryGetOrderOpen
|
1819
1815
|
#
|
@@ -1895,6 +1891,7 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1895
1891
|
"""
|
1896
1892
|
fetches information on multiple closed orders made by the user
|
1897
1893
|
:see: https://ascendex.github.io/ascendex-pro-api/#list-history-orders-v2
|
1894
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#list-current-history-orders
|
1898
1895
|
:param str symbol: unified market symbol of the market orders were made in
|
1899
1896
|
:param int [since]: the earliest time in ms to fetch orders for
|
1900
1897
|
:param int [limit]: the maximum number of orde structures to retrieve
|
@@ -1907,7 +1904,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1907
1904
|
account = self.safe_value(self.accounts, 0, {})
|
1908
1905
|
accountGroup = self.safe_value(account, 'id')
|
1909
1906
|
request = {
|
1910
|
-
'account-group': accountGroup,
|
1911
1907
|
# 'category': accountCategory,
|
1912
1908
|
# 'symbol': market['id'],
|
1913
1909
|
# 'orderType': 'market', # optional, string
|
@@ -1930,22 +1926,33 @@ class ascendex(Exchange, ImplicitAPI):
|
|
1930
1926
|
'margin': defaultMethod,
|
1931
1927
|
'swap': 'v2PrivateAccountGroupGetFuturesOrderHistCurrent',
|
1932
1928
|
})
|
1929
|
+
if since is not None:
|
1930
|
+
request['startTime'] = since
|
1931
|
+
until = self.safe_string(params, 'until')
|
1932
|
+
if until is not None:
|
1933
|
+
request['endTime'] = until
|
1933
1934
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
1934
1935
|
accountCategory = self.safe_string(accountsByType, type, 'cash') # margin, futures
|
1935
|
-
|
1936
|
+
response = None
|
1937
|
+
if method == 'v1PrivateAccountCategoryGetOrderHistCurrent':
|
1938
|
+
request['account-group'] = accountGroup
|
1939
|
+
request['account-category'] = accountCategory
|
1940
|
+
if limit is not None:
|
1941
|
+
request['limit'] = limit
|
1942
|
+
response = await self.v1PrivateAccountCategoryGetOrderHistCurrent(self.extend(request, query))
|
1943
|
+
elif method == 'v2PrivateDataGetOrderHist':
|
1936
1944
|
request['account'] = accountCategory
|
1937
1945
|
if limit is not None:
|
1938
1946
|
request['limit'] = limit
|
1939
|
-
|
1947
|
+
response = await self.v2PrivateDataGetOrderHist(self.extend(request, query))
|
1948
|
+
elif method == 'v2PrivateAccountGroupGetFuturesOrderHistCurrent':
|
1949
|
+
request['account-group'] = accountGroup
|
1940
1950
|
request['account-category'] = accountCategory
|
1941
1951
|
if limit is not None:
|
1942
1952
|
request['pageSize'] = limit
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
if until is not None:
|
1947
|
-
request['endTime'] = until
|
1948
|
-
response = await getattr(self, method)(self.extend(request, query))
|
1953
|
+
response = await self.v2PrivateAccountGroupGetFuturesOrderHistCurrent(self.extend(request, query))
|
1954
|
+
else:
|
1955
|
+
raise NotSupported(self.id + ' fetchClosedOrders() is not currently supported for ' + type + ' markets')
|
1949
1956
|
#
|
1950
1957
|
# accountCategoryGetOrderHistCurrent
|
1951
1958
|
#
|
@@ -2046,6 +2053,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2046
2053
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
2047
2054
|
"""
|
2048
2055
|
cancels an open order
|
2056
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#cancel-order
|
2057
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#cancel-order
|
2049
2058
|
:param str id: order id
|
2050
2059
|
:param str symbol: unified symbol of the market the order was made in
|
2051
2060
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -2057,7 +2066,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2057
2066
|
await self.load_accounts()
|
2058
2067
|
market = self.market(symbol)
|
2059
2068
|
type, query = self.handle_market_type_and_params('cancelOrder', market, params)
|
2060
|
-
options = self.safe_value(self.options, 'cancelOrder', {})
|
2061
2069
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
2062
2070
|
accountCategory = self.safe_string(accountsByType, type, 'cash')
|
2063
2071
|
account = self.safe_value(self.accounts, 0, {})
|
@@ -2069,24 +2077,20 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2069
2077
|
'time': self.milliseconds(),
|
2070
2078
|
'id': 'foobar',
|
2071
2079
|
}
|
2072
|
-
defaultMethod = self.safe_string(options, 'method', 'v1PrivateAccountCategoryDeleteOrder')
|
2073
|
-
method = self.get_supported_mapping(type, {
|
2074
|
-
'spot': defaultMethod,
|
2075
|
-
'margin': defaultMethod,
|
2076
|
-
'swap': 'v2PrivateAccountGroupDeleteFuturesOrder',
|
2077
|
-
})
|
2078
|
-
if method == 'v1PrivateAccountCategoryDeleteOrder':
|
2079
|
-
if accountCategory is not None:
|
2080
|
-
request['category'] = accountCategory
|
2081
|
-
else:
|
2082
|
-
request['account-category'] = accountCategory
|
2083
2080
|
clientOrderId = self.safe_string_2(params, 'clientOrderId', 'id')
|
2084
2081
|
if clientOrderId is None:
|
2085
2082
|
request['orderId'] = id
|
2086
2083
|
else:
|
2087
2084
|
request['id'] = clientOrderId
|
2088
2085
|
params = self.omit(params, ['clientOrderId', 'id'])
|
2089
|
-
response =
|
2086
|
+
response = None
|
2087
|
+
if (type == 'spot') or (type == 'margin'):
|
2088
|
+
response = await self.v1PrivateAccountCategoryDeleteOrder(self.extend(request, query))
|
2089
|
+
elif type == 'swap':
|
2090
|
+
request['account-category'] = accountCategory
|
2091
|
+
response = await self.v2PrivateAccountGroupDeleteFuturesOrder(self.extend(request, query))
|
2092
|
+
else:
|
2093
|
+
raise NotSupported(self.id + ' cancelOrder() is not currently supported for ' + type + ' markets')
|
2090
2094
|
#
|
2091
2095
|
# AccountCategoryDeleteOrder
|
2092
2096
|
#
|
@@ -2157,6 +2161,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2157
2161
|
async def cancel_all_orders(self, symbol: Str = None, params={}):
|
2158
2162
|
"""
|
2159
2163
|
cancel all open orders
|
2164
|
+
:see: https://ascendex.github.io/ascendex-pro-api/#cancel-all-orders
|
2165
|
+
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#cancel-all-open-orders
|
2160
2166
|
:param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
|
2161
2167
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2162
2168
|
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -2167,7 +2173,6 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2167
2173
|
if symbol is not None:
|
2168
2174
|
market = self.market(symbol)
|
2169
2175
|
type, query = self.handle_market_type_and_params('cancelAllOrders', market, params)
|
2170
|
-
options = self.safe_value(self.options, 'cancelAllOrders', {})
|
2171
2176
|
accountsByType = self.safe_value(self.options, 'accountsByType', {})
|
2172
2177
|
accountCategory = self.safe_string(accountsByType, type, 'cash')
|
2173
2178
|
account = self.safe_value(self.accounts, 0, {})
|
@@ -2179,18 +2184,14 @@ class ascendex(Exchange, ImplicitAPI):
|
|
2179
2184
|
}
|
2180
2185
|
if symbol is not None:
|
2181
2186
|
request['symbol'] = market['id']
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2185
|
-
|
2186
|
-
'swap': 'v2PrivateAccountGroupDeleteFuturesOrderAll',
|
2187
|
-
})
|
2188
|
-
if method == 'v1PrivateAccountCategoryDeleteOrderAll':
|
2189
|
-
if accountCategory is not None:
|
2190
|
-
request['category'] = accountCategory
|
2191
|
-
else:
|
2187
|
+
response = None
|
2188
|
+
if (type == 'spot') or (type == 'margin'):
|
2189
|
+
response = await self.v1PrivateAccountCategoryDeleteOrderAll(self.extend(request, query))
|
2190
|
+
elif type == 'swap':
|
2192
2191
|
request['account-category'] = accountCategory
|
2193
|
-
|
2192
|
+
response = await self.v2PrivateAccountGroupDeleteFuturesOrderAll(self.extend(request, query))
|
2193
|
+
else:
|
2194
|
+
raise NotSupported(self.id + ' cancelAllOrders() is not currently supported for ' + type + ' markets')
|
2194
2195
|
#
|
2195
2196
|
# AccountCategoryDeleteOrderAll
|
2196
2197
|
#
|