ccxt 4.3.15__tar.gz → 4.3.17__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.3.15/ccxt.egg-info → ccxt-4.3.17}/PKG-INFO +4 -4
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/__init__.py +1 -1
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/alpaca.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/ascendex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/alpaca.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/ascendex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/exchange.py +18 -13
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/binance.py +10 -9
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bingx.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitmex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bybit.py +11 -7
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinbaseinternational.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinmetro.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/cryptocom.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/currencycom.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/deribit.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/gate.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/gemini.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/hitbtc.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/hollaex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/hyperliquid.py +4 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/idex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/krakenfutures.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/ndax.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/okx.py +19 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/phemex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/poloniex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/probit.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/wavesexchange.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/woo.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/zaif.py +1 -1
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/base/exchange.py +18 -13
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/binance.py +10 -9
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bingx.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitmex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bybit.py +11 -7
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinbaseinternational.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinmetro.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/cryptocom.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/currencycom.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/deribit.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/gate.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/gemini.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/hitbtc.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/hollaex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/hyperliquid.py +4 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/idex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/krakenfutures.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/ndax.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/okx.py +19 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/phemex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/poloniex.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitfinex2.py +2 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitget.py +3 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bybit.py +3 -3
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/htx.py +2 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/independentreserve.py +2 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/kraken.py +2 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/okx.py +22 -18
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/probit.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/wavesexchange.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/woo.py +1 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/zaif.py +1 -1
- {ccxt-4.3.15 → ccxt-4.3.17/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.3.15 → ccxt-4.3.17}/package.json +1 -1
- {ccxt-4.3.15 → ccxt-4.3.17}/LICENSE.txt +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/MANIFEST.in +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/README.rst +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinbaseinternational.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/ace.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/blofin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/base/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/base/errors.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/base/precise.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/base/types.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bequant.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bigone.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/binanceus.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bit2c.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitbank.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitbay.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitbns.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitfinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitflyer.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitget.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bithumb.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitmart.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitopro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitpanda.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitrue.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitso.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitstamp.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitteam.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bitvavo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/bl3p.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/blofin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/btcalpha.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/btcbox.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/btcturk.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/cex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinbase.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coincheck.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinlist.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinmate.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinone.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinsph.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/coinspot.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/delta.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/digifinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/exmo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/fmfwio.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/gateio.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/htx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/huobi.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/huobijp.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/independentreserve.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/indodax.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/kraken.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/kucoin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/kuna.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/latoken.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/lbank.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/luno.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/lykke.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/mercado.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/mexc.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/novadax.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/oceanex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/okcoin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/onetrading.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/p2b.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/paymium.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/binance.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bithumb.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/cex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/coinbaseinternational.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/gate.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/hyperliquid.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/idex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/luno.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/probit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/pro/woo.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_last_price.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_margin_mode.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/test_async.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/test/test_sync.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/timex.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/tradeogre.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/upbit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/wazirx.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/whitebit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/yobit.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt/zonda.py +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/setup.cfg +0 -0
- {ccxt-4.3.15 → ccxt-4.3.17}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.17
|
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
|
@@ -226,13 +226,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
226
226
|
|
227
227
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
228
228
|
|
229
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
230
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
229
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.17/dist/ccxt.browser.js
|
230
|
+
* unpkg: https://unpkg.com/ccxt@4.3.17/dist/ccxt.browser.js
|
231
231
|
|
232
232
|
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.
|
233
233
|
|
234
234
|
```HTML
|
235
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
235
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.17/dist/ccxt.browser.js"></script>
|
236
236
|
```
|
237
237
|
|
238
238
|
Creates a global `ccxt` object:
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.3.
|
5
|
+
__version__ = '4.3.17'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -1775,18 +1775,19 @@ class Exchange(BaseExchange):
|
|
1775
1775
|
maxRetries = None
|
1776
1776
|
maxRetries, params = self.handle_option_and_params(params, method, 'maxRetries', 3)
|
1777
1777
|
errors = 0
|
1778
|
-
|
1779
|
-
|
1780
|
-
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
|
1786
|
-
|
1787
|
-
|
1788
|
-
|
1789
|
-
|
1778
|
+
while(errors <= maxRetries):
|
1779
|
+
try:
|
1780
|
+
if timeframe and method != 'fetchFundingRateHistory':
|
1781
|
+
return await getattr(self, method)(symbol, timeframe, since, limit, params)
|
1782
|
+
else:
|
1783
|
+
return await getattr(self, method)(symbol, since, limit, params)
|
1784
|
+
except Exception as e:
|
1785
|
+
if isinstance(e, RateLimitExceeded):
|
1786
|
+
raise e # if we are rate limited, we should not retry and fail fast
|
1787
|
+
errors += 1
|
1788
|
+
if errors > maxRetries:
|
1789
|
+
raise e
|
1790
|
+
return []
|
1790
1791
|
|
1791
1792
|
async def fetch_paginated_call_deterministic(self, method: str, symbol: Str = None, since: Int = None, limit: Int = None, timeframe: Str = None, params={}, maxEntriesPerRequest=None):
|
1792
1793
|
maxCalls = None
|
@@ -1799,6 +1800,8 @@ class Exchange(BaseExchange):
|
|
1799
1800
|
currentSince = current - (maxCalls * step) - 1
|
1800
1801
|
if since is not None:
|
1801
1802
|
currentSince = max(currentSince, since)
|
1803
|
+
else:
|
1804
|
+
currentSince = max(currentSince, 1241440531000) # avoid timestamps older than 2009
|
1802
1805
|
until = self.safe_integer_2(params, 'until', 'till') # do not omit it here
|
1803
1806
|
if until is not None:
|
1804
1807
|
requiredCalls = int(math.ceil((until - since)) / step)
|
@@ -1807,6 +1810,8 @@ class Exchange(BaseExchange):
|
|
1807
1810
|
for i in range(0, maxCalls):
|
1808
1811
|
if (until is not None) and (currentSince >= until):
|
1809
1812
|
break
|
1813
|
+
if currentSince >= current:
|
1814
|
+
break
|
1810
1815
|
tasks.append(self.safe_deterministic_call(method, symbol, currentSince, maxEntriesPerRequest, timeframe, params))
|
1811
1816
|
currentSince = self.sum(currentSince, step) - 1
|
1812
1817
|
results = await asyncio.gather(*tasks)
|
@@ -178,6 +178,7 @@ class binance(Exchange, ImplicitAPI):
|
|
178
178
|
'reduceMargin': True,
|
179
179
|
'repayCrossMargin': True,
|
180
180
|
'repayIsolatedMargin': True,
|
181
|
+
'sandbox': True,
|
181
182
|
'setLeverage': True,
|
182
183
|
'setMargin': False,
|
183
184
|
'setMarginMode': True,
|
@@ -2611,7 +2612,7 @@ class binance(Exchange, ImplicitAPI):
|
|
2611
2612
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2612
2613
|
:returns dict: an associative dictionary of currencies
|
2613
2614
|
"""
|
2614
|
-
fetchCurrenciesEnabled = self.
|
2615
|
+
fetchCurrenciesEnabled = self.safe_bool(self.options, 'fetchCurrencies')
|
2615
2616
|
if not fetchCurrenciesEnabled:
|
2616
2617
|
return None
|
2617
2618
|
# self endpoint requires authentication
|
@@ -4398,7 +4399,7 @@ class binance(Exchange, ImplicitAPI):
|
|
4398
4399
|
market = self.safe_market(marketId, market, None, marketType)
|
4399
4400
|
symbol = market['symbol']
|
4400
4401
|
side = None
|
4401
|
-
buyerMaker = self.
|
4402
|
+
buyerMaker = self.safe_bool_2(trade, 'm', 'isBuyerMaker')
|
4402
4403
|
takerOrMaker = None
|
4403
4404
|
if buyerMaker is not None:
|
4404
4405
|
side = 'sell' if buyerMaker else 'buy' # self is reversed intentionally
|
@@ -4674,14 +4675,14 @@ class binance(Exchange, ImplicitAPI):
|
|
4674
4675
|
uppercaseType = 'STOP_LOSS'
|
4675
4676
|
elif uppercaseType == 'LIMIT':
|
4676
4677
|
uppercaseType = 'STOP_LOSS_LIMIT'
|
4677
|
-
validOrderTypes = self.
|
4678
|
+
validOrderTypes = self.safe_list(market['info'], 'orderTypes')
|
4678
4679
|
if not self.in_array(uppercaseType, validOrderTypes):
|
4679
4680
|
if initialUppercaseType != uppercaseType:
|
4680
4681
|
raise InvalidOrder(self.id + ' stopPrice parameter is not allowed for ' + symbol + ' ' + type + ' orders')
|
4681
4682
|
else:
|
4682
4683
|
raise InvalidOrder(self.id + ' ' + type + ' is not a valid order type for the ' + symbol + ' market')
|
4683
4684
|
if clientOrderId is None:
|
4684
|
-
broker = self.
|
4685
|
+
broker = self.safe_dict(self.options, 'broker')
|
4685
4686
|
if broker is not None:
|
4686
4687
|
brokerId = self.safe_string(broker, 'spot')
|
4687
4688
|
if brokerId is not None:
|
@@ -7149,7 +7150,7 @@ class binance(Exchange, ImplicitAPI):
|
|
7149
7150
|
if until is not None:
|
7150
7151
|
request['endTime'] = until
|
7151
7152
|
raw = await self.sapiGetFiatOrders(self.extend(request, params))
|
7152
|
-
response = self.
|
7153
|
+
response = self.safe_list(raw, 'data', [])
|
7153
7154
|
# {
|
7154
7155
|
# "code": "000000",
|
7155
7156
|
# "message": "success",
|
@@ -7251,7 +7252,7 @@ class binance(Exchange, ImplicitAPI):
|
|
7251
7252
|
if since is not None:
|
7252
7253
|
request['beginTime'] = since
|
7253
7254
|
raw = await self.sapiGetFiatOrders(self.extend(request, params))
|
7254
|
-
response = self.
|
7255
|
+
response = self.safe_list(raw, 'data', [])
|
7255
7256
|
# {
|
7256
7257
|
# "code": "000000",
|
7257
7258
|
# "message": "success",
|
@@ -7458,7 +7459,7 @@ class binance(Exchange, ImplicitAPI):
|
|
7458
7459
|
txType = self.safe_string(transaction, 'transactionType')
|
7459
7460
|
if txType is not None:
|
7460
7461
|
type = 'deposit' if (txType == '0') else 'withdrawal'
|
7461
|
-
legalMoneyCurrenciesById = self.
|
7462
|
+
legalMoneyCurrenciesById = self.safe_dict(self.options, 'legalMoneyCurrenciesById')
|
7462
7463
|
code = self.safe_string(legalMoneyCurrenciesById, code, code)
|
7463
7464
|
status = self.parse_transaction_status_by_type(self.safe_string(transaction, 'status'), type)
|
7464
7465
|
amount = self.safe_number(transaction, 'amount')
|
@@ -7772,7 +7773,7 @@ class binance(Exchange, ImplicitAPI):
|
|
7772
7773
|
if subLevel is not None:
|
7773
7774
|
topLevel = topLevel + '/' + subLevel
|
7774
7775
|
impliedNetwork = self.safe_string(reverseNetworks, topLevel)
|
7775
|
-
impliedNetworks = self.
|
7776
|
+
impliedNetworks = self.safe_dict(self.options, 'impliedNetworks', {
|
7776
7777
|
'ETH': {'ERC20': 'ETH'},
|
7777
7778
|
'TRX': {'TRC20': 'TRX'},
|
7778
7779
|
})
|
@@ -8980,7 +8981,7 @@ class binance(Exchange, ImplicitAPI):
|
|
8980
8981
|
await self.load_markets()
|
8981
8982
|
# by default cache the leverage bracket
|
8982
8983
|
# it contains useful stuff like the maintenance margin and initial margin for positions
|
8983
|
-
leverageBrackets = self.
|
8984
|
+
leverageBrackets = self.safe_dict(self.options, 'leverageBrackets', {})
|
8984
8985
|
if (leverageBrackets is None) or (reload):
|
8985
8986
|
defaultType = self.safe_string(self.options, 'defaultType', 'future')
|
8986
8987
|
type = self.safe_string(params, 'type', defaultType)
|
@@ -134,6 +134,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
134
134
|
'fetchVolatilityHistory': True,
|
135
135
|
'fetchWithdrawals': True,
|
136
136
|
'repayCrossMargin': True,
|
137
|
+
'sandbox': True,
|
137
138
|
'setLeverage': True,
|
138
139
|
'setMarginMode': True,
|
139
140
|
'setPositionMode': True,
|
@@ -1469,6 +1470,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
1469
1470
|
# "quoteCoin": "USDT",
|
1470
1471
|
# "innovation": "0",
|
1471
1472
|
# "status": "Trading",
|
1473
|
+
# "marginTrading": "both",
|
1472
1474
|
# "lotSizeFilter": {
|
1473
1475
|
# "basePrecision": "0.000001",
|
1474
1476
|
# "quotePrecision": "0.00000001",
|
@@ -1505,7 +1507,9 @@ class bybit(Exchange, ImplicitAPI):
|
|
1505
1507
|
lotSizeFilter = self.safe_dict(market, 'lotSizeFilter')
|
1506
1508
|
priceFilter = self.safe_dict(market, 'priceFilter')
|
1507
1509
|
quotePrecision = self.safe_number(lotSizeFilter, 'quotePrecision')
|
1508
|
-
|
1510
|
+
marginTrading = self.safe_string(market, 'marginTrading', 'none')
|
1511
|
+
allowsMargin = marginTrading != 'none'
|
1512
|
+
result.append(self.safe_market_structure({
|
1509
1513
|
'id': id,
|
1510
1514
|
'symbol': symbol,
|
1511
1515
|
'base': base,
|
@@ -1516,7 +1520,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
1516
1520
|
'settleId': None,
|
1517
1521
|
'type': 'spot',
|
1518
1522
|
'spot': True,
|
1519
|
-
'margin':
|
1523
|
+
'margin': allowsMargin,
|
1520
1524
|
'swap': False,
|
1521
1525
|
'future': False,
|
1522
1526
|
'option': False,
|
@@ -1555,7 +1559,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
1555
1559
|
},
|
1556
1560
|
'created': None,
|
1557
1561
|
'info': market,
|
1558
|
-
})
|
1562
|
+
}))
|
1559
1563
|
return result
|
1560
1564
|
|
1561
1565
|
async def fetch_future_markets(self, params):
|
@@ -1668,7 +1672,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
1668
1672
|
if expiry is not None:
|
1669
1673
|
symbol = symbol + '-' + self.yymmdd(expiry)
|
1670
1674
|
contractSize = self.safe_number_2(lotSizeFilter, 'minTradingQty', 'minOrderQty') if inverse else self.parse_number('1')
|
1671
|
-
result.append({
|
1675
|
+
result.append(self.safe_market_structure({
|
1672
1676
|
'id': id,
|
1673
1677
|
'symbol': symbol,
|
1674
1678
|
'base': base,
|
@@ -1718,7 +1722,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
1718
1722
|
},
|
1719
1723
|
'created': self.safe_integer(market, 'launchTime'),
|
1720
1724
|
'info': market,
|
1721
|
-
})
|
1725
|
+
}))
|
1722
1726
|
return result
|
1723
1727
|
|
1724
1728
|
async def fetch_option_markets(self, params):
|
@@ -1796,7 +1800,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
1796
1800
|
optionLetter = self.safe_string(splitId, 3)
|
1797
1801
|
isActive = (status == 'Trading')
|
1798
1802
|
if isActive or (self.options['loadAllOptions']) or (self.options['loadExpiredOptions']):
|
1799
|
-
result.append({
|
1803
|
+
result.append(self.safe_market_structure({
|
1800
1804
|
'id': id,
|
1801
1805
|
'symbol': base + '/' + quote + ':' + settle + '-' + self.yymmdd(expiry) + '-' + strike + '-' + optionLetter,
|
1802
1806
|
'base': base,
|
@@ -1846,7 +1850,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
1846
1850
|
},
|
1847
1851
|
'created': self.safe_integer(market, 'launchTime'),
|
1848
1852
|
'info': market,
|
1849
|
-
})
|
1853
|
+
}))
|
1850
1854
|
return result
|
1851
1855
|
|
1852
1856
|
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
@@ -114,6 +114,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
114
114
|
'reduceMargin': True,
|
115
115
|
'repayCrossMargin': False,
|
116
116
|
'repayIsolatedMargin': False,
|
117
|
+
'sandbox': True,
|
117
118
|
'setLeverage': True,
|
118
119
|
'setMarginMode': True,
|
119
120
|
'setPositionMode': False,
|
@@ -443,6 +444,9 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
443
444
|
for i in range(0, len(meta)):
|
444
445
|
market = self.safe_dict(meta, i, {})
|
445
446
|
marketName = self.safe_string(market, 'name')
|
447
|
+
if marketName.find('/') < 0:
|
448
|
+
# there are some weird spot markets in testnet, eg @2
|
449
|
+
continue
|
446
450
|
marketParts = marketName.split('/')
|
447
451
|
baseName = self.safe_string(marketParts, 0)
|
448
452
|
quoteId = self.safe_string(marketParts, 1)
|
@@ -26,6 +26,7 @@ from ccxt.base.errors import CancelPending
|
|
26
26
|
from ccxt.base.errors import ContractUnavailable
|
27
27
|
from ccxt.base.errors import NotSupported
|
28
28
|
from ccxt.base.errors import NetworkError
|
29
|
+
from ccxt.base.errors import DDoSProtection
|
29
30
|
from ccxt.base.errors import RateLimitExceeded
|
30
31
|
from ccxt.base.errors import ExchangeNotAvailable
|
31
32
|
from ccxt.base.errors import OnMaintenance
|
@@ -162,6 +163,7 @@ class okx(Exchange, ImplicitAPI):
|
|
162
163
|
'fetchWithdrawalWhitelist': False,
|
163
164
|
'reduceMargin': True,
|
164
165
|
'repayCrossMargin': True,
|
166
|
+
'sandbox': True,
|
165
167
|
'setLeverage': True,
|
166
168
|
'setMargin': False,
|
167
169
|
'setMarginMode': True,
|
@@ -912,7 +914,24 @@ class okx(Exchange, ImplicitAPI):
|
|
912
914
|
'60017': BadRequest, # Invalid url path
|
913
915
|
'60018': BadRequest, # The {0} {1} {2} {3} {4} does not exist
|
914
916
|
'60019': BadRequest, # Invalid op {op}
|
917
|
+
'60020': ExchangeError, # APIKey subscription amount exceeds the limit
|
918
|
+
'60021': AccountNotEnabled, # This operation does not support multiple accounts login
|
919
|
+
'60022': AuthenticationError, # Bulk login partially succeeded
|
920
|
+
'60023': DDoSProtection, # Bulk login requests too frequent
|
921
|
+
'60024': AuthenticationError, # Wrong passphrase
|
922
|
+
'60025': ExchangeError, # Token subscription amount exceeds the limit
|
923
|
+
'60026': AuthenticationError, # Batch login by APIKey and token simultaneously is not supported
|
924
|
+
'60027': ArgumentsRequired, # Parameter {0} can not be empty
|
925
|
+
'60028': NotSupported, # The current operation is not supported by self URL
|
926
|
+
'60029': AccountNotEnabled, # Only users who are VIP5 and above in trading fee tier are allowed to subscribe to books-l2-tbt channel
|
927
|
+
'60030': AccountNotEnabled, # Only users who are VIP4 and above in trading fee tier are allowed to subscribe to books50-l2-tbt channel
|
928
|
+
'60031': AuthenticationError, # The WebSocket endpoint does not support multiple account batch login,
|
929
|
+
'60032': AuthenticationError, # API key doesn't exist,
|
915
930
|
'63999': ExchangeError, # Internal system error
|
931
|
+
'64000': BadRequest, # Subscription parameter uly is unavailable anymore, please replace uly with instFamily. More details can refer to: https://www.okx.com/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url,
|
932
|
+
'64001': BadRequest, # This channel has been migrated to the business URL. Please subscribe using the new URL. More details can refer to: https://www.okx.com/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url,
|
933
|
+
'64002': BadRequest, # This channel is not supported by business URL. Please use "/private" URL(for private channels), or "/public" URL(for public channels). More details can refer to: https://www.okx.com/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url,
|
934
|
+
'64003': AccountNotEnabled, # Your trading fee tier doesnt meet the requirement to access self channel
|
916
935
|
'70010': BadRequest, # Timestamp parameters need to be in Unix timestamp format in milliseconds.
|
917
936
|
'70013': BadRequest, # endTs needs to be bigger than or equal to beginTs.
|
918
937
|
'70016': BadRequest, # Please specify your instrument settings for at least one instType.
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.3.
|
7
|
+
__version__ = '4.3.17'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -5468,18 +5468,19 @@ class Exchange(object):
|
|
5468
5468
|
maxRetries = None
|
5469
5469
|
maxRetries, params = self.handle_option_and_params(params, method, 'maxRetries', 3)
|
5470
5470
|
errors = 0
|
5471
|
-
|
5472
|
-
|
5473
|
-
|
5474
|
-
|
5475
|
-
|
5476
|
-
|
5477
|
-
|
5478
|
-
|
5479
|
-
|
5480
|
-
|
5481
|
-
|
5482
|
-
|
5471
|
+
while(errors <= maxRetries):
|
5472
|
+
try:
|
5473
|
+
if timeframe and method != 'fetchFundingRateHistory':
|
5474
|
+
return getattr(self, method)(symbol, timeframe, since, limit, params)
|
5475
|
+
else:
|
5476
|
+
return getattr(self, method)(symbol, since, limit, params)
|
5477
|
+
except Exception as e:
|
5478
|
+
if isinstance(e, RateLimitExceeded):
|
5479
|
+
raise e # if we are rate limited, we should not retry and fail fast
|
5480
|
+
errors += 1
|
5481
|
+
if errors > maxRetries:
|
5482
|
+
raise e
|
5483
|
+
return []
|
5483
5484
|
|
5484
5485
|
def fetch_paginated_call_deterministic(self, method: str, symbol: Str = None, since: Int = None, limit: Int = None, timeframe: Str = None, params={}, maxEntriesPerRequest=None):
|
5485
5486
|
maxCalls = None
|
@@ -5492,6 +5493,8 @@ class Exchange(object):
|
|
5492
5493
|
currentSince = current - (maxCalls * step) - 1
|
5493
5494
|
if since is not None:
|
5494
5495
|
currentSince = max(currentSince, since)
|
5496
|
+
else:
|
5497
|
+
currentSince = max(currentSince, 1241440531000) # avoid timestamps older than 2009
|
5495
5498
|
until = self.safe_integer_2(params, 'until', 'till') # do not omit it here
|
5496
5499
|
if until is not None:
|
5497
5500
|
requiredCalls = int(math.ceil((until - since)) / step)
|
@@ -5500,6 +5503,8 @@ class Exchange(object):
|
|
5500
5503
|
for i in range(0, maxCalls):
|
5501
5504
|
if (until is not None) and (currentSince >= until):
|
5502
5505
|
break
|
5506
|
+
if currentSince >= current:
|
5507
|
+
break
|
5503
5508
|
tasks.append(self.safe_deterministic_call(method, symbol, currentSince, maxEntriesPerRequest, timeframe, params))
|
5504
5509
|
currentSince = self.sum(currentSince, step) - 1
|
5505
5510
|
results = tasks
|