ccxt 4.2.59__tar.gz → 4.2.60__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.2.59/ccxt.egg-info → ccxt-4.2.60}/PKG-INFO +4 -4
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/__init__.py +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/blofin.py +1 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/kraken.py +37 -37
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/wazirx.py +6 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/ascendex.py +10 -12
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/ascendex.py +10 -12
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bingx.py +37 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitfinex2.py +20 -3
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitget.py +7 -2
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitmart.py +40 -23
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/blofin.py +52 -2
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/hitbtc.py +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/htx.py +3 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/kraken.py +42 -39
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/kucoinfutures.py +1 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/wazirx.py +6 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/woo.py +146 -74
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/base/exchange.py +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bingx.py +37 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitfinex2.py +20 -3
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitget.py +7 -2
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitmart.py +40 -23
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/blofin.py +52 -2
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/hitbtc.py +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/htx.py +3 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/kraken.py +42 -39
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/kucoinfutures.py +1 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/binance.py +11 -2
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/deribit.py +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/wazirx.py +6 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/woo.py +146 -74
- {ccxt-4.2.59 → ccxt-4.2.60/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.2.59 → ccxt-4.2.60}/package.json +1 -1
- {ccxt-4.2.59 → ccxt-4.2.60}/LICENSE.txt +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/MANIFEST.in +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/README.rst +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/ace.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/alpaca.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/base/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/base/errors.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/base/precise.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/base/types.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bequant.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bigone.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/binance.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/binanceus.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bit2c.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitbank.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitbay.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitbns.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitfinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitflyer.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bithumb.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitmex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitopro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitpanda.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitrue.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitso.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitstamp.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitteam.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bitvavo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bl3p.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/btcalpha.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/btcbox.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/btcturk.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/bybit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/cex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinbase.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coincheck.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinlist.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinmate.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinmetro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinone.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinsph.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/coinspot.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/cryptocom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/currencycom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/delta.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/deribit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/digifinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/exmo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/flowbtc.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/fmfwio.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/gate.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/gateio.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/gemini.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/hollaex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/huobi.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/huobijp.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/idex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/independentreserve.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/indodax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/kucoin.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/kuna.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/latoken.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/lbank.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/luno.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/lykke.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/mercado.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/mexc.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/ndax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/novadax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/oceanex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/okcoin.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/okx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/onetrading.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/p2b.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/paymium.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/phemex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/poloniex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/cex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/gate.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/htx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/idex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/luno.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/okx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/probit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/pro/woo.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/probit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_last_price.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_margin_mode.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/test_async.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/test/test_sync.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/timex.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/upbit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/whitebit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/yobit.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/zaif.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt/zonda.py +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/setup.cfg +0 -0
- {ccxt-4.2.59 → ccxt-4.2.60}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.2.
|
3
|
+
Version: 4.2.60
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -222,13 +222,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
222
222
|
|
223
223
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
224
224
|
|
225
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
226
|
-
* unpkg: https://unpkg.com/ccxt@4.2.
|
225
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.60/dist/ccxt.browser.js
|
226
|
+
* unpkg: https://unpkg.com/ccxt@4.2.60/dist/ccxt.browser.js
|
227
227
|
|
228
228
|
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.
|
229
229
|
|
230
230
|
```HTML
|
231
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
231
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.60/dist/ccxt.browser.js"></script>
|
232
232
|
```
|
233
233
|
|
234
234
|
Creates a global `ccxt` object:
|
@@ -19,6 +19,7 @@ class ImplicitAPI:
|
|
19
19
|
private_get_account_balance = privateGetAccountBalance = Entry('account/balance', 'private', 'GET', {'cost': 1})
|
20
20
|
private_get_account_positions = privateGetAccountPositions = Entry('account/positions', 'private', 'GET', {'cost': 1})
|
21
21
|
private_get_account_leverage_info = privateGetAccountLeverageInfo = Entry('account/leverage-info', 'private', 'GET', {'cost': 1})
|
22
|
+
private_get_account_batch_leverage_info = privateGetAccountBatchLeverageInfo = Entry('account/batch-leverage-info', 'private', 'GET', {'cost': 1})
|
22
23
|
private_get_trade_orders_tpsl_pending = privateGetTradeOrdersTpslPending = Entry('trade/orders-tpsl-pending', 'private', 'GET', {'cost': 1})
|
23
24
|
private_get_trade_orders_history = privateGetTradeOrdersHistory = Entry('trade/orders-history', 'private', 'GET', {'cost': 1})
|
24
25
|
private_get_trade_orders_tpsl_history = privateGetTradeOrdersTpslHistory = Entry('trade/orders-tpsl-history', 'private', 'GET', {'cost': 1})
|
@@ -15,43 +15,43 @@ class ImplicitAPI:
|
|
15
15
|
public_get_trades = publicGetTrades = Entry('Trades', 'public', 'GET', {'cost': 1})
|
16
16
|
private_post_addorder = privatePostAddOrder = Entry('AddOrder', 'private', 'POST', {'cost': 0})
|
17
17
|
private_post_addorderbatch = privatePostAddOrderBatch = Entry('AddOrderBatch', 'private', 'POST', {'cost': 0})
|
18
|
-
private_post_addexport = privatePostAddExport = Entry('AddExport', 'private', 'POST', {'cost':
|
19
|
-
private_post_balance = privatePostBalance = Entry('Balance', 'private', 'POST', {'cost':
|
20
|
-
private_post_cancelall = privatePostCancelAll = Entry('CancelAll', 'private', 'POST', {'cost':
|
21
|
-
private_post_cancelallordersafter = privatePostCancelAllOrdersAfter = Entry('CancelAllOrdersAfter', 'private', 'POST', {'cost':
|
18
|
+
private_post_addexport = privatePostAddExport = Entry('AddExport', 'private', 'POST', {'cost': 3})
|
19
|
+
private_post_balance = privatePostBalance = Entry('Balance', 'private', 'POST', {'cost': 3})
|
20
|
+
private_post_cancelall = privatePostCancelAll = Entry('CancelAll', 'private', 'POST', {'cost': 3})
|
21
|
+
private_post_cancelallordersafter = privatePostCancelAllOrdersAfter = Entry('CancelAllOrdersAfter', 'private', 'POST', {'cost': 3})
|
22
22
|
private_post_cancelorder = privatePostCancelOrder = Entry('CancelOrder', 'private', 'POST', {'cost': 0})
|
23
23
|
private_post_cancelorderbatch = privatePostCancelOrderBatch = Entry('CancelOrderBatch', 'private', 'POST', {'cost': 0})
|
24
|
-
private_post_closedorders = privatePostClosedOrders = Entry('ClosedOrders', 'private', 'POST', {'cost':
|
25
|
-
private_post_depositaddresses = privatePostDepositAddresses = Entry('DepositAddresses', 'private', 'POST', {'cost':
|
26
|
-
private_post_depositmethods = privatePostDepositMethods = Entry('DepositMethods', 'private', 'POST', {'cost':
|
27
|
-
private_post_depositstatus = privatePostDepositStatus = Entry('DepositStatus', 'private', 'POST', {'cost':
|
24
|
+
private_post_closedorders = privatePostClosedOrders = Entry('ClosedOrders', 'private', 'POST', {'cost': 3})
|
25
|
+
private_post_depositaddresses = privatePostDepositAddresses = Entry('DepositAddresses', 'private', 'POST', {'cost': 3})
|
26
|
+
private_post_depositmethods = privatePostDepositMethods = Entry('DepositMethods', 'private', 'POST', {'cost': 3})
|
27
|
+
private_post_depositstatus = privatePostDepositStatus = Entry('DepositStatus', 'private', 'POST', {'cost': 3})
|
28
28
|
private_post_editorder = privatePostEditOrder = Entry('EditOrder', 'private', 'POST', {'cost': 0})
|
29
|
-
private_post_exportstatus = privatePostExportStatus = Entry('ExportStatus', 'private', 'POST', {'cost':
|
30
|
-
private_post_getwebsocketstoken = privatePostGetWebSocketsToken = Entry('GetWebSocketsToken', 'private', 'POST', {'cost':
|
31
|
-
private_post_ledgers = privatePostLedgers = Entry('Ledgers', 'private', 'POST', {'cost':
|
32
|
-
private_post_openorders = privatePostOpenOrders = Entry('OpenOrders', 'private', 'POST', {'cost':
|
33
|
-
private_post_openpositions = privatePostOpenPositions = Entry('OpenPositions', 'private', 'POST', {'cost':
|
34
|
-
private_post_queryledgers = privatePostQueryLedgers = Entry('QueryLedgers', 'private', 'POST', {'cost':
|
35
|
-
private_post_queryorders = privatePostQueryOrders = Entry('QueryOrders', 'private', 'POST', {'cost':
|
36
|
-
private_post_querytrades = privatePostQueryTrades = Entry('QueryTrades', 'private', 'POST', {'cost':
|
37
|
-
private_post_retrieveexport = privatePostRetrieveExport = Entry('RetrieveExport', 'private', 'POST', {'cost':
|
38
|
-
private_post_removeexport = privatePostRemoveExport = Entry('RemoveExport', 'private', 'POST', {'cost':
|
39
|
-
private_post_balanceex = privatePostBalanceEx = Entry('BalanceEx', 'private', 'POST', {'cost':
|
40
|
-
private_post_tradebalance = privatePostTradeBalance = Entry('TradeBalance', 'private', 'POST', {'cost':
|
41
|
-
private_post_tradeshistory = privatePostTradesHistory = Entry('TradesHistory', 'private', 'POST', {'cost':
|
42
|
-
private_post_tradevolume = privatePostTradeVolume = Entry('TradeVolume', 'private', 'POST', {'cost':
|
43
|
-
private_post_withdraw = privatePostWithdraw = Entry('Withdraw', 'private', 'POST', {'cost':
|
44
|
-
private_post_withdrawcancel = privatePostWithdrawCancel = Entry('WithdrawCancel', 'private', 'POST', {'cost':
|
45
|
-
private_post_withdrawinfo = privatePostWithdrawInfo = Entry('WithdrawInfo', 'private', 'POST', {'cost':
|
46
|
-
private_post_withdrawmethods = privatePostWithdrawMethods = Entry('WithdrawMethods', 'private', 'POST', {'cost':
|
47
|
-
private_post_withdrawaddresses = privatePostWithdrawAddresses = Entry('WithdrawAddresses', 'private', 'POST', {'cost':
|
48
|
-
private_post_withdrawstatus = privatePostWithdrawStatus = Entry('WithdrawStatus', 'private', 'POST', {'cost':
|
49
|
-
private_post_wallettransfer = privatePostWalletTransfer = Entry('WalletTransfer', 'private', 'POST', {'cost':
|
50
|
-
private_post_createsubaccount = privatePostCreateSubaccount = Entry('CreateSubaccount', 'private', 'POST', {'cost':
|
51
|
-
private_post_accounttransfer = privatePostAccountTransfer = Entry('AccountTransfer', 'private', 'POST', {'cost':
|
52
|
-
private_post_earn_allocate = privatePostEarnAllocate = Entry('Earn/Allocate', 'private', 'POST', {'cost':
|
53
|
-
private_post_earn_deallocate = privatePostEarnDeallocate = Entry('Earn/Deallocate', 'private', 'POST', {'cost':
|
54
|
-
private_post_earn_allocatestatus = privatePostEarnAllocateStatus = Entry('Earn/AllocateStatus', 'private', 'POST', {'cost':
|
55
|
-
private_post_earn_deallocatestatus = privatePostEarnDeallocateStatus = Entry('Earn/DeallocateStatus', 'private', 'POST', {'cost':
|
56
|
-
private_post_earn_strategies = privatePostEarnStrategies = Entry('Earn/Strategies', 'private', 'POST', {'cost':
|
57
|
-
private_post_earn_allocations = privatePostEarnAllocations = Entry('Earn/Allocations', 'private', 'POST', {'cost':
|
29
|
+
private_post_exportstatus = privatePostExportStatus = Entry('ExportStatus', 'private', 'POST', {'cost': 3})
|
30
|
+
private_post_getwebsocketstoken = privatePostGetWebSocketsToken = Entry('GetWebSocketsToken', 'private', 'POST', {'cost': 3})
|
31
|
+
private_post_ledgers = privatePostLedgers = Entry('Ledgers', 'private', 'POST', {'cost': 6})
|
32
|
+
private_post_openorders = privatePostOpenOrders = Entry('OpenOrders', 'private', 'POST', {'cost': 3})
|
33
|
+
private_post_openpositions = privatePostOpenPositions = Entry('OpenPositions', 'private', 'POST', {'cost': 3})
|
34
|
+
private_post_queryledgers = privatePostQueryLedgers = Entry('QueryLedgers', 'private', 'POST', {'cost': 3})
|
35
|
+
private_post_queryorders = privatePostQueryOrders = Entry('QueryOrders', 'private', 'POST', {'cost': 3})
|
36
|
+
private_post_querytrades = privatePostQueryTrades = Entry('QueryTrades', 'private', 'POST', {'cost': 3})
|
37
|
+
private_post_retrieveexport = privatePostRetrieveExport = Entry('RetrieveExport', 'private', 'POST', {'cost': 3})
|
38
|
+
private_post_removeexport = privatePostRemoveExport = Entry('RemoveExport', 'private', 'POST', {'cost': 3})
|
39
|
+
private_post_balanceex = privatePostBalanceEx = Entry('BalanceEx', 'private', 'POST', {'cost': 3})
|
40
|
+
private_post_tradebalance = privatePostTradeBalance = Entry('TradeBalance', 'private', 'POST', {'cost': 3})
|
41
|
+
private_post_tradeshistory = privatePostTradesHistory = Entry('TradesHistory', 'private', 'POST', {'cost': 6})
|
42
|
+
private_post_tradevolume = privatePostTradeVolume = Entry('TradeVolume', 'private', 'POST', {'cost': 3})
|
43
|
+
private_post_withdraw = privatePostWithdraw = Entry('Withdraw', 'private', 'POST', {'cost': 3})
|
44
|
+
private_post_withdrawcancel = privatePostWithdrawCancel = Entry('WithdrawCancel', 'private', 'POST', {'cost': 3})
|
45
|
+
private_post_withdrawinfo = privatePostWithdrawInfo = Entry('WithdrawInfo', 'private', 'POST', {'cost': 3})
|
46
|
+
private_post_withdrawmethods = privatePostWithdrawMethods = Entry('WithdrawMethods', 'private', 'POST', {'cost': 3})
|
47
|
+
private_post_withdrawaddresses = privatePostWithdrawAddresses = Entry('WithdrawAddresses', 'private', 'POST', {'cost': 3})
|
48
|
+
private_post_withdrawstatus = privatePostWithdrawStatus = Entry('WithdrawStatus', 'private', 'POST', {'cost': 3})
|
49
|
+
private_post_wallettransfer = privatePostWalletTransfer = Entry('WalletTransfer', 'private', 'POST', {'cost': 3})
|
50
|
+
private_post_createsubaccount = privatePostCreateSubaccount = Entry('CreateSubaccount', 'private', 'POST', {'cost': 3})
|
51
|
+
private_post_accounttransfer = privatePostAccountTransfer = Entry('AccountTransfer', 'private', 'POST', {'cost': 3})
|
52
|
+
private_post_earn_allocate = privatePostEarnAllocate = Entry('Earn/Allocate', 'private', 'POST', {'cost': 3})
|
53
|
+
private_post_earn_deallocate = privatePostEarnDeallocate = Entry('Earn/Deallocate', 'private', 'POST', {'cost': 3})
|
54
|
+
private_post_earn_allocatestatus = privatePostEarnAllocateStatus = Entry('Earn/AllocateStatus', 'private', 'POST', {'cost': 3})
|
55
|
+
private_post_earn_deallocatestatus = privatePostEarnDeallocateStatus = Entry('Earn/DeallocateStatus', 'private', 'POST', {'cost': 3})
|
56
|
+
private_post_earn_strategies = privatePostEarnStrategies = Entry('Earn/Strategies', 'private', 'POST', {'cost': 3})
|
57
|
+
private_post_earn_allocations = privatePostEarnAllocations = Entry('Earn/Allocations', 'private', 'POST', {'cost': 3})
|
@@ -3,7 +3,7 @@ from ccxt.base.types import Entry
|
|
3
3
|
|
4
4
|
class ImplicitAPI:
|
5
5
|
public_get_exchangeinfo = publicGetExchangeInfo = Entry('exchangeInfo', 'public', 'GET', {'cost': 1})
|
6
|
-
public_get_depth = publicGetDepth = Entry('depth', 'public', 'GET', {'cost':
|
6
|
+
public_get_depth = publicGetDepth = Entry('depth', 'public', 'GET', {'cost': 0.5})
|
7
7
|
public_get_ping = publicGetPing = Entry('ping', 'public', 'GET', {'cost': 1})
|
8
8
|
public_get_systemstatus = publicGetSystemStatus = Entry('systemStatus', 'public', 'GET', {'cost': 1})
|
9
9
|
public_get_tickers_24hr = publicGetTickers24hr = Entry('tickers/24hr', 'public', 'GET', {'cost': 1})
|
@@ -18,6 +18,11 @@ class ImplicitAPI:
|
|
18
18
|
private_get_openorders = privateGetOpenOrders = Entry('openOrders', 'private', 'GET', {'cost': 1})
|
19
19
|
private_get_order = privateGetOrder = Entry('order', 'private', 'GET', {'cost': 0.5})
|
20
20
|
private_get_mytrades = privateGetMyTrades = Entry('myTrades', 'private', 'GET', {'cost': 0.5})
|
21
|
+
private_get_coins = privateGetCoins = Entry('coins', 'private', 'GET', {'cost': 12})
|
22
|
+
private_get_crypto_withdraws = privateGetCryptoWithdraws = Entry('crypto/withdraws', 'private', 'GET', {'cost': 12})
|
23
|
+
private_get_crypto_deposits_address = privateGetCryptoDepositsAddress = Entry('crypto/deposits/address', 'private', 'GET', {'cost': 60})
|
24
|
+
private_get_sub_account_fund_transfer_history = privateGetSubAccountFundTransferHistory = Entry('sub_account/fund_transfer/history', 'private', 'GET', {'cost': 1})
|
25
|
+
private_get_sub_account_accounts = privateGetSubAccountAccounts = Entry('sub_account/accounts', 'private', 'GET', {'cost': 1})
|
21
26
|
private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.1})
|
22
27
|
private_post_order_test = privatePostOrderTest = Entry('order/test', 'private', 'POST', {'cost': 0.5})
|
23
28
|
private_post_create_auth_token = privatePostCreateAuthToken = Entry('create_auth_token', 'private', 'POST', {'cost': 1})
|
@@ -751,11 +751,10 @@ class ascendex(Exchange, ImplicitAPI):
|
|
751
751
|
]
|
752
752
|
|
753
753
|
def parse_balance(self, response) -> Balances:
|
754
|
-
timestamp = self.milliseconds()
|
755
754
|
result = {
|
756
755
|
'info': response,
|
757
|
-
'timestamp':
|
758
|
-
'datetime':
|
756
|
+
'timestamp': None,
|
757
|
+
'datetime': None,
|
759
758
|
}
|
760
759
|
balances = self.safe_value(response, 'data', [])
|
761
760
|
for i in range(0, len(balances)):
|
@@ -768,11 +767,10 @@ class ascendex(Exchange, ImplicitAPI):
|
|
768
767
|
return self.safe_balance(result)
|
769
768
|
|
770
769
|
def parse_margin_balance(self, response):
|
771
|
-
timestamp = self.milliseconds()
|
772
770
|
result = {
|
773
771
|
'info': response,
|
774
|
-
'timestamp':
|
775
|
-
'datetime':
|
772
|
+
'timestamp': None,
|
773
|
+
'datetime': None,
|
776
774
|
}
|
777
775
|
balances = self.safe_value(response, 'data', [])
|
778
776
|
for i in range(0, len(balances)):
|
@@ -788,11 +786,10 @@ class ascendex(Exchange, ImplicitAPI):
|
|
788
786
|
return self.safe_balance(result)
|
789
787
|
|
790
788
|
def parse_swap_balance(self, response):
|
791
|
-
timestamp = self.milliseconds()
|
792
789
|
result = {
|
793
790
|
'info': response,
|
794
|
-
'timestamp':
|
795
|
-
'datetime':
|
791
|
+
'timestamp': None,
|
792
|
+
'datetime': None,
|
796
793
|
}
|
797
794
|
data = self.safe_value(response, 'data', {})
|
798
795
|
collaterals = self.safe_value(data, 'collaterals', [])
|
@@ -811,6 +808,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
811
808
|
:see: https://ascendex.github.io/ascendex-pro-api/#margin-account-balance
|
812
809
|
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#position
|
813
810
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
811
|
+
:param str [params.type]: wallet type, 'spot', 'margin', or 'swap'
|
812
|
+
:param str [params.marginMode]: 'cross' or None, for spot margin trading, value of 'isolated' is invalid
|
814
813
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
815
814
|
"""
|
816
815
|
self.load_markets()
|
@@ -3011,12 +3010,11 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3011
3010
|
#
|
3012
3011
|
status = self.safe_integer(transfer, 'code')
|
3013
3012
|
currencyCode = self.safe_currency_code(None, currency)
|
3014
|
-
timestamp = self.milliseconds()
|
3015
3013
|
return {
|
3016
3014
|
'info': transfer,
|
3017
3015
|
'id': None,
|
3018
|
-
'timestamp':
|
3019
|
-
'datetime':
|
3016
|
+
'timestamp': None,
|
3017
|
+
'datetime': None,
|
3020
3018
|
'currency': currencyCode,
|
3021
3019
|
'amount': None,
|
3022
3020
|
'fromAccount': None,
|
@@ -751,11 +751,10 @@ class ascendex(Exchange, ImplicitAPI):
|
|
751
751
|
]
|
752
752
|
|
753
753
|
def parse_balance(self, response) -> Balances:
|
754
|
-
timestamp = self.milliseconds()
|
755
754
|
result = {
|
756
755
|
'info': response,
|
757
|
-
'timestamp':
|
758
|
-
'datetime':
|
756
|
+
'timestamp': None,
|
757
|
+
'datetime': None,
|
759
758
|
}
|
760
759
|
balances = self.safe_value(response, 'data', [])
|
761
760
|
for i in range(0, len(balances)):
|
@@ -768,11 +767,10 @@ class ascendex(Exchange, ImplicitAPI):
|
|
768
767
|
return self.safe_balance(result)
|
769
768
|
|
770
769
|
def parse_margin_balance(self, response):
|
771
|
-
timestamp = self.milliseconds()
|
772
770
|
result = {
|
773
771
|
'info': response,
|
774
|
-
'timestamp':
|
775
|
-
'datetime':
|
772
|
+
'timestamp': None,
|
773
|
+
'datetime': None,
|
776
774
|
}
|
777
775
|
balances = self.safe_value(response, 'data', [])
|
778
776
|
for i in range(0, len(balances)):
|
@@ -788,11 +786,10 @@ class ascendex(Exchange, ImplicitAPI):
|
|
788
786
|
return self.safe_balance(result)
|
789
787
|
|
790
788
|
def parse_swap_balance(self, response):
|
791
|
-
timestamp = self.milliseconds()
|
792
789
|
result = {
|
793
790
|
'info': response,
|
794
|
-
'timestamp':
|
795
|
-
'datetime':
|
791
|
+
'timestamp': None,
|
792
|
+
'datetime': None,
|
796
793
|
}
|
797
794
|
data = self.safe_value(response, 'data', {})
|
798
795
|
collaterals = self.safe_value(data, 'collaterals', [])
|
@@ -811,6 +808,8 @@ class ascendex(Exchange, ImplicitAPI):
|
|
811
808
|
:see: https://ascendex.github.io/ascendex-pro-api/#margin-account-balance
|
812
809
|
:see: https://ascendex.github.io/ascendex-futures-pro-api-v2/#position
|
813
810
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
811
|
+
:param str [params.type]: wallet type, 'spot', 'margin', or 'swap'
|
812
|
+
:param str [params.marginMode]: 'cross' or None, for spot margin trading, value of 'isolated' is invalid
|
814
813
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
815
814
|
"""
|
816
815
|
await self.load_markets()
|
@@ -3011,12 +3010,11 @@ class ascendex(Exchange, ImplicitAPI):
|
|
3011
3010
|
#
|
3012
3011
|
status = self.safe_integer(transfer, 'code')
|
3013
3012
|
currencyCode = self.safe_currency_code(None, currency)
|
3014
|
-
timestamp = self.milliseconds()
|
3015
3013
|
return {
|
3016
3014
|
'info': transfer,
|
3017
3015
|
'id': None,
|
3018
|
-
'timestamp':
|
3019
|
-
'datetime':
|
3016
|
+
'timestamp': None,
|
3017
|
+
'datetime': None,
|
3020
3018
|
'currency': currencyCode,
|
3021
3019
|
'amount': None,
|
3022
3020
|
'fromAccount': None,
|
@@ -8,7 +8,7 @@ from ccxt.abstract.bingx import ImplicitAPI
|
|
8
8
|
import asyncio
|
9
9
|
import hashlib
|
10
10
|
import numbers
|
11
|
-
from ccxt.base.types import Balances, Currency, Int, Leverage, Market, Order, TransferEntry, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, Transaction
|
11
|
+
from ccxt.base.types import Balances, Currency, Int, Leverage, MarginMode, Market, Order, TransferEntry, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, Transaction
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
14
|
from ccxt.base.errors import PermissionDenied
|
@@ -73,6 +73,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
73
73
|
'fetchFundingRates': True,
|
74
74
|
'fetchLeverage': True,
|
75
75
|
'fetchLiquidations': False,
|
76
|
+
'fetchMarginMode': True,
|
76
77
|
'fetchMarkets': True,
|
77
78
|
'fetchMarkOHLCV': True,
|
78
79
|
'fetchMyLiquidations': True,
|
@@ -3899,6 +3900,41 @@ class bingx(Exchange, ImplicitAPI):
|
|
3899
3900
|
data = self.safe_dict(response, 'data')
|
3900
3901
|
return self.parse_order(data, market)
|
3901
3902
|
|
3903
|
+
async def fetch_margin_mode(self, symbol: str, params={}) -> MarginMode:
|
3904
|
+
"""
|
3905
|
+
fetches the margin mode of the trading pair
|
3906
|
+
:see: https://bingx-api.github.io/docs/#/en-us/swapV2/trade-api.html#Query%20Margin%20Mode
|
3907
|
+
:param str symbol: unified symbol of the market to fetch the margin mode for
|
3908
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3909
|
+
:returns dict: Struct of MarginMode
|
3910
|
+
"""
|
3911
|
+
await self.load_markets()
|
3912
|
+
market = self.market(symbol)
|
3913
|
+
request: dict = {
|
3914
|
+
'symbol': market['id'],
|
3915
|
+
}
|
3916
|
+
response = await self.swapV2PrivateGetTradeMarginType(self.extend(request, params))
|
3917
|
+
#
|
3918
|
+
# {
|
3919
|
+
# "code": 0,
|
3920
|
+
# "msg": "",
|
3921
|
+
# "data": {
|
3922
|
+
# "marginType": "CROSSED"
|
3923
|
+
# }
|
3924
|
+
# }
|
3925
|
+
#
|
3926
|
+
data = self.safe_dict(response, 'data', {})
|
3927
|
+
return self.parse_margin_mode(data, market)
|
3928
|
+
|
3929
|
+
def parse_margin_mode(self, marginMode, market=None) -> MarginMode:
|
3930
|
+
marginType = self.safe_string_lower(marginMode, 'marginType')
|
3931
|
+
marginType = 'cross' if (marginType == 'crossed') else marginType
|
3932
|
+
return {
|
3933
|
+
'info': marginMode,
|
3934
|
+
'symbol': market['symbol'],
|
3935
|
+
'marginMode': marginType,
|
3936
|
+
}
|
3937
|
+
|
3902
3938
|
def sign(self, path, section='public', method='GET', params={}, headers=None, body=None):
|
3903
3939
|
type = section[0]
|
3904
3940
|
version = section[1]
|
@@ -46,8 +46,8 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
46
46
|
'spot': True,
|
47
47
|
'margin': True,
|
48
48
|
'swap': True,
|
49
|
-
'future':
|
50
|
-
'option':
|
49
|
+
'future': False,
|
50
|
+
'option': False,
|
51
51
|
'addMargin': False,
|
52
52
|
'borrowCrossMargin': False,
|
53
53
|
'borrowIsolatedMargin': False,
|
@@ -58,6 +58,7 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
58
58
|
'createLimitOrder': True,
|
59
59
|
'createMarketOrder': True,
|
60
60
|
'createOrder': True,
|
61
|
+
'createPostOnlyOrder': True,
|
61
62
|
'createReduceOnlyOrder': True,
|
62
63
|
'createStopLimitOrder': True,
|
63
64
|
'createStopMarketOrder': True,
|
@@ -68,8 +69,11 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
68
69
|
'editOrder': True,
|
69
70
|
'fetchBalance': True,
|
70
71
|
'fetchBorrowInterest': False,
|
72
|
+
'fetchBorrowRate': False,
|
71
73
|
'fetchBorrowRateHistories': False,
|
72
74
|
'fetchBorrowRateHistory': False,
|
75
|
+
'fetchBorrowRates': False,
|
76
|
+
'fetchBorrowRatesPerSymbol': False,
|
73
77
|
'fetchClosedOrder': True,
|
74
78
|
'fetchClosedOrders': True,
|
75
79
|
'fetchCrossBorrowRate': False,
|
@@ -98,6 +102,8 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
98
102
|
'fetchOpenOrder': True,
|
99
103
|
'fetchOpenOrders': True,
|
100
104
|
'fetchOrder': True,
|
105
|
+
'fetchOrderBook': True,
|
106
|
+
'fetchOrderBooks': False,
|
101
107
|
'fetchOrderTrades': True,
|
102
108
|
'fetchPosition': False,
|
103
109
|
'fetchPositionMode': False,
|
@@ -117,6 +123,8 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
117
123
|
'setMargin': True,
|
118
124
|
'setMarginMode': False,
|
119
125
|
'setPositionMode': False,
|
126
|
+
'signIn': False,
|
127
|
+
'transfer': True,
|
120
128
|
'withdraw': True,
|
121
129
|
},
|
122
130
|
'timeframes': {
|
@@ -1484,7 +1492,16 @@ class bitfinex2(Exchange, ImplicitAPI):
|
|
1484
1492
|
:param float amount: how much you want to trade in units of the base currency
|
1485
1493
|
:param float [price]: the price of the order, in units of the quote currency, ignored in market orders
|
1486
1494
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1487
|
-
:
|
1495
|
+
:param float [params.stopPrice]: The price at which a trigger order is triggered at
|
1496
|
+
:param str [params.timeInForce]: "GTC", "IOC", "FOK", or "PO"
|
1497
|
+
:param bool [params.postOnly]:
|
1498
|
+
:param bool [params.reduceOnly]: Ensures that the executed order does not flip the opened position.
|
1499
|
+
:param int [params.flags]: additional order parameters: 4096(Post Only), 1024(Reduce Only), 16384(OCO), 64(Hidden), 512(Close), 524288(No Var Rates)
|
1500
|
+
:param int [params.lev]: leverage for a derivative order, supported by derivative symbol orders only. The value should be between 1 and 100 inclusive.
|
1501
|
+
:param str [params.price_traling]: The trailing price for a trailing stop order
|
1502
|
+
:param str [params.price_aux_limit]: Order price for stop limit orders
|
1503
|
+
:param str [params.price_oco_stop]: OCO stop price
|
1504
|
+
:returns dict: an `order structure <https://github.com/ccxt/ccxt/wiki/Manual#order-structure>`
|
1488
1505
|
"""
|
1489
1506
|
market = self.market(symbol)
|
1490
1507
|
amountString = self.amount_to_precision(symbol, amount)
|
@@ -2847,8 +2847,13 @@ class bitget(Exchange, ImplicitAPI):
|
|
2847
2847
|
currencyCode = self.safe_currency_code(self.safe_string(feeStructure, 'feeCoin'))
|
2848
2848
|
fee = {
|
2849
2849
|
'currency': currencyCode,
|
2850
|
-
'cost': Precise.string_abs(self.safe_string(feeStructure, 'totalFee')),
|
2851
2850
|
}
|
2851
|
+
feeCostString = self.safe_string(feeStructure, 'totalFee')
|
2852
|
+
deduction = self.safe_string(feeStructure, 'deduction') is True if 'yes' else False
|
2853
|
+
if deduction:
|
2854
|
+
fee['cost'] = feeCostString
|
2855
|
+
else:
|
2856
|
+
fee['cost'] = Precise.string_neg(feeCostString)
|
2852
2857
|
return self.safe_trade({
|
2853
2858
|
'info': trade,
|
2854
2859
|
'id': self.safe_string(trade, 'tradeId'),
|
@@ -3866,7 +3871,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
3866
3871
|
:see: https://www.bitget.com/api-doc/margin/isolated/trade/Isolated-Place-Order
|
3867
3872
|
:param str symbol: unified symbol of the market to create an order in
|
3868
3873
|
:param str type: 'market' or 'limit'
|
3869
|
-
:param str side: 'buy' or 'sell'
|
3874
|
+
:param str side: 'buy' or 'sell'
|
3870
3875
|
:param float amount: how much you want to trade in units of the base currency
|
3871
3876
|
:param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
3872
3877
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -530,6 +530,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
530
530
|
},
|
531
531
|
'networks': {
|
532
532
|
'ERC20': 'ERC20',
|
533
|
+
'SOL': 'SOL',
|
533
534
|
'BTC': 'BTC',
|
534
535
|
'TRC20': 'TRC20',
|
535
536
|
# todo: should be TRX after unification
|
@@ -552,7 +553,6 @@ class bitmart(Exchange, ImplicitAPI):
|
|
552
553
|
'FIO': 'FIO',
|
553
554
|
'SCRT': 'SCRT',
|
554
555
|
'IOTX': 'IOTX',
|
555
|
-
'SOL': 'SOL',
|
556
556
|
'ALGO': 'ALGO',
|
557
557
|
'ATOM': 'ATOM',
|
558
558
|
'DOT': 'DOT',
|
@@ -2886,6 +2886,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
2886
2886
|
async def fetch_deposit_address(self, code: str, params={}):
|
2887
2887
|
"""
|
2888
2888
|
fetch the deposit address for a currency associated with self account
|
2889
|
+
:see: https://developer-pro.bitmart.com/en/spot/#deposit-address-keyed
|
2889
2890
|
:param str code: unified currency code
|
2890
2891
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2891
2892
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
@@ -2906,39 +2907,55 @@ class bitmart(Exchange, ImplicitAPI):
|
|
2906
2907
|
params = self.omit(params, 'network')
|
2907
2908
|
response = await self.privateGetAccountV1DepositAddress(self.extend(request, params))
|
2908
2909
|
#
|
2909
|
-
#
|
2910
|
-
#
|
2911
|
-
#
|
2912
|
-
#
|
2913
|
-
#
|
2914
|
-
#
|
2915
|
-
#
|
2916
|
-
#
|
2917
|
-
#
|
2918
|
-
#
|
2919
|
-
#
|
2910
|
+
# {
|
2911
|
+
# "message": "OK",
|
2912
|
+
# "code": 1000,
|
2913
|
+
# "trace": "0e6edd79-f77f-4251-abe5-83ba75d06c1a",
|
2914
|
+
# "data": {
|
2915
|
+
# currency: 'ETH',
|
2916
|
+
# chain: 'Ethereum',
|
2917
|
+
# address: '0x99B5EEc2C520f86F0F62F05820d28D05D36EccCf',
|
2918
|
+
# address_memo: ''
|
2919
|
+
# }
|
2920
|
+
# }
|
2920
2921
|
#
|
2921
2922
|
data = self.safe_value(response, 'data', {})
|
2922
|
-
|
2923
|
-
|
2924
|
-
|
2923
|
+
return self.parse_deposit_address(data, currency)
|
2924
|
+
|
2925
|
+
def parse_deposit_address(self, depositAddress, currency=None):
|
2926
|
+
#
|
2927
|
+
# {
|
2928
|
+
# currency: 'ETH',
|
2929
|
+
# chain: 'Ethereum',
|
2930
|
+
# address: '0x99B5EEc2C520f86F0F62F05820d28D05D36EccCf',
|
2931
|
+
# address_memo: ''
|
2932
|
+
# }
|
2933
|
+
#
|
2934
|
+
currencyId = self.safe_string(depositAddress, 'currency')
|
2935
|
+
address = self.safe_string(depositAddress, 'address')
|
2936
|
+
chain = self.safe_string(depositAddress, 'chain')
|
2925
2937
|
network = None
|
2938
|
+
currency = self.safe_currency(currencyId, currency)
|
2926
2939
|
if chain is not None:
|
2927
2940
|
parts = chain.split('-')
|
2928
|
-
|
2929
|
-
|
2941
|
+
partsLength = len(parts)
|
2942
|
+
networkId = self.safe_string(parts, partsLength - 1)
|
2943
|
+
network = self.safe_network_code(networkId, currency)
|
2930
2944
|
self.check_address(address)
|
2931
2945
|
return {
|
2932
|
-
'
|
2946
|
+
'info': depositAddress,
|
2947
|
+
'currency': self.safe_string(currency, 'code'),
|
2933
2948
|
'address': address,
|
2934
|
-
'tag':
|
2949
|
+
'tag': self.safe_string(depositAddress, 'address_memo'),
|
2935
2950
|
'network': network,
|
2936
|
-
'info': response,
|
2937
2951
|
}
|
2938
2952
|
|
2939
|
-
def
|
2940
|
-
|
2941
|
-
|
2953
|
+
def safe_network_code(self, networkId, currency=None):
|
2954
|
+
name = self.safe_string(currency, 'name')
|
2955
|
+
if networkId == name:
|
2956
|
+
code = self.safe_string(currency, 'code')
|
2957
|
+
return code
|
2958
|
+
return self.network_id_to_code(networkId)
|
2942
2959
|
|
2943
2960
|
async def withdraw(self, code: str, amount: float, address, tag=None, params={}):
|
2944
2961
|
"""
|