ccxt 4.1.28__tar.gz → 4.1.29__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.28/ccxt.egg-info → ccxt-4.1.29}/PKG-INFO +4 -4
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/__init__.py +1 -1
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bybit.py +1 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/okex.py +1 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/okex5.py +1 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/okx.py +1 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitget.py +133 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bybit.py +4 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/cryptocom.py +29 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/krakenfutures.py +47 -3
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/mexc.py +86 -4
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/okx.py +1 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/base/exchange.py +1 -1
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitget.py +133 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bybit.py +4 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/cryptocom.py +29 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/krakenfutures.py +47 -3
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/mexc.py +86 -4
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/okx.py +1 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.1.28 → ccxt-4.1.29/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.1.28 → ccxt-4.1.29}/package.json +1 -1
- {ccxt-4.1.28 → ccxt-4.1.29}/LICENSE.txt +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/MANIFEST.in +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/README.rst +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitforex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitstamp1.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bittrex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/btctradeua.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinbaseprime.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinfalcon.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/huobipro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/lbank2.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/mexc3.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/tidex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/ace.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/alpaca.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/ascendex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitforex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitstamp1.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bittrex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/btctradeua.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinbaseprime.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinfalcon.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/huobipro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/lbank2.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/mexc3.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/okex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/okex5.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/tidex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/base/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/base/errors.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/base/precise.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/base/types.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bequant.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bigone.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/binance.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/binanceus.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bingx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bit2c.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitbank.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitbay.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitbns.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitfinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitflyer.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitforex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bithumb.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitmart.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitmex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitopro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitpanda.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitrue.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitso.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitstamp.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitstamp1.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bittrex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bitvavo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/bl3p.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/btcalpha.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/btcbox.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/btctradeua.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/btcturk.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/cex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinbase.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinbaseprime.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coincheck.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinfalcon.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinmate.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinone.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinsph.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/coinspot.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/currencycom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/delta.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/deribit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/digifinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/exmo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/flowbtc.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/fmfwio.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/gate.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/gateio.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/gemini.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/hitbtc.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/hollaex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/huobi.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/huobijp.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/huobipro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/idex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/independentreserve.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/indodax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/kraken.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/kucoin.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/kuna.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/latoken.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/lbank.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/lbank2.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/luno.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/lykke.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/mercado.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/mexc3.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/ndax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/novadax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/oceanex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/okcoin.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/okex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/okex5.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/paymium.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/phemex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/poloniex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/binance.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bittrex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/cex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/coinbaseprime.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/gate.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/huobipro.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/idex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/luno.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/mexc3.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/okex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/okx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/probit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/pro/woo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/probit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/test_async.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/test/test_sync.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/tidex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/timex.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/upbit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/wazirx.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/whitebit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/woo.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/yobit.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/zaif.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt/zonda.py +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/setup.cfg +0 -0
- {ccxt-4.1.28 → ccxt-4.1.29}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.1.
|
3
|
+
Version: 4.1.29
|
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
|
@@ -223,13 +223,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
223
223
|
|
224
224
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
225
225
|
|
226
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
227
|
-
* unpkg: https://unpkg.com/ccxt@4.1.
|
226
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.29/dist/ccxt.browser.js
|
227
|
+
* unpkg: https://unpkg.com/ccxt@4.1.29/dist/ccxt.browser.js
|
228
228
|
|
229
229
|
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.
|
230
230
|
|
231
231
|
```HTML
|
232
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
232
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.29/dist/ccxt.browser.js"></script>
|
233
233
|
```
|
234
234
|
|
235
235
|
Creates a global `ccxt` object:
|
@@ -427,6 +427,7 @@ class ImplicitAPI:
|
|
427
427
|
private_post_v5_position_trading_stop = privatePostV5PositionTradingStop = Entry('v5/position/trading-stop', 'private', 'POST', {'cost': 5})
|
428
428
|
private_post_v5_position_set_auto_add_margin = privatePostV5PositionSetAutoAddMargin = Entry('v5/position/set-auto-add-margin', 'private', 'POST', {'cost': 2.5})
|
429
429
|
private_post_v5_position_add_margin = privatePostV5PositionAddMargin = Entry('v5/position/add-margin', 'private', 'POST', {'cost': 2.5})
|
430
|
+
private_post_v5_position_confirm_pending_mmr = privatePostV5PositionConfirmPendingMmr = Entry('v5/position/confirm-pending-mmr', 'private', 'POST', {'cost': 2.5})
|
430
431
|
private_post_v5_account_upgrade_to_uta = privatePostV5AccountUpgradeToUta = Entry('v5/account/upgrade-to-uta', 'private', 'POST', {'cost': 2.5})
|
431
432
|
private_post_v5_account_set_margin_mode = privatePostV5AccountSetMarginMode = Entry('v5/account/set-margin-mode', 'private', 'POST', {'cost': 2.5})
|
432
433
|
private_post_v5_account_mmp_modify = privatePostV5AccountMmpModify = Entry('v5/account/mmp-modify', 'private', 'POST', {'cost': 2.5})
|
@@ -190,6 +190,7 @@ class ImplicitAPI:
|
|
190
190
|
private_post_sprd_order = privatePostSprdOrder = Entry('sprd/order', 'private', 'POST', {'cost': 1})
|
191
191
|
private_post_sprd_cancel_order = privatePostSprdCancelOrder = Entry('sprd/cancel-order', 'private', 'POST', {'cost': 1})
|
192
192
|
private_post_sprd_mass_cancel = privatePostSprdMassCancel = Entry('sprd/mass-cancel', 'private', 'POST', {'cost': 1})
|
193
|
+
private_post_sprd_amend_order = privatePostSprdAmendOrder = Entry('sprd/amend-order', 'private', 'POST', {'cost': 1})
|
193
194
|
private_post_trade_order = privatePostTradeOrder = Entry('trade/order', 'private', 'POST', {'cost': 0.3333333333333333})
|
194
195
|
private_post_trade_batch_orders = privatePostTradeBatchOrders = Entry('trade/batch-orders', 'private', 'POST', {'cost': 0.06666666666666667})
|
195
196
|
private_post_trade_cancel_order = privatePostTradeCancelOrder = Entry('trade/cancel-order', 'private', 'POST', {'cost': 0.3333333333333333})
|
@@ -190,6 +190,7 @@ class ImplicitAPI:
|
|
190
190
|
private_post_sprd_order = privatePostSprdOrder = Entry('sprd/order', 'private', 'POST', {'cost': 1})
|
191
191
|
private_post_sprd_cancel_order = privatePostSprdCancelOrder = Entry('sprd/cancel-order', 'private', 'POST', {'cost': 1})
|
192
192
|
private_post_sprd_mass_cancel = privatePostSprdMassCancel = Entry('sprd/mass-cancel', 'private', 'POST', {'cost': 1})
|
193
|
+
private_post_sprd_amend_order = privatePostSprdAmendOrder = Entry('sprd/amend-order', 'private', 'POST', {'cost': 1})
|
193
194
|
private_post_trade_order = privatePostTradeOrder = Entry('trade/order', 'private', 'POST', {'cost': 0.3333333333333333})
|
194
195
|
private_post_trade_batch_orders = privatePostTradeBatchOrders = Entry('trade/batch-orders', 'private', 'POST', {'cost': 0.06666666666666667})
|
195
196
|
private_post_trade_cancel_order = privatePostTradeCancelOrder = Entry('trade/cancel-order', 'private', 'POST', {'cost': 0.3333333333333333})
|
@@ -190,6 +190,7 @@ class ImplicitAPI:
|
|
190
190
|
private_post_sprd_order = privatePostSprdOrder = Entry('sprd/order', 'private', 'POST', {'cost': 1})
|
191
191
|
private_post_sprd_cancel_order = privatePostSprdCancelOrder = Entry('sprd/cancel-order', 'private', 'POST', {'cost': 1})
|
192
192
|
private_post_sprd_mass_cancel = privatePostSprdMassCancel = Entry('sprd/mass-cancel', 'private', 'POST', {'cost': 1})
|
193
|
+
private_post_sprd_amend_order = privatePostSprdAmendOrder = Entry('sprd/amend-order', 'private', 'POST', {'cost': 1})
|
193
194
|
private_post_trade_order = privatePostTradeOrder = Entry('trade/order', 'private', 'POST', {'cost': 0.3333333333333333})
|
194
195
|
private_post_trade_batch_orders = privatePostTradeBatchOrders = Entry('trade/batch-orders', 'private', 'POST', {'cost': 0.06666666666666667})
|
195
196
|
private_post_trade_cancel_order = privatePostTradeCancelOrder = Entry('trade/cancel-order', 'private', 'POST', {'cost': 0.3333333333333333})
|
@@ -65,6 +65,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
65
65
|
'editOrder': True,
|
66
66
|
'fetchAccounts': False,
|
67
67
|
'fetchBalance': True,
|
68
|
+
'fetchBorrowInterest': True,
|
68
69
|
'fetchBorrowRate': True,
|
69
70
|
'fetchBorrowRateHistories': False,
|
70
71
|
'fetchBorrowRateHistory': False,
|
@@ -5955,6 +5956,138 @@ class bitget(Exchange, ImplicitAPI):
|
|
5955
5956
|
'info': info,
|
5956
5957
|
}
|
5957
5958
|
|
5959
|
+
async def fetch_borrow_interest(self, code: Optional[str] = None, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
5960
|
+
"""
|
5961
|
+
fetch the interest owed by the user for borrowing currency for margin trading
|
5962
|
+
:see: https://bitgetlimited.github.io/apidoc/en/margin/#get-isolated-interest-records
|
5963
|
+
:see: https://bitgetlimited.github.io/apidoc/en/margin/#get-cross-interest-records
|
5964
|
+
:param str [code]: unified currency code
|
5965
|
+
:param str [symbol]: unified market symbol when fetching interest in isolated markets
|
5966
|
+
:param int [since]: the earliest time in ms to fetch borrow interest for
|
5967
|
+
:param int [limit]: the maximum number of structures to retrieve
|
5968
|
+
:param dict [params]: extra parameters specific to the bitget api endpoint
|
5969
|
+
:returns dict[]: a list of `borrow interest structures <https://github.com/ccxt/ccxt/wiki/Manual#borrow-interest-structure>`
|
5970
|
+
"""
|
5971
|
+
await self.load_markets()
|
5972
|
+
market = None
|
5973
|
+
if symbol is not None:
|
5974
|
+
market = self.market(symbol)
|
5975
|
+
request = {}
|
5976
|
+
currency = None
|
5977
|
+
if code is not None:
|
5978
|
+
currency = self.currency(code)
|
5979
|
+
request['coin'] = currency['id']
|
5980
|
+
if since is not None:
|
5981
|
+
request['startTime'] = since
|
5982
|
+
else:
|
5983
|
+
request['startTime'] = self.milliseconds() - 7776000000
|
5984
|
+
if limit is not None:
|
5985
|
+
request['pageSize'] = limit
|
5986
|
+
response = None
|
5987
|
+
marginMode = None
|
5988
|
+
marginMode, params = self.handle_margin_mode_and_params('fetchBorrowInterest', params, 'cross')
|
5989
|
+
if marginMode == 'isolated':
|
5990
|
+
self.check_required_symbol('fetchBorrowInterest', symbol)
|
5991
|
+
request['symbol'] = market['info']['symbolName']
|
5992
|
+
response = await self.privateMarginGetIsolatedInterestList(self.extend(request, params))
|
5993
|
+
elif marginMode == 'cross':
|
5994
|
+
response = await self.privateMarginGetCrossInterestList(self.extend(request, params))
|
5995
|
+
#
|
5996
|
+
# isolated
|
5997
|
+
#
|
5998
|
+
# {
|
5999
|
+
# "code": "00000",
|
6000
|
+
# "msg": "success",
|
6001
|
+
# "requestTime": 1698282523888,
|
6002
|
+
# "data": {
|
6003
|
+
# "resultList": [
|
6004
|
+
# {
|
6005
|
+
# "interestId": "1100560904468705284",
|
6006
|
+
# "interestCoin": "USDT",
|
6007
|
+
# "interestRate": "0.000126279",
|
6008
|
+
# "loanCoin": "USDT",
|
6009
|
+
# "amount": "0.00000298",
|
6010
|
+
# "type": "scheduled",
|
6011
|
+
# "symbol": "BTCUSDT",
|
6012
|
+
# "ctime": "1698120000000"
|
6013
|
+
# },
|
6014
|
+
# ],
|
6015
|
+
# "maxId": "1100560904468705284",
|
6016
|
+
# "minId": "1096915487398965249"
|
6017
|
+
# }
|
6018
|
+
# }
|
6019
|
+
#
|
6020
|
+
# cross
|
6021
|
+
#
|
6022
|
+
# {
|
6023
|
+
# "code": "00000",
|
6024
|
+
# "msg": "success",
|
6025
|
+
# "requestTime": 1698282552126,
|
6026
|
+
# "data": {
|
6027
|
+
# "resultList": [
|
6028
|
+
# {
|
6029
|
+
# "interestId": "1099126154352799744",
|
6030
|
+
# "interestCoin": "USDT",
|
6031
|
+
# "interestRate": "0.000126279",
|
6032
|
+
# "loanCoin": "USDT",
|
6033
|
+
# "amount": "0.00002631",
|
6034
|
+
# "type": "scheduled",
|
6035
|
+
# "ctime": "1697778000000"
|
6036
|
+
# },
|
6037
|
+
# ],
|
6038
|
+
# "maxId": "1099126154352799744",
|
6039
|
+
# "minId": "1096917004629716993"
|
6040
|
+
# }
|
6041
|
+
# }
|
6042
|
+
#
|
6043
|
+
data = self.safe_value(response, 'data', {})
|
6044
|
+
rows = self.safe_value(data, 'resultList', [])
|
6045
|
+
interest = self.parse_borrow_interests(rows, market)
|
6046
|
+
return self.filter_by_currency_since_limit(interest, code, since, limit)
|
6047
|
+
|
6048
|
+
def parse_borrow_interest(self, info, market=None):
|
6049
|
+
#
|
6050
|
+
# isolated
|
6051
|
+
#
|
6052
|
+
# {
|
6053
|
+
# "interestId": "1100560904468705284",
|
6054
|
+
# "interestCoin": "USDT",
|
6055
|
+
# "interestRate": "0.000126279",
|
6056
|
+
# "loanCoin": "USDT",
|
6057
|
+
# "amount": "0.00000298",
|
6058
|
+
# "type": "scheduled",
|
6059
|
+
# "symbol": "BTCUSDT",
|
6060
|
+
# "ctime": "1698120000000"
|
6061
|
+
# }
|
6062
|
+
#
|
6063
|
+
# cross
|
6064
|
+
#
|
6065
|
+
# {
|
6066
|
+
# "interestId": "1099126154352799744",
|
6067
|
+
# "interestCoin": "USDT",
|
6068
|
+
# "interestRate": "0.000126279",
|
6069
|
+
# "loanCoin": "USDT",
|
6070
|
+
# "amount": "0.00002631",
|
6071
|
+
# "type": "scheduled",
|
6072
|
+
# "ctime": "1697778000000"
|
6073
|
+
# }
|
6074
|
+
#
|
6075
|
+
marketId = self.safe_string(info, 'symbol')
|
6076
|
+
market = self.safe_market(marketId, market)
|
6077
|
+
marginMode = 'isolated' if (marketId is not None) else 'cross'
|
6078
|
+
timestamp = self.safe_integer(info, 'ctime')
|
6079
|
+
return {
|
6080
|
+
'symbol': self.safe_string(market, 'symbol'),
|
6081
|
+
'marginMode': marginMode,
|
6082
|
+
'currency': self.safe_currency_code(self.safe_string(info, 'interestCoin')),
|
6083
|
+
'interest': self.safe_number(info, 'amount'),
|
6084
|
+
'interestRate': self.safe_number(info, 'interestRate'),
|
6085
|
+
'amountBorrowed': None,
|
6086
|
+
'timestamp': timestamp,
|
6087
|
+
'datetime': self.iso8601(timestamp),
|
6088
|
+
'info': info,
|
6089
|
+
}
|
6090
|
+
|
5958
6091
|
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
5959
6092
|
if not response:
|
5960
6093
|
return None # fallback to default error handler
|
@@ -635,6 +635,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
635
635
|
'v5/position/trading-stop': 5, # 10/s => cost = 50 / 10 = 5
|
636
636
|
'v5/position/set-auto-add-margin': 2.5,
|
637
637
|
'v5/position/add-margin': 2.5,
|
638
|
+
'v5/position/confirm-pending-mmr': 2.5,
|
638
639
|
# account
|
639
640
|
'v5/account/upgrade-to-uta': 2.5,
|
640
641
|
'v5/account/set-margin-mode': 2.5,
|
@@ -3072,8 +3073,11 @@ class bybit(Exchange, ImplicitAPI):
|
|
3072
3073
|
# "time": 1672125441042
|
3073
3074
|
# }
|
3074
3075
|
#
|
3076
|
+
timestamp = self.safe_integer(response, 'time')
|
3075
3077
|
result = {
|
3076
3078
|
'info': response,
|
3079
|
+
'timestamp': timestamp,
|
3080
|
+
'datetime': self.iso8601(timestamp),
|
3077
3081
|
}
|
3078
3082
|
responseResult = self.safe_value(response, 'result', {})
|
3079
3083
|
currencyList = self.safe_value_n(responseResult, ['loanAccountList', 'list', 'balance'])
|
@@ -50,6 +50,7 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
50
50
|
'borrowMargin': True,
|
51
51
|
'cancelAllOrders': True,
|
52
52
|
'cancelOrder': True,
|
53
|
+
'cancelOrders': True,
|
53
54
|
'createOrder': True,
|
54
55
|
'createOrders': True,
|
55
56
|
'fetchAccounts': True,
|
@@ -1323,6 +1324,34 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
1323
1324
|
result = self.safe_value(response, 'result', {})
|
1324
1325
|
return self.parse_order(result, market)
|
1325
1326
|
|
1327
|
+
async def cancel_orders(self, ids, symbol: Optional[str] = None, params={}):
|
1328
|
+
"""
|
1329
|
+
cancel multiple orders
|
1330
|
+
:see: https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-cancel-order-list-list
|
1331
|
+
:param str[] ids: order ids
|
1332
|
+
:param str symbol: unified market symbol
|
1333
|
+
:param dict [params]: extra parameters specific to the okx api endpoint
|
1334
|
+
:returns dict: an list of `order structures <https://github.com/ccxt/ccxt/wiki/Manual#order-structure>`
|
1335
|
+
"""
|
1336
|
+
self.check_required_symbol('cancelOrders', symbol)
|
1337
|
+
await self.load_markets()
|
1338
|
+
market = self.market(symbol)
|
1339
|
+
orderRequests = []
|
1340
|
+
for i in range(0, len(ids)):
|
1341
|
+
id = ids[i]
|
1342
|
+
order = {
|
1343
|
+
'instrument_name': market['id'],
|
1344
|
+
'order_id': str(id),
|
1345
|
+
}
|
1346
|
+
orderRequests.append(order)
|
1347
|
+
request = {
|
1348
|
+
'contingency_type': 'LIST',
|
1349
|
+
'order_list': orderRequests,
|
1350
|
+
}
|
1351
|
+
response = await self.v1PrivatePostPrivateCancelOrderList(self.extend(request, params))
|
1352
|
+
result = self.safe_value(response, 'result', [])
|
1353
|
+
return self.parse_orders(result, market, None, None, params)
|
1354
|
+
|
1326
1355
|
async def fetch_open_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
1327
1356
|
"""
|
1328
1357
|
fetch all unfilled currently open orders
|
@@ -413,6 +413,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
413
413
|
|
414
414
|
async def fetch_order_book(self, symbol: str, limit: Optional[int] = None, params={}):
|
415
415
|
"""
|
416
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-market-data-get-orderbook
|
416
417
|
Fetches a list of open orders in a market
|
417
418
|
:param str symbol: Unified market symbol
|
418
419
|
:param int [limit]: Not used by krakenfutures
|
@@ -459,6 +460,13 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
459
460
|
return self.parse_order_book(response['orderBook'], symbol, timestamp)
|
460
461
|
|
461
462
|
async def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
|
463
|
+
"""
|
464
|
+
fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
|
465
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-market-data-get-tickers
|
466
|
+
:param str[] symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
467
|
+
:param dict [params]: extra parameters specific to the krakenfutures api endpoint
|
468
|
+
:returns dict: an array of `ticker structures <https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure>`
|
469
|
+
"""
|
462
470
|
await self.load_markets()
|
463
471
|
response = await self.publicGetTickers(params)
|
464
472
|
#
|
@@ -645,6 +653,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
645
653
|
|
646
654
|
async def fetch_trades(self, symbol: str, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
647
655
|
"""
|
656
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-market-data-get-trade-history
|
648
657
|
* @descriptions Fetch a history of filled trades that self account has made
|
649
658
|
:param str symbol: Unified CCXT market symbol
|
650
659
|
:param int [since]: Timestamp in ms of earliest trade. Not used by krakenfutures except in combination with params.until
|
@@ -936,6 +945,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
936
945
|
|
937
946
|
async def edit_order(self, id: str, symbol, type, side, amount=None, price=None, params={}):
|
938
947
|
"""
|
948
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-order-management-edit-order
|
939
949
|
Edit an open order on the exchange
|
940
950
|
:param str id: order id
|
941
951
|
:param str symbol: Not used by Krakenfutures
|
@@ -963,6 +973,8 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
963
973
|
|
964
974
|
async def cancel_order(self, id: str, symbol: Optional[str] = None, params={}):
|
965
975
|
"""
|
976
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-order-management-cancel-order
|
977
|
+
Cancel an open order on the exchange
|
966
978
|
:param str id: Order id
|
967
979
|
:param str symbol: Not used by Krakenfutures
|
968
980
|
:param dict [params]: Exchange specific params
|
@@ -1037,6 +1049,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1037
1049
|
|
1038
1050
|
async def cancel_all_orders(self, symbol: Optional[str] = None, params={}):
|
1039
1051
|
"""
|
1052
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-order-management-cancel-all-orders
|
1040
1053
|
Cancels all orders on the exchange, including trigger orders
|
1041
1054
|
:param str symbol: Unified market symbol
|
1042
1055
|
:param dict [params]: Exchange specific params
|
@@ -1050,6 +1063,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1050
1063
|
|
1051
1064
|
async def fetch_open_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
1052
1065
|
"""
|
1066
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-order-management-get-open-orders
|
1053
1067
|
Gets all open orders, including trigger orders, for an account from the exchange api
|
1054
1068
|
:param str symbol: Unified market symbol
|
1055
1069
|
:param int [since]: Timestamp(ms) of earliest order.(Not used by kraken api but filtered internally by CCXT)
|
@@ -1429,6 +1443,16 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1429
1443
|
})
|
1430
1444
|
|
1431
1445
|
async def fetch_my_trades(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
1446
|
+
"""
|
1447
|
+
fetch all trades made by the user
|
1448
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-historical-data-get-your-fills
|
1449
|
+
:param str symbol: unified market symbol
|
1450
|
+
:param int [since]: *not used by the api* the earliest time in ms to fetch trades for
|
1451
|
+
:param int [limit]: the maximum number of trades structures to retrieve
|
1452
|
+
:param dict [params]: extra parameters specific to the bybit api endpoint
|
1453
|
+
:param int [params.until]: the latest time in ms to fetch entries for
|
1454
|
+
:returns Trade[]: a list of `trade structures <https://github.com/ccxt/ccxt/wiki/Manual#trade-structure>`
|
1455
|
+
"""
|
1432
1456
|
await self.load_markets()
|
1433
1457
|
market = None
|
1434
1458
|
if symbol is not None:
|
@@ -1458,9 +1482,10 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1458
1482
|
|
1459
1483
|
async def fetch_balance(self, params={}):
|
1460
1484
|
"""
|
1485
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-account-information-get-wallets
|
1461
1486
|
Fetch the balance for a sub-account, all sub-account balances are inside 'info' in the response
|
1462
1487
|
:param dict [params]: Exchange specific parameters
|
1463
|
-
:param str [params.type]: The sub-account type to query the balance of, possible values include 'flex', 'cash'/'main'/'funding', or a market symbol * defaults to '
|
1488
|
+
:param str [params.type]: The sub-account type to query the balance of, possible values include 'flex', 'cash'/'main'/'funding', or a market symbol * defaults to 'flex' *
|
1464
1489
|
:param str [params.symbol]: A unified market symbol, when assigned the balance for a trading market that matches the symbol is returned
|
1465
1490
|
:returns: A `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
|
1466
1491
|
"""
|
@@ -1562,7 +1587,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1562
1587
|
raise ArgumentsRequired(self.id + ' fetchBalance requires symbol argument for margin accounts')
|
1563
1588
|
type = symbol
|
1564
1589
|
if type is None:
|
1565
|
-
type = '
|
1590
|
+
type = 'flex' if (symbol is None) else symbol
|
1566
1591
|
accountName = self.parse_account(type)
|
1567
1592
|
accounts = self.safe_value(response, 'accounts')
|
1568
1593
|
account = self.safe_value(accounts, accountName)
|
@@ -1748,6 +1773,15 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1748
1773
|
}
|
1749
1774
|
|
1750
1775
|
async def fetch_funding_rate_history(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
1776
|
+
"""
|
1777
|
+
fetches historical funding rate prices
|
1778
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-historical-funding-rates-historical-funding-rates
|
1779
|
+
:param str symbol: unified symbol of the market to fetch the funding rate history for
|
1780
|
+
:param int [since]: timestamp in ms of the earliest funding rate to fetch
|
1781
|
+
:param int [limit]: the maximum amount of `funding rate structures <https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure>` to fetch
|
1782
|
+
:param dict [params]: extra parameters specific to the api endpoint
|
1783
|
+
:returns dict[]: a list of `funding rate structures <https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure>`
|
1784
|
+
"""
|
1751
1785
|
self.check_required_symbol('fetchFundingRateHistory', symbol)
|
1752
1786
|
await self.load_markets()
|
1753
1787
|
market = self.market(symbol)
|
@@ -1786,6 +1820,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1786
1820
|
|
1787
1821
|
async def fetch_positions(self, symbols: Optional[List[str]] = None, params={}):
|
1788
1822
|
"""
|
1823
|
+
:see: https://docs.futures.kraken.com/#websocket-api-private-feeds-open-positions
|
1789
1824
|
Fetches current contract trading positions
|
1790
1825
|
:param str[] symbols: List of unified symbols
|
1791
1826
|
:param dict [params]: Not used by krakenfutures
|
@@ -1863,7 +1898,7 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1863
1898
|
'entryPrice': self.safe_number(position, 'price'),
|
1864
1899
|
'notional': None,
|
1865
1900
|
'leverage': leverage,
|
1866
|
-
'unrealizedPnl':
|
1901
|
+
'unrealizedPnl': None,
|
1867
1902
|
'contracts': self.safe_number(position, 'size'),
|
1868
1903
|
'contractSize': self.safe_number(market, 'contractSize'),
|
1869
1904
|
'marginRatio': None,
|
@@ -1876,6 +1911,13 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
1876
1911
|
}
|
1877
1912
|
|
1878
1913
|
async def fetch_leverage_tiers(self, symbols: Optional[List[str]] = None, params={}):
|
1914
|
+
"""
|
1915
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-instrument-details-get-instruments
|
1916
|
+
retrieve information on the maximum leverage, and maintenance margin for trades of varying trade sizes
|
1917
|
+
:param str[]|None symbols: list of unified market symbols
|
1918
|
+
:param dict [params]: extra parameters specific to the krakenfutures api endpoint
|
1919
|
+
:returns dict: a dictionary of `leverage tiers structures <https://github.com/ccxt/ccxt/wiki/Manual#leverage-tiers-structure>`, indexed by market symbols
|
1920
|
+
"""
|
1879
1921
|
await self.load_markets()
|
1880
1922
|
response = await self.publicGetInstruments(params)
|
1881
1923
|
#
|
@@ -2045,6 +2087,8 @@ class krakenfutures(Exchange, ImplicitAPI):
|
|
2045
2087
|
|
2046
2088
|
async def transfer(self, code: str, amount, fromAccount, toAccount, params={}):
|
2047
2089
|
"""
|
2090
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-transfers-initiate-wallet-transfer
|
2091
|
+
:see: https://docs.futures.kraken.com/#http-api-trading-v3-api-transfers-initiate-withdrawal-to-spot-wallet
|
2048
2092
|
transfers currencies between sub-accounts
|
2049
2093
|
:param str code: Unified currency code
|
2050
2094
|
:param float amount: Size of the transfer
|
@@ -7,6 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.mexc import ImplicitAPI
|
8
8
|
import hashlib
|
9
9
|
from ccxt.base.types import OrderSide
|
10
|
+
from ccxt.base.types import OrderRequest
|
10
11
|
from ccxt.base.types import OrderType
|
11
12
|
from ccxt.base.types import IndexType
|
12
13
|
from typing import Optional
|
@@ -53,6 +54,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
53
54
|
'cancelOrders': None,
|
54
55
|
'createDepositAddress': True,
|
55
56
|
'createOrder': True,
|
57
|
+
'createOrders': True,
|
56
58
|
'createReduceOnlyOrder': True,
|
57
59
|
'deposit': None,
|
58
60
|
'editOrder': None,
|
@@ -2006,7 +2008,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
2006
2008
|
else:
|
2007
2009
|
return await self.create_swap_order(market, type, side, amount, price, marginMode, query)
|
2008
2010
|
|
2009
|
-
|
2011
|
+
def create_spot_order_request(self, market, type, side, amount, price=None, marginMode=None, params={}):
|
2010
2012
|
symbol = market['symbol']
|
2011
2013
|
orderSide = 'BUY' if (side == 'buy') else 'SELL'
|
2012
2014
|
request = {
|
@@ -2035,16 +2037,23 @@ class mexc(Exchange, ImplicitAPI):
|
|
2035
2037
|
if clientOrderId is not None:
|
2036
2038
|
request['newClientOrderId'] = clientOrderId
|
2037
2039
|
params = self.omit(params, ['type', 'clientOrderId'])
|
2038
|
-
method = 'spotPrivatePostOrder'
|
2039
2040
|
if marginMode is not None:
|
2040
2041
|
if marginMode != 'isolated':
|
2041
2042
|
raise BadRequest(self.id + ' createOrder() does not support marginMode ' + marginMode + ' for spot-margin trading')
|
2042
|
-
method = 'spotPrivatePostMarginOrder'
|
2043
2043
|
postOnly = None
|
2044
2044
|
postOnly, params = self.handle_post_only(type == 'market', type == 'LIMIT_MAKER', params)
|
2045
2045
|
if postOnly:
|
2046
2046
|
request['type'] = 'LIMIT_MAKER'
|
2047
|
-
|
2047
|
+
return self.extend(request, params)
|
2048
|
+
|
2049
|
+
async def create_spot_order(self, market, type, side, amount, price=None, marginMode=None, params={}):
|
2050
|
+
await self.load_markets()
|
2051
|
+
request = self.create_spot_order_request(market, type, side, amount, price, marginMode, params)
|
2052
|
+
response = None
|
2053
|
+
if marginMode is not None:
|
2054
|
+
response = await self.spotPrivatePostMarginOrder(self.extend(request, params))
|
2055
|
+
else:
|
2056
|
+
response = await self.spotPrivatePostOrder(self.extend(request, params))
|
2048
2057
|
#
|
2049
2058
|
# spot
|
2050
2059
|
#
|
@@ -2160,6 +2169,63 @@ class mexc(Exchange, ImplicitAPI):
|
|
2160
2169
|
data = self.safe_string(response, 'data')
|
2161
2170
|
return self.parse_order(data, market)
|
2162
2171
|
|
2172
|
+
async def create_orders(self, orders: List[OrderRequest], params={}):
|
2173
|
+
"""
|
2174
|
+
*spot only* *all orders must have the same symbol* create a list of trade orders
|
2175
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#batch-orders
|
2176
|
+
:param array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
|
2177
|
+
:param dict [params]: extra parameters specific to api endpoint
|
2178
|
+
:returns dict: an `order structure <https://github.com/ccxt/ccxt/wiki/Manual#order-structure>`
|
2179
|
+
"""
|
2180
|
+
await self.load_markets()
|
2181
|
+
ordersRequests = []
|
2182
|
+
symbol = None
|
2183
|
+
for i in range(0, len(orders)):
|
2184
|
+
rawOrder = orders[i]
|
2185
|
+
marketId = self.safe_string(rawOrder, 'symbol')
|
2186
|
+
market = self.market(marketId)
|
2187
|
+
if not market['spot']:
|
2188
|
+
raise NotSupported(self.id + ' createOrders() is only supported for spot markets')
|
2189
|
+
if symbol is None:
|
2190
|
+
symbol = marketId
|
2191
|
+
else:
|
2192
|
+
if symbol != marketId:
|
2193
|
+
raise BadRequest(self.id + ' createOrders() requires all orders to have the same symbol')
|
2194
|
+
type = self.safe_string(rawOrder, 'type')
|
2195
|
+
side = self.safe_string(rawOrder, 'side')
|
2196
|
+
amount = self.safe_value(rawOrder, 'amount')
|
2197
|
+
price = self.safe_value(rawOrder, 'price')
|
2198
|
+
orderParams = self.safe_value(rawOrder, 'params', {})
|
2199
|
+
marginMode = None
|
2200
|
+
marginMode, params = self.handle_margin_mode_and_params('createOrder', params)
|
2201
|
+
orderRequest = self.create_spot_order_request(market, type, side, amount, price, marginMode, orderParams)
|
2202
|
+
ordersRequests.append(orderRequest)
|
2203
|
+
request = {
|
2204
|
+
'batchOrders': ordersRequests,
|
2205
|
+
}
|
2206
|
+
response = await self.spotPrivatePostBatchOrders(request)
|
2207
|
+
#
|
2208
|
+
# [
|
2209
|
+
# {
|
2210
|
+
# "symbol": "BTCUSDT",
|
2211
|
+
# "orderId": "1196315350023612316",
|
2212
|
+
# "newClientOrderId": "hio8279hbdsds",
|
2213
|
+
# "orderListId": -1
|
2214
|
+
# },
|
2215
|
+
# {
|
2216
|
+
# "newClientOrderId": "123456",
|
2217
|
+
# "msg": "The minimum transaction volume cannot be less than:0.5USDT",
|
2218
|
+
# "code": 30002
|
2219
|
+
# },
|
2220
|
+
# {
|
2221
|
+
# "symbol": "BTCUSDT",
|
2222
|
+
# "orderId": "1196315350023612318",
|
2223
|
+
# "orderListId": -1
|
2224
|
+
# }
|
2225
|
+
# ]
|
2226
|
+
#
|
2227
|
+
return self.parse_orders(response)
|
2228
|
+
|
2163
2229
|
async def fetch_order(self, id: str, symbol: Optional[str] = None, params={}):
|
2164
2230
|
"""
|
2165
2231
|
fetches information on an order made by the user
|
@@ -2955,6 +3021,22 @@ class mexc(Exchange, ImplicitAPI):
|
|
2955
3021
|
# "updateTime": "1648984276000",
|
2956
3022
|
# }
|
2957
3023
|
#
|
3024
|
+
# createOrders error
|
3025
|
+
#
|
3026
|
+
# {
|
3027
|
+
# "newClientOrderId": "123456",
|
3028
|
+
# "msg": "The minimum transaction volume cannot be less than:0.5USDT",
|
3029
|
+
# "code": 30002
|
3030
|
+
# }
|
3031
|
+
#
|
3032
|
+
code = self.safe_integer(order, 'code')
|
3033
|
+
if code is not None:
|
3034
|
+
# error upon placing multiple orders
|
3035
|
+
return self.safe_order({
|
3036
|
+
'info': order,
|
3037
|
+
'status': 'rejected',
|
3038
|
+
'clientOrderId': self.safe_string(order, 'newClientOrderId'),
|
3039
|
+
})
|
2958
3040
|
id = None
|
2959
3041
|
if isinstance(order, str):
|
2960
3042
|
id = order
|