ccxt 4.0.76__tar.gz → 4.0.78__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.
Potentially problematic release.
This version of ccxt might be problematic. Click here for more details.
- {ccxt-4.0.76/ccxt.egg-info → ccxt-4.0.78}/PKG-INFO +4 -4
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/__init__.py +1 -1
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bingx.py +1 -1
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/gate.py +24 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/gateio.py +24 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/okex.py +1 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/okex5.py +1 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/okx.py +1 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/exchange.py +7 -2
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bingx.py +41 -22
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/gate.py +42 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/kucoinfutures.py +1 -1
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/okx.py +1 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/whitebit.py +1 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/base/exchange.py +7 -2
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bingx.py +41 -22
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/gate.py +42 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/kucoinfutures.py +1 -1
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/okx.py +1 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/okx.py +3 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/test_async.py +8 -3
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/test_sync.py +8 -3
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/whitebit.py +1 -0
- {ccxt-4.0.76 → ccxt-4.0.78/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.0.76 → ccxt-4.0.78}/package.json +1 -1
- {ccxt-4.0.76 → ccxt-4.0.78}/LICENSE.txt +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/MANIFEST.in +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/README.rst +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitforex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitstamp1.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bittrex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bkex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/btctradeua.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinbaseprime.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinfalcon.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/huobipro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/lbank2.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/mexc3.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/tidex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/ace.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/alpaca.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/ascendex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitforex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitstamp1.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bittrex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bkex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/btctradeua.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinbaseprime.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinfalcon.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/huobipro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/lbank2.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/mexc3.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/okex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/okex5.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/tidex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/base/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/base/errors.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/base/precise.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/base/types.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bequant.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bigone.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/binance.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/binanceus.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bit2c.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitbank.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitbay.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitbns.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitfinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitflyer.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitforex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitget.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bithumb.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitmart.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitmex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitopro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitpanda.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitrue.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitso.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitstamp.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitstamp1.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bittrex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bitvavo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bkex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bl3p.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/btcalpha.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/btcbox.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/btctradeua.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/btcturk.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/bybit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/cex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinbase.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinbaseprime.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coincheck.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinfalcon.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinmate.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinone.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinsph.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/coinspot.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/cryptocom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/currencycom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/delta.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/deribit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/digifinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/exmo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/flowbtc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/fmfwio.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/gateio.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/gemini.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/hitbtc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/hollaex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/huobi.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/huobijp.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/huobipro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/idex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/independentreserve.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/indodax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/kraken.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/kucoin.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/kuna.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/latoken.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/lbank.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/lbank2.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/luno.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/lykke.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/mercado.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/mexc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/mexc3.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/ndax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/novadax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/oceanex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/okcoin.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/okex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/okex5.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/paymium.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/phemex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/poloniex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/binance.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bittrex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/btcex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/cex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/coinbaseprime.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/gate.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/huobipro.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/idex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/luno.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/mexc3.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/okex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/probit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/ripio.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/woo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/pro/zb.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/probit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/tidex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/timex.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/upbit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/wazirx.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/woo.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/yobit.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/zaif.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt/zonda.py +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/setup.cfg +0 -0
- {ccxt-4.0.76 → ccxt-4.0.78}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.0.
|
3
|
+
Version: 4.0.78
|
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
|
@@ -228,13 +228,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
228
228
|
|
229
229
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
230
230
|
|
231
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
232
|
-
* unpkg: https://unpkg.com/ccxt@4.0.
|
231
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.78/dist/ccxt.browser.js
|
232
|
+
* unpkg: https://unpkg.com/ccxt@4.0.78/dist/ccxt.browser.js
|
233
233
|
|
234
234
|
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.
|
235
235
|
|
236
236
|
```HTML
|
237
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
237
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.78/dist/ccxt.browser.js"></script>
|
238
238
|
```
|
239
239
|
|
240
240
|
Creates a global `ccxt` object:
|
@@ -6,11 +6,11 @@ class ImplicitAPI:
|
|
6
6
|
spot_v1_public_get_market_trades = spotV1PublicGetMarketTrades = Entry('market/trades', ['spot', 'v1', 'public'], 'GET', {'cost': 3})
|
7
7
|
spot_v1_public_get_market_depth = spotV1PublicGetMarketDepth = Entry('market/depth', ['spot', 'v1', 'public'], 'GET', {'cost': 3})
|
8
8
|
spot_v1_public_get_market_kline = spotV1PublicGetMarketKline = Entry('market/kline', ['spot', 'v1', 'public'], 'GET', {'cost': 3})
|
9
|
+
spot_v1_public_get_ticker_24hr = spotV1PublicGetTicker24hr = Entry('ticker/24hr', ['spot', 'v1', 'public'], 'GET', {'cost': 1})
|
9
10
|
spot_v1_private_get_trade_query = spotV1PrivateGetTradeQuery = Entry('trade/query', ['spot', 'v1', 'private'], 'GET', {'cost': 3})
|
10
11
|
spot_v1_private_get_trade_openorders = spotV1PrivateGetTradeOpenOrders = Entry('trade/openOrders', ['spot', 'v1', 'private'], 'GET', {'cost': 3})
|
11
12
|
spot_v1_private_get_trade_historyorders = spotV1PrivateGetTradeHistoryOrders = Entry('trade/historyOrders', ['spot', 'v1', 'private'], 'GET', {'cost': 3})
|
12
13
|
spot_v1_private_get_account_balance = spotV1PrivateGetAccountBalance = Entry('account/balance', ['spot', 'v1', 'private'], 'GET', {'cost': 3})
|
13
|
-
spot_v1_private_get_ticker_24hr = spotV1PrivateGetTicker24hr = Entry('ticker/24hr', ['spot', 'v1', 'private'], 'GET', {'cost': 1})
|
14
14
|
spot_v1_private_post_trade_order = spotV1PrivatePostTradeOrder = Entry('trade/order', ['spot', 'v1', 'private'], 'POST', {'cost': 3})
|
15
15
|
spot_v1_private_post_trade_cancel = spotV1PrivatePostTradeCancel = Entry('trade/cancel', ['spot', 'v1', 'private'], 'POST', {'cost': 3})
|
16
16
|
spot_v1_private_post_trade_batchorders = spotV1PrivatePostTradeBatchOrders = Entry('trade/batchOrders', ['spot', 'v1', 'private'], 'POST', {'cost': 3})
|
@@ -80,6 +80,19 @@ class ImplicitAPI:
|
|
80
80
|
private_subaccounts_post_sub_accounts_user_id_unlock = privateSubAccountsPostSubAccountsUserIdUnlock = Entry('sub_accounts/{user_id}/unlock', ['private', 'subAccounts'], 'POST', {'cost': 1})
|
81
81
|
private_subaccounts_put_sub_accounts_user_id_keys_key = privateSubAccountsPutSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'PUT', {'cost': 1})
|
82
82
|
private_subaccounts_delete_sub_accounts_user_id_keys_key = privateSubAccountsDeleteSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'DELETE', {'cost': 1})
|
83
|
+
private_portfolio_get_accounts = privatePortfolioGetAccounts = Entry('accounts', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
84
|
+
private_portfolio_get_account_mode = privatePortfolioGetAccountMode = Entry('account_mode', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
85
|
+
private_portfolio_get_borrowable = privatePortfolioGetBorrowable = Entry('borrowable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
86
|
+
private_portfolio_get_transferable = privatePortfolioGetTransferable = Entry('transferable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
87
|
+
private_portfolio_get_loans = privatePortfolioGetLoans = Entry('loans', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
88
|
+
private_portfolio_get_loan_records = privatePortfolioGetLoanRecords = Entry('loan_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
89
|
+
private_portfolio_get_interest_records = privatePortfolioGetInterestRecords = Entry('interest_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
90
|
+
private_portfolio_get_spot_orders = privatePortfolioGetSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
91
|
+
private_portfolio_get_spot_orders_order_id = privatePortfolioGetSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
92
|
+
private_portfolio_post_loans = privatePortfolioPostLoans = Entry('loans', ['private', 'portfolio'], 'POST', {'cost': 1.5})
|
93
|
+
private_portfolio_post_spot_orders = privatePortfolioPostSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'POST', {'cost': 1.5})
|
94
|
+
private_portfolio_delete_spot_orders_order_id = privatePortfolioDeleteSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'DELETE', {'cost': 1.5})
|
95
|
+
private_portfolio_patch_spot_orders_order_id = privatePortfolioPatchSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'PATCH', {'cost': 1.5})
|
83
96
|
private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
|
84
97
|
private_spot_get_batch_fee = privateSpotGetBatchFee = Entry('batch_fee', ['private', 'spot'], 'GET', {'cost': 1})
|
85
98
|
private_spot_get_accounts = privateSpotGetAccounts = Entry('accounts', ['private', 'spot'], 'GET', {'cost': 1})
|
@@ -213,10 +226,21 @@ class ImplicitAPI:
|
|
213
226
|
private_earn_get_uni_interest_records = privateEarnGetUniInterestRecords = Entry('uni/interest_records', ['private', 'earn'], 'GET', {'cost': 1.5})
|
214
227
|
private_earn_post_uni_lends = privateEarnPostUniLends = Entry('uni/lends', ['private', 'earn'], 'POST', {'cost': 1.5})
|
215
228
|
private_earn_patch_uni_lends = privateEarnPatchUniLends = Entry('uni/lends', ['private', 'earn'], 'PATCH', {'cost': 1.5})
|
229
|
+
private_loan_get_collateral_orders = privateLoanGetCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'GET', {'cost': 1.5})
|
230
|
+
private_loan_get_collateral_orders_order_id = privateLoanGetCollateralOrdersOrderId = Entry('collateral/orders/{order_id}', ['private', 'loan'], 'GET', {'cost': 1.5})
|
231
|
+
private_loan_get_collateral_repay_records = privateLoanGetCollateralRepayRecords = Entry('collateral/repay_records', ['private', 'loan'], 'GET', {'cost': 1.5})
|
232
|
+
private_loan_get_collateral_collaterals = privateLoanGetCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'GET', {'cost': 1.5})
|
233
|
+
private_loan_get_collateral_total_amount = privateLoanGetCollateralTotalAmount = Entry('collateral/total_amount', ['private', 'loan'], 'GET', {'cost': 1.5})
|
234
|
+
private_loan_get_collateral_ltv = privateLoanGetCollateralLtv = Entry('collateral/ltv', ['private', 'loan'], 'GET', {'cost': 1.5})
|
235
|
+
private_loan_get_collateral_currencies = privateLoanGetCollateralCurrencies = Entry('collateral/currencies', ['private', 'loan'], 'GET', {'cost': 1.5})
|
236
|
+
private_loan_post_collateral_orders = privateLoanPostCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'POST', {'cost': 1.5})
|
237
|
+
private_loan_post_collateral_repay = privateLoanPostCollateralRepay = Entry('collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.5})
|
238
|
+
private_loan_post_collateral_collaterals = privateLoanPostCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'POST', {'cost': 1.5})
|
216
239
|
private_account_get_detail = privateAccountGetDetail = Entry('detail', ['private', 'account'], 'GET', {'cost': 1.5})
|
217
240
|
private_account_get_stp_groups = privateAccountGetStpGroups = Entry('stp_groups', ['private', 'account'], 'GET', {'cost': 1.5})
|
218
241
|
private_account_get_stp_groups_stp_id_users = privateAccountGetStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'GET', {'cost': 1.5})
|
219
242
|
private_account_post_stp_groups = privateAccountPostStpGroups = Entry('stp_groups', ['private', 'account'], 'POST', {'cost': 1.5})
|
220
243
|
private_account_post_stp_groups_stp_id_users = privateAccountPostStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'POST', {'cost': 1.5})
|
244
|
+
private_account_delete_stp_groups_stp_id_users = privateAccountDeleteStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'DELETE', {'cost': 1.5})
|
221
245
|
private_rebate_get_agency_transaction_history = privateRebateGetAgencyTransactionHistory = Entry('agency/transaction_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
|
222
246
|
private_rebate_get_agency_commission_history = privateRebateGetAgencyCommissionHistory = Entry('agency/commission_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
|
@@ -80,6 +80,19 @@ class ImplicitAPI:
|
|
80
80
|
private_subaccounts_post_sub_accounts_user_id_unlock = privateSubAccountsPostSubAccountsUserIdUnlock = Entry('sub_accounts/{user_id}/unlock', ['private', 'subAccounts'], 'POST', {'cost': 1})
|
81
81
|
private_subaccounts_put_sub_accounts_user_id_keys_key = privateSubAccountsPutSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'PUT', {'cost': 1})
|
82
82
|
private_subaccounts_delete_sub_accounts_user_id_keys_key = privateSubAccountsDeleteSubAccountsUserIdKeysKey = Entry('sub_accounts/{user_id}/keys/{key}', ['private', 'subAccounts'], 'DELETE', {'cost': 1})
|
83
|
+
private_portfolio_get_accounts = privatePortfolioGetAccounts = Entry('accounts', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
84
|
+
private_portfolio_get_account_mode = privatePortfolioGetAccountMode = Entry('account_mode', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
85
|
+
private_portfolio_get_borrowable = privatePortfolioGetBorrowable = Entry('borrowable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
86
|
+
private_portfolio_get_transferable = privatePortfolioGetTransferable = Entry('transferable', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
87
|
+
private_portfolio_get_loans = privatePortfolioGetLoans = Entry('loans', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
88
|
+
private_portfolio_get_loan_records = privatePortfolioGetLoanRecords = Entry('loan_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
89
|
+
private_portfolio_get_interest_records = privatePortfolioGetInterestRecords = Entry('interest_records', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
90
|
+
private_portfolio_get_spot_orders = privatePortfolioGetSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
91
|
+
private_portfolio_get_spot_orders_order_id = privatePortfolioGetSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'GET', {'cost': 1.5})
|
92
|
+
private_portfolio_post_loans = privatePortfolioPostLoans = Entry('loans', ['private', 'portfolio'], 'POST', {'cost': 1.5})
|
93
|
+
private_portfolio_post_spot_orders = privatePortfolioPostSpotOrders = Entry('spot/orders', ['private', 'portfolio'], 'POST', {'cost': 1.5})
|
94
|
+
private_portfolio_delete_spot_orders_order_id = privatePortfolioDeleteSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'DELETE', {'cost': 1.5})
|
95
|
+
private_portfolio_patch_spot_orders_order_id = privatePortfolioPatchSpotOrdersOrderId = Entry('spot/orders/{order_id}', ['private', 'portfolio'], 'PATCH', {'cost': 1.5})
|
83
96
|
private_spot_get_fee = privateSpotGetFee = Entry('fee', ['private', 'spot'], 'GET', {'cost': 1})
|
84
97
|
private_spot_get_batch_fee = privateSpotGetBatchFee = Entry('batch_fee', ['private', 'spot'], 'GET', {'cost': 1})
|
85
98
|
private_spot_get_accounts = privateSpotGetAccounts = Entry('accounts', ['private', 'spot'], 'GET', {'cost': 1})
|
@@ -213,10 +226,21 @@ class ImplicitAPI:
|
|
213
226
|
private_earn_get_uni_interest_records = privateEarnGetUniInterestRecords = Entry('uni/interest_records', ['private', 'earn'], 'GET', {'cost': 1.5})
|
214
227
|
private_earn_post_uni_lends = privateEarnPostUniLends = Entry('uni/lends', ['private', 'earn'], 'POST', {'cost': 1.5})
|
215
228
|
private_earn_patch_uni_lends = privateEarnPatchUniLends = Entry('uni/lends', ['private', 'earn'], 'PATCH', {'cost': 1.5})
|
229
|
+
private_loan_get_collateral_orders = privateLoanGetCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'GET', {'cost': 1.5})
|
230
|
+
private_loan_get_collateral_orders_order_id = privateLoanGetCollateralOrdersOrderId = Entry('collateral/orders/{order_id}', ['private', 'loan'], 'GET', {'cost': 1.5})
|
231
|
+
private_loan_get_collateral_repay_records = privateLoanGetCollateralRepayRecords = Entry('collateral/repay_records', ['private', 'loan'], 'GET', {'cost': 1.5})
|
232
|
+
private_loan_get_collateral_collaterals = privateLoanGetCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'GET', {'cost': 1.5})
|
233
|
+
private_loan_get_collateral_total_amount = privateLoanGetCollateralTotalAmount = Entry('collateral/total_amount', ['private', 'loan'], 'GET', {'cost': 1.5})
|
234
|
+
private_loan_get_collateral_ltv = privateLoanGetCollateralLtv = Entry('collateral/ltv', ['private', 'loan'], 'GET', {'cost': 1.5})
|
235
|
+
private_loan_get_collateral_currencies = privateLoanGetCollateralCurrencies = Entry('collateral/currencies', ['private', 'loan'], 'GET', {'cost': 1.5})
|
236
|
+
private_loan_post_collateral_orders = privateLoanPostCollateralOrders = Entry('collateral/orders', ['private', 'loan'], 'POST', {'cost': 1.5})
|
237
|
+
private_loan_post_collateral_repay = privateLoanPostCollateralRepay = Entry('collateral/repay', ['private', 'loan'], 'POST', {'cost': 1.5})
|
238
|
+
private_loan_post_collateral_collaterals = privateLoanPostCollateralCollaterals = Entry('collateral/collaterals', ['private', 'loan'], 'POST', {'cost': 1.5})
|
216
239
|
private_account_get_detail = privateAccountGetDetail = Entry('detail', ['private', 'account'], 'GET', {'cost': 1.5})
|
217
240
|
private_account_get_stp_groups = privateAccountGetStpGroups = Entry('stp_groups', ['private', 'account'], 'GET', {'cost': 1.5})
|
218
241
|
private_account_get_stp_groups_stp_id_users = privateAccountGetStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'GET', {'cost': 1.5})
|
219
242
|
private_account_post_stp_groups = privateAccountPostStpGroups = Entry('stp_groups', ['private', 'account'], 'POST', {'cost': 1.5})
|
220
243
|
private_account_post_stp_groups_stp_id_users = privateAccountPostStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'POST', {'cost': 1.5})
|
244
|
+
private_account_delete_stp_groups_stp_id_users = privateAccountDeleteStpGroupsStpIdUsers = Entry('stp_groups/{stp_id}/users', ['private', 'account'], 'DELETE', {'cost': 1.5})
|
221
245
|
private_rebate_get_agency_transaction_history = privateRebateGetAgencyTransactionHistory = Entry('agency/transaction_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
|
222
246
|
private_rebate_get_agency_commission_history = privateRebateGetAgencyCommissionHistory = Entry('agency/commission_history', ['private', 'rebate'], 'GET', {'cost': 1.5})
|
@@ -60,6 +60,7 @@ class ImplicitAPI:
|
|
60
60
|
public_get_tradingbot_grid_ai_param = publicGetTradingBotGridAiParam = Entry('tradingBot/grid/ai-param', 'public', 'GET', {'cost': 1})
|
61
61
|
public_get_tradingbot_grid_min_investment = publicGetTradingBotGridMinInvestment = Entry('tradingBot/grid/min-investment', 'public', 'GET', {'cost': 1})
|
62
62
|
public_get_tradingbot_public_rsi_back_testing = publicGetTradingBotPublicRsiBackTesting = Entry('tradingBot/public/rsi-back-testing', 'public', 'GET', {'cost': 1})
|
63
|
+
public_get_asset_exchange_list = publicGetAssetExchangeList = Entry('asset/exchange-list', 'public', 'GET', {'cost': 1.6666666666666667})
|
63
64
|
public_get_finance_savings_lending_rate_summary = publicGetFinanceSavingsLendingRateSummary = Entry('finance/savings/lending-rate-summary', 'public', 'GET', {'cost': 1.6666666666666667})
|
64
65
|
public_get_finance_savings_lending_rate_history = publicGetFinanceSavingsLendingRateHistory = Entry('finance/savings/lending-rate-history', 'public', 'GET', {'cost': 1.6666666666666667})
|
65
66
|
public_get_finance_sfp_dcd_products = publicGetFinanceSfpDcdProducts = Entry('finance/sfp/dcd/products', 'public', 'GET', {'cost': 0.6666666666666666})
|
@@ -60,6 +60,7 @@ class ImplicitAPI:
|
|
60
60
|
public_get_tradingbot_grid_ai_param = publicGetTradingBotGridAiParam = Entry('tradingBot/grid/ai-param', 'public', 'GET', {'cost': 1})
|
61
61
|
public_get_tradingbot_grid_min_investment = publicGetTradingBotGridMinInvestment = Entry('tradingBot/grid/min-investment', 'public', 'GET', {'cost': 1})
|
62
62
|
public_get_tradingbot_public_rsi_back_testing = publicGetTradingBotPublicRsiBackTesting = Entry('tradingBot/public/rsi-back-testing', 'public', 'GET', {'cost': 1})
|
63
|
+
public_get_asset_exchange_list = publicGetAssetExchangeList = Entry('asset/exchange-list', 'public', 'GET', {'cost': 1.6666666666666667})
|
63
64
|
public_get_finance_savings_lending_rate_summary = publicGetFinanceSavingsLendingRateSummary = Entry('finance/savings/lending-rate-summary', 'public', 'GET', {'cost': 1.6666666666666667})
|
64
65
|
public_get_finance_savings_lending_rate_history = publicGetFinanceSavingsLendingRateHistory = Entry('finance/savings/lending-rate-history', 'public', 'GET', {'cost': 1.6666666666666667})
|
65
66
|
public_get_finance_sfp_dcd_products = publicGetFinanceSfpDcdProducts = Entry('finance/sfp/dcd/products', 'public', 'GET', {'cost': 0.6666666666666666})
|
@@ -60,6 +60,7 @@ class ImplicitAPI:
|
|
60
60
|
public_get_tradingbot_grid_ai_param = publicGetTradingBotGridAiParam = Entry('tradingBot/grid/ai-param', 'public', 'GET', {'cost': 1})
|
61
61
|
public_get_tradingbot_grid_min_investment = publicGetTradingBotGridMinInvestment = Entry('tradingBot/grid/min-investment', 'public', 'GET', {'cost': 1})
|
62
62
|
public_get_tradingbot_public_rsi_back_testing = publicGetTradingBotPublicRsiBackTesting = Entry('tradingBot/public/rsi-back-testing', 'public', 'GET', {'cost': 1})
|
63
|
+
public_get_asset_exchange_list = publicGetAssetExchangeList = Entry('asset/exchange-list', 'public', 'GET', {'cost': 1.6666666666666667})
|
63
64
|
public_get_finance_savings_lending_rate_summary = publicGetFinanceSavingsLendingRateSummary = Entry('finance/savings/lending-rate-summary', 'public', 'GET', {'cost': 1.6666666666666667})
|
64
65
|
public_get_finance_savings_lending_rate_history = publicGetFinanceSavingsLendingRateHistory = Entry('finance/savings/lending-rate-history', 'public', 'GET', {'cost': 1.6666666666666667})
|
65
66
|
public_get_finance_sfp_dcd_products = publicGetFinanceSfpDcdProducts = Entry('finance/sfp/dcd/products', 'public', 'GET', {'cost': 0.6666666666666666})
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.0.
|
5
|
+
__version__ = '4.0.78'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -2446,10 +2446,15 @@ class Exchange(BaseExchange):
|
|
2446
2446
|
networkItem = self.safe_value(networks, networkCode, {})
|
2447
2447
|
precision = self.safe_value(networkItem, 'precision', precision)
|
2448
2448
|
if precision is None:
|
2449
|
-
return fee
|
2449
|
+
return self.forceString(fee)
|
2450
2450
|
else:
|
2451
2451
|
return self.decimal_to_precision(fee, ROUND, precision, self.precisionMode, self.paddingMode)
|
2452
2452
|
|
2453
|
+
def force_string(self, value):
|
2454
|
+
if not isinstance(value, str):
|
2455
|
+
return self.number_to_string(value)
|
2456
|
+
return value
|
2457
|
+
|
2453
2458
|
def is_tick_precision(self):
|
2454
2459
|
return self.precisionMode == TICK_SIZE
|
2455
2460
|
|
@@ -108,6 +108,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
108
108
|
'market/trades': 3,
|
109
109
|
'market/depth': 3,
|
110
110
|
'market/kline': 3,
|
111
|
+
'ticker/24hr': 1,
|
111
112
|
},
|
112
113
|
},
|
113
114
|
'private': {
|
@@ -116,7 +117,6 @@ class bingx(Exchange, ImplicitAPI):
|
|
116
117
|
'trade/openOrders': 3,
|
117
118
|
'trade/historyOrders': 3,
|
118
119
|
'account/balance': 3,
|
119
|
-
'ticker/24hr': 1,
|
120
120
|
},
|
121
121
|
'post': {
|
122
122
|
'trade/order': 3,
|
@@ -274,6 +274,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
274
274
|
'500': ExchangeError,
|
275
275
|
'504': ExchangeError,
|
276
276
|
'100001': AuthenticationError,
|
277
|
+
'100412': AuthenticationError,
|
277
278
|
'100202': InsufficientFunds,
|
278
279
|
'100400': BadRequest,
|
279
280
|
'100440': ExchangeError,
|
@@ -1070,9 +1071,9 @@ class bingx(Exchange, ImplicitAPI):
|
|
1070
1071
|
}
|
1071
1072
|
response = None
|
1072
1073
|
if market['spot']:
|
1073
|
-
response = await self.
|
1074
|
+
response = await self.spotV1PublicGetTicker24hr(self.extend(request, params))
|
1074
1075
|
else:
|
1075
|
-
response = await self.
|
1076
|
+
response = await self.swapV2PublicGetQuoteTicker(self.extend(request, params))
|
1076
1077
|
#
|
1077
1078
|
# {
|
1078
1079
|
# "code": 0,
|
@@ -1094,7 +1095,8 @@ class bingx(Exchange, ImplicitAPI):
|
|
1094
1095
|
# }
|
1095
1096
|
#
|
1096
1097
|
data = self.safe_value(response, 'data')
|
1097
|
-
|
1098
|
+
ticker = self.safe_value(data, 0, data)
|
1099
|
+
return self.parse_ticker(ticker, market)
|
1098
1100
|
|
1099
1101
|
async def fetch_tickers(self, symbols: Optional[List[str]] = None, params={}):
|
1100
1102
|
"""
|
@@ -1105,13 +1107,18 @@ class bingx(Exchange, ImplicitAPI):
|
|
1105
1107
|
:returns dict: a dictionary of `ticker structures <https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure>`
|
1106
1108
|
"""
|
1107
1109
|
await self.load_markets()
|
1110
|
+
market = None
|
1108
1111
|
if symbols is not None:
|
1109
1112
|
symbols = self.market_symbols(symbols)
|
1110
1113
|
firstSymbol = self.safe_string(symbols, 0)
|
1111
1114
|
market = self.market(firstSymbol)
|
1112
|
-
|
1113
|
-
|
1114
|
-
response =
|
1115
|
+
type = None
|
1116
|
+
type, params = self.handle_market_type_and_params('fetchTickers', market, params)
|
1117
|
+
response = None
|
1118
|
+
if type == 'spot':
|
1119
|
+
response = await self.spotV1PublicGetTicker24hr(params)
|
1120
|
+
else:
|
1121
|
+
response = await self.swapV2PublicGetQuoteTicker(params)
|
1115
1122
|
#
|
1116
1123
|
# {
|
1117
1124
|
# "code": 0,
|
@@ -1138,6 +1145,20 @@ class bingx(Exchange, ImplicitAPI):
|
|
1138
1145
|
return self.parse_tickers(tickers, symbols)
|
1139
1146
|
|
1140
1147
|
def parse_ticker(self, ticker, market=None):
|
1148
|
+
#
|
1149
|
+
# spot
|
1150
|
+
# {
|
1151
|
+
# symbol: 'BTC-USDT',
|
1152
|
+
# openPrice: '26032.08',
|
1153
|
+
# highPrice: '26178.86',
|
1154
|
+
# lowPrice: '25968.18',
|
1155
|
+
# lastPrice: '26113.60',
|
1156
|
+
# volume: '1161.79',
|
1157
|
+
# quoteVolume: '30288466.44',
|
1158
|
+
# openTime: '1693081020762',
|
1159
|
+
# closeTime: '1693167420762'
|
1160
|
+
# }
|
1161
|
+
# swap
|
1141
1162
|
#
|
1142
1163
|
# {
|
1143
1164
|
# "symbol": "BTC-USDT",
|
@@ -1155,15 +1176,15 @@ class bingx(Exchange, ImplicitAPI):
|
|
1155
1176
|
# }
|
1156
1177
|
#
|
1157
1178
|
marketId = self.safe_string(ticker, 'symbol')
|
1158
|
-
|
1159
|
-
|
1179
|
+
change = self.safe_string(ticker, 'priceChange')
|
1180
|
+
type = 'spot' if (change is None) else 'swap'
|
1181
|
+
symbol = self.safe_symbol(marketId, market, None, type)
|
1160
1182
|
open = self.safe_string(ticker, 'openPrice')
|
1161
1183
|
high = self.safe_string(ticker, 'highPrice')
|
1162
1184
|
low = self.safe_string(ticker, 'lowPrice')
|
1163
1185
|
close = self.safe_string(ticker, 'lastPrice')
|
1164
1186
|
quoteVolume = self.safe_string(ticker, 'quoteVolume')
|
1165
1187
|
baseVolume = self.safe_string(ticker, 'volume')
|
1166
|
-
change = self.safe_string(ticker, 'chapriceChangenge')
|
1167
1188
|
percentage = self.safe_string(ticker, 'priceChangePercent')
|
1168
1189
|
ts = self.safe_integer(ticker, 'closeTime')
|
1169
1190
|
datetime = self.iso8601(ts)
|
@@ -2671,25 +2692,21 @@ class bingx(Exchange, ImplicitAPI):
|
|
2671
2692
|
self.parse_transaction(data)
|
2672
2693
|
|
2673
2694
|
def parse_params(self, params):
|
2674
|
-
result = ''
|
2675
2695
|
sortedParams = self.keysort(params)
|
2676
2696
|
keys = list(sortedParams.keys())
|
2677
2697
|
for i in range(0, len(keys)):
|
2678
2698
|
key = keys[i]
|
2679
|
-
if i > 0:
|
2680
|
-
result += '&'
|
2681
2699
|
value = sortedParams[key]
|
2682
2700
|
if isinstance(value, list):
|
2683
|
-
|
2701
|
+
arrStr = '['
|
2684
2702
|
for j in range(0, len(value)):
|
2685
2703
|
arrayElement = value[j]
|
2686
2704
|
if j > 0:
|
2687
|
-
|
2688
|
-
|
2689
|
-
|
2690
|
-
|
2691
|
-
|
2692
|
-
return result
|
2705
|
+
arrStr += ','
|
2706
|
+
arrStr += str(arrayElement)
|
2707
|
+
arrStr += ']'
|
2708
|
+
sortedParams[key] = arrStr
|
2709
|
+
return sortedParams
|
2693
2710
|
|
2694
2711
|
def sign(self, path, section='public', method='GET', params={}, headers=None, body=None):
|
2695
2712
|
type = section[0]
|
@@ -2706,13 +2723,15 @@ class bingx(Exchange, ImplicitAPI):
|
|
2706
2723
|
params = self.omit(params, self.extract_params(path))
|
2707
2724
|
params = self.keysort(params)
|
2708
2725
|
if access == 'public':
|
2726
|
+
params['timestamp'] = self.nonce()
|
2709
2727
|
if params:
|
2710
2728
|
url += '?' + self.urlencode(params)
|
2711
2729
|
elif access == 'private':
|
2712
2730
|
self.check_required_credentials()
|
2713
2731
|
params['timestamp'] = self.nonce()
|
2714
|
-
|
2715
|
-
|
2732
|
+
parsedParams = self.parse_params(params)
|
2733
|
+
query = self.urlencode(parsedParams)
|
2734
|
+
signature = self.hmac(self.encode(self.rawencode(parsedParams)), self.encode(self.secret), hashlib.sha256)
|
2716
2735
|
if params:
|
2717
2736
|
query = '?' + query + '&'
|
2718
2737
|
else:
|
@@ -298,6 +298,29 @@ class gate(Exchange, ImplicitAPI):
|
|
298
298
|
'sub_accounts/{user_id}/keys/{key}': 1,
|
299
299
|
},
|
300
300
|
},
|
301
|
+
'portfolio': {
|
302
|
+
'get': {
|
303
|
+
'accounts': 1.5,
|
304
|
+
'account_mode': 1.5,
|
305
|
+
'borrowable': 1.5,
|
306
|
+
'transferable': 1.5,
|
307
|
+
'loans': 1.5,
|
308
|
+
'loan_records': 1.5,
|
309
|
+
'interest_records': 1.5,
|
310
|
+
'spot/orders': 1.5,
|
311
|
+
'spot/orders/{order_id}': 1.5,
|
312
|
+
},
|
313
|
+
'post': {
|
314
|
+
'loans': 1.5,
|
315
|
+
'spot/orders': 1.5,
|
316
|
+
},
|
317
|
+
'delete': {
|
318
|
+
'spot/orders/{order_id}': 1.5,
|
319
|
+
},
|
320
|
+
'patch': {
|
321
|
+
'spot/orders/{order_id}': 1.5,
|
322
|
+
},
|
323
|
+
},
|
301
324
|
'spot': {
|
302
325
|
'get': {
|
303
326
|
'fee': 1,
|
@@ -491,6 +514,22 @@ class gate(Exchange, ImplicitAPI):
|
|
491
514
|
'uni/lends': 1.5,
|
492
515
|
},
|
493
516
|
},
|
517
|
+
'loan': {
|
518
|
+
'get': {
|
519
|
+
'collateral/orders': 1.5,
|
520
|
+
'collateral/orders/{order_id}': 1.5,
|
521
|
+
'collateral/repay_records': 1.5,
|
522
|
+
'collateral/collaterals': 1.5,
|
523
|
+
'collateral/total_amount': 1.5,
|
524
|
+
'collateral/ltv': 1.5,
|
525
|
+
'collateral/currencies': 1.5,
|
526
|
+
},
|
527
|
+
'post': {
|
528
|
+
'collateral/orders': 1.5,
|
529
|
+
'collateral/repay': 1.5,
|
530
|
+
'collateral/collaterals': 1.5,
|
531
|
+
},
|
532
|
+
},
|
494
533
|
'account': {
|
495
534
|
'get': {
|
496
535
|
'detail': 1.5,
|
@@ -501,6 +540,9 @@ class gate(Exchange, ImplicitAPI):
|
|
501
540
|
'stp_groups': 1.5,
|
502
541
|
'stp_groups/{stp_id}/users': 1.5,
|
503
542
|
},
|
543
|
+
'delete': {
|
544
|
+
'stp_groups/{stp_id}/users': 1.5,
|
545
|
+
},
|
504
546
|
},
|
505
547
|
'rebate': {
|
506
548
|
'get': {
|
@@ -1098,7 +1098,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
1098
1098
|
'size': preciseAmount,
|
1099
1099
|
'leverage': 1,
|
1100
1100
|
}
|
1101
|
-
triggerPrice, stopLossPrice, takeProfitPrice = self.
|
1101
|
+
triggerPrice, stopLossPrice, takeProfitPrice = self.handle_trigger_prices(params)
|
1102
1102
|
params = self.omit(params, ['stopLossPrice', 'takeProfitPrice', 'triggerPrice', 'stopPrice'])
|
1103
1103
|
if triggerPrice:
|
1104
1104
|
request['stop'] = 'up' if (side == 'buy') else 'down'
|
@@ -246,6 +246,7 @@ class okx(Exchange, ImplicitAPI):
|
|
246
246
|
'tradingBot/grid/ai-param': 1,
|
247
247
|
'tradingBot/grid/min-investment': 1,
|
248
248
|
'tradingBot/public/rsi-back-testing': 1,
|
249
|
+
'asset/exchange-list': 5 / 3,
|
249
250
|
'finance/savings/lending-rate-summary': 5 / 3,
|
250
251
|
'finance/savings/lending-rate-history': 5 / 3,
|
251
252
|
# public broker
|
@@ -268,6 +268,7 @@ class whitebit(Exchange, ImplicitAPI):
|
|
268
268
|
'422': OrderNotFound, # {"response":null,"status":422,"errors":{"orderId":["Finished order id 1295772653 not found on your account"]},"notification":null,"warning":"Finished order id 1295772653 not found on your account","_token":null}
|
269
269
|
},
|
270
270
|
'broad': {
|
271
|
+
'This action is unauthorized': PermissionDenied, # {"code":2,"message":"This action is unauthorized. Enable your key in API settings"}
|
271
272
|
'Given amount is less than min amount': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Given amount is less than min amount 200000"],"total":["Total is less than 5.05"]}}
|
272
273
|
'Total is less than': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Given amount is less than min amount 200000"],"total":["Total is less than 5.05"]}}
|
273
274
|
'fee must be no less than': InvalidOrder, # {"code":0,"message":"Validation failed","errors":{"amount":["Total amount + fee must be no less than 5.05505"]}}
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.0.
|
7
|
+
__version__ = '4.0.78'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -3626,10 +3626,15 @@ class Exchange(object):
|
|
3626
3626
|
networkItem = self.safe_value(networks, networkCode, {})
|
3627
3627
|
precision = self.safe_value(networkItem, 'precision', precision)
|
3628
3628
|
if precision is None:
|
3629
|
-
return fee
|
3629
|
+
return self.forceString(fee)
|
3630
3630
|
else:
|
3631
3631
|
return self.decimal_to_precision(fee, ROUND, precision, self.precisionMode, self.paddingMode)
|
3632
3632
|
|
3633
|
+
def force_string(self, value):
|
3634
|
+
if not isinstance(value, str):
|
3635
|
+
return self.number_to_string(value)
|
3636
|
+
return value
|
3637
|
+
|
3633
3638
|
def is_tick_precision(self):
|
3634
3639
|
return self.precisionMode == TICK_SIZE
|
3635
3640
|
|