ccxt 4.3.55__tar.gz → 4.3.57__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.55/ccxt.egg-info → ccxt-4.3.57}/PKG-INFO +4 -6
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/__init__.py +1 -1
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bingx.py +16 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/exchange.py +19 -3
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/client.py +25 -5
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/binance.py +7 -7
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bingx.py +78 -7
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitflyer.py +7 -1
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitget.py +56 -47
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitopro.py +18 -3
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/btcmarkets.py +27 -26
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bybit.py +8 -5
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinone.py +15 -19
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/delta.py +5 -1
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/gate.py +97 -2
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/htx.py +84 -25
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/huobijp.py +61 -2
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/hyperliquid.py +1 -1
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/lbank.py +27 -6
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/base/exchange.py +19 -3
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/binance.py +7 -7
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bingx.py +78 -7
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitflyer.py +7 -1
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitget.py +56 -47
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitopro.py +18 -3
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/btcmarkets.py +27 -26
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bybit.py +8 -5
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinone.py +15 -19
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/delta.py +5 -1
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/gate.py +97 -2
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/htx.py +84 -25
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/huobijp.py +61 -2
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/hyperliquid.py +1 -1
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/lbank.py +27 -6
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.3.55 → ccxt-4.3.57/ccxt.egg-info}/PKG-INFO +4 -6
- {ccxt-4.3.55 → ccxt-4.3.57}/package.json +7 -3
- {ccxt-4.3.55 → ccxt-4.3.57}/LICENSE.txt +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/MANIFEST.in +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/README.rst +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinbaseadvanced.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinbaseexchange.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinbaseinternational.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/oxfun.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/vertex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/woofipro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/xt.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/ace.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/alpaca.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/ascendex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/blofin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinbaseadvanced.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinbaseexchange.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinbaseinternational.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/oxfun.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/vertex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/woofipro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/xt.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/base/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/base/errors.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/base/precise.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/base/types.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bequant.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bigone.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/binanceus.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bit2c.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitbank.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitbay.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitbns.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitfinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bithumb.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitmart.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitmex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitpanda.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitrue.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitso.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitstamp.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitteam.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bitvavo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/bl3p.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/blofin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/btcalpha.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/btcbox.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/btcturk.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/cex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinbase.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinbaseadvanced.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinbaseexchange.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinbaseinternational.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coincheck.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinlist.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinmate.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinmetro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinsph.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/coinspot.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/cryptocom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/currencycom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/deribit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/digifinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/exmo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/fmfwio.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/gateio.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/gemini.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/hitbtc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/hollaex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/huobi.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/idex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/independentreserve.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/indodax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/kraken.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/kucoin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/kuna.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/latoken.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/luno.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/lykke.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/mercado.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/mexc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/ndax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/novadax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/oceanex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/okcoin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/okx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/onetrading.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/oxfun.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/p2b.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/paymium.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/phemex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/poloniex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/binance.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bithumb.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/cex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/coinbaseexchange.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/coinbaseinternational.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/gate.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/htx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/hyperliquid.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/idex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/luno.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/okx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/oxfun.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/probit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/vertex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/woo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/pro/woofipro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/probit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/test/__init__.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/test/tests_async.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/test/tests_helpers.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/test/tests_init.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/test/tests_sync.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/timex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/tradeogre.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/upbit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/vertex.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/wazirx.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/whitebit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/woo.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/woofipro.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/xt.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/yobit.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/zaif.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt/zonda.py +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/setup.cfg +0 -0
- {ccxt-4.3.55 → ccxt-4.3.57}/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.57
|
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
|
@@ -60,8 +60,6 @@ Current feature list:
|
|
60
60
|
|
61
61
|
## Sponsored Promotion
|
62
62
|
|
63
|
-
[](https://www.bitmex.com/app/register/NZTR1q)
|
64
|
-
|
65
63
|
## See Also
|
66
64
|
|
67
65
|
- <sub>[](https://tab-trader.com/?utm_source=ccxt)</sub> **[TabTrader](https://tab-trader.com/?utm_source=ccxt)** – trading on all exchanges in one app. Available on **[Android](https://play.google.com/store/apps/details?id=com.tabtrader.android&referrer=utm_source%3Dccxt)** and **[iOS](https://itunes.apple.com/app/apple-store/id1095716562?mt=8)**!
|
@@ -259,13 +257,13 @@ console.log(version, Object.keys(exchanges));
|
|
259
257
|
|
260
258
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
261
259
|
|
262
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
263
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
260
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.57/dist/ccxt.browser.min.js
|
261
|
+
* unpkg: https://unpkg.com/ccxt@4.3.57/dist/ccxt.browser.min.js
|
264
262
|
|
265
263
|
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.
|
266
264
|
|
267
265
|
```HTML
|
268
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
266
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.57/dist/ccxt.browser.min.js"></script>
|
269
267
|
```
|
270
268
|
|
271
269
|
Creates a global `ccxt` object:
|
@@ -76,6 +76,22 @@ class ImplicitAPI:
|
|
76
76
|
swap_v2_private_delete_trade_batchorders = swapV2PrivateDeleteTradeBatchOrders = Entry('trade/batchOrders', ['swap', 'v2', 'private'], 'DELETE', {'cost': 2})
|
77
77
|
swap_v2_private_delete_trade_allopenorders = swapV2PrivateDeleteTradeAllOpenOrders = Entry('trade/allOpenOrders', ['swap', 'v2', 'private'], 'DELETE', {'cost': 2})
|
78
78
|
swap_v3_public_get_quote_klines = swapV3PublicGetQuoteKlines = Entry('quote/klines', ['swap', 'v3', 'public'], 'GET', {'cost': 1})
|
79
|
+
cswap_v1_public_get_market_contracts = cswapV1PublicGetMarketContracts = Entry('market/contracts', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
|
80
|
+
cswap_v1_public_get_market_premiumindex = cswapV1PublicGetMarketPremiumIndex = Entry('market/premiumIndex', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
|
81
|
+
cswap_v1_public_get_market_openinterest = cswapV1PublicGetMarketOpenInterest = Entry('market/openInterest', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
|
82
|
+
cswap_v1_public_get_market_klines = cswapV1PublicGetMarketKlines = Entry('market/klines', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
|
83
|
+
cswap_v1_public_get_market_depth = cswapV1PublicGetMarketDepth = Entry('market/depth', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
|
84
|
+
cswap_v1_public_get_market_ticker = cswapV1PublicGetMarketTicker = Entry('market/ticker', ['cswap', 'v1', 'public'], 'GET', {'cost': 1})
|
85
|
+
cswap_v1_private_get_trade_leverage = cswapV1PrivateGetTradeLeverage = Entry('trade/leverage', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
|
86
|
+
cswap_v1_private_get_trade_forceorders = cswapV1PrivateGetTradeForceOrders = Entry('trade/forceOrders', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
|
87
|
+
cswap_v1_private_get_trade_allfillorders = cswapV1PrivateGetTradeAllFillOrders = Entry('trade/allFillOrders', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
|
88
|
+
cswap_v1_private_get_user_commissionrate = cswapV1PrivateGetUserCommissionRate = Entry('user/commissionRate', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
|
89
|
+
cswap_v1_private_get_user_positions = cswapV1PrivateGetUserPositions = Entry('user/positions', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
|
90
|
+
cswap_v1_private_get_user_balance = cswapV1PrivateGetUserBalance = Entry('user/balance', ['cswap', 'v1', 'private'], 'GET', {'cost': 2})
|
91
|
+
cswap_v1_private_post_trade_order = cswapV1PrivatePostTradeOrder = Entry('trade/order', ['cswap', 'v1', 'private'], 'POST', {'cost': 2})
|
92
|
+
cswap_v1_private_post_trade_leverage = cswapV1PrivatePostTradeLeverage = Entry('trade/leverage', ['cswap', 'v1', 'private'], 'POST', {'cost': 2})
|
93
|
+
cswap_v1_private_post_trade_allopenorders = cswapV1PrivatePostTradeAllOpenOrders = Entry('trade/allOpenOrders', ['cswap', 'v1', 'private'], 'POST', {'cost': 2})
|
94
|
+
cswap_v1_private_post_trade_closeallpositions = cswapV1PrivatePostTradeCloseAllPositions = Entry('trade/closeAllPositions', ['cswap', 'v1', 'private'], 'POST', {'cost': 2})
|
79
95
|
contract_v1_private_get_allposition = contractV1PrivateGetAllPosition = Entry('allPosition', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
|
80
96
|
contract_v1_private_get_allorders = contractV1PrivateGetAllOrders = Entry('allOrders', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
|
81
97
|
contract_v1_private_get_balance = contractV1PrivateGetBalance = Entry('balance', ['contract', 'v1', 'private'], 'GET', {'cost': 2})
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.3.
|
5
|
+
__version__ = '4.3.57'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -24,7 +24,7 @@ from ccxt.async_support.base.throttler import Throttler
|
|
24
24
|
|
25
25
|
# -----------------------------------------------------------------------------
|
26
26
|
|
27
|
-
from ccxt.base.errors import BaseError, BadSymbol, BadRequest, BadResponse, ExchangeError, ExchangeNotAvailable, RequestTimeout, NotSupported, NullResponse, InvalidAddress, RateLimitExceeded
|
27
|
+
from ccxt.base.errors import BaseError, NetworkError, BadSymbol, BadRequest, BadResponse, ExchangeError, ExchangeNotAvailable, RequestTimeout, NotSupported, NullResponse, InvalidAddress, RateLimitExceeded
|
28
28
|
from ccxt.base.types import OrderType, OrderSide, OrderRequest, CancellationRequest
|
29
29
|
|
30
30
|
# -----------------------------------------------------------------------------
|
@@ -826,7 +826,23 @@ class Exchange(BaseExchange):
|
|
826
826
|
self.last_request_headers = request['headers']
|
827
827
|
self.last_request_body = request['body']
|
828
828
|
self.last_request_url = request['url']
|
829
|
-
|
829
|
+
retries = None
|
830
|
+
retries, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailure', 0)
|
831
|
+
retryDelay = None
|
832
|
+
retryDelay, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailureDelay', 0)
|
833
|
+
for i in range(0, retries + 1):
|
834
|
+
try:
|
835
|
+
return await self.fetch(request['url'], request['method'], request['headers'], request['body'])
|
836
|
+
except Exception as e:
|
837
|
+
if isinstance(e, NetworkError):
|
838
|
+
if i < retries:
|
839
|
+
if self.verbose:
|
840
|
+
self.log('Request failed with the error: ' + str(e) + ', retrying ' + (i + str(1)) + ' of ' + str(retries) + '...')
|
841
|
+
if (retryDelay is not None) and (retryDelay != 0):
|
842
|
+
await self.sleep(retryDelay)
|
843
|
+
continue
|
844
|
+
raise e
|
845
|
+
return None # self line is never reached, but exists for c# value return requirement
|
830
846
|
|
831
847
|
async def request(self, path, api: Any = 'public', method='GET', params={}, headers: Any = None, body: Any = None, config={}):
|
832
848
|
return await self.fetch2(path, api, method, params, headers, body, config)
|
@@ -4,7 +4,7 @@ from asyncio import sleep, ensure_future, wait_for, TimeoutError
|
|
4
4
|
from .functions import milliseconds, iso8601, deep_extend
|
5
5
|
from ccxt import NetworkError, RequestTimeout, NotSupported
|
6
6
|
from ccxt.async_support.base.ws.future import Future
|
7
|
-
|
7
|
+
from collections import deque
|
8
8
|
|
9
9
|
class Client(object):
|
10
10
|
|
@@ -14,6 +14,8 @@ class Client(object):
|
|
14
14
|
options = {} # ws-specific options
|
15
15
|
subscriptions = {}
|
16
16
|
rejections = {}
|
17
|
+
message_queue = {}
|
18
|
+
useMessageQueue = True
|
17
19
|
on_message_callback = None
|
18
20
|
on_error_callback = None
|
19
21
|
on_close_callback = None
|
@@ -68,15 +70,32 @@ class Client(object):
|
|
68
70
|
if message_hash in self.rejections:
|
69
71
|
future.reject(self.rejections[message_hash])
|
70
72
|
del self.rejections[message_hash]
|
73
|
+
del self.message_queue[message_hash]
|
74
|
+
return future
|
75
|
+
if self.useMessageQueue and message_hash in self.message_queue:
|
76
|
+
queue = self.message_queue[message_hash]
|
77
|
+
if len(queue):
|
78
|
+
future.resolve(queue.popleft())
|
71
79
|
return future
|
72
80
|
|
73
81
|
def resolve(self, result, message_hash):
|
74
82
|
if self.verbose and message_hash is None:
|
75
83
|
self.log(iso8601(milliseconds()), 'resolve received None messageHash')
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
84
|
+
|
85
|
+
if self.useMessageQueue:
|
86
|
+
if message_hash not in self.message_queue:
|
87
|
+
self.message_queue[message_hash] = deque(maxlen=10)
|
88
|
+
queue = self.message_queue[message_hash]
|
89
|
+
queue.append(result)
|
90
|
+
if message_hash in self.futures:
|
91
|
+
future = self.futures[message_hash]
|
92
|
+
future.resolve(queue.popleft())
|
93
|
+
del self.futures[message_hash]
|
94
|
+
else:
|
95
|
+
if message_hash in self.futures:
|
96
|
+
future = self.futures[message_hash]
|
97
|
+
future.resolve(result)
|
98
|
+
del self.futures[message_hash]
|
80
99
|
return result
|
81
100
|
|
82
101
|
def reject(self, result, message_hash=None):
|
@@ -165,6 +184,7 @@ class Client(object):
|
|
165
184
|
ensure_future(self.close(code), loop=self.asyncio_loop)
|
166
185
|
|
167
186
|
def reset(self, error):
|
187
|
+
self.message_queue = {}
|
168
188
|
self.reject(error)
|
169
189
|
|
170
190
|
async def ping_loop(self):
|
@@ -1567,7 +1567,7 @@ class binance(Exchange, ImplicitAPI):
|
|
1567
1567
|
'-3042': BadRequest, # {"code":-3042,"msg":"PriceIndex not available for self margin pair."}
|
1568
1568
|
'-3043': PermissionDenied, # {"code":-3043,"msg":"Transferring in not allowed."}
|
1569
1569
|
'-3044': OperationFailed, # {"code":-3044,"msg":"System busy."}
|
1570
|
-
'-3045':
|
1570
|
+
'-3045': OperationRejected, # {"code":-3045,"msg":"The system doesn't have enough asset now."}
|
1571
1571
|
'-3999': PermissionDenied, # {"code":-3999,"msg":"This function is only available for invited users."}
|
1572
1572
|
#
|
1573
1573
|
# 4xxx(different from contract markets)
|
@@ -1586,7 +1586,7 @@ class binance(Exchange, ImplicitAPI):
|
|
1586
1586
|
'-4011': BadRequest, # {"code":-4011 ,"msg":"White list mail is invalid."}
|
1587
1587
|
'-4012': PermissionDenied, # {"code":-4012 ,"msg":"White list is not opened."}
|
1588
1588
|
'-4013': AuthenticationError, # {"code":-4013 ,"msg":"2FA is not opened."}
|
1589
|
-
'-4014':
|
1589
|
+
'-4014': OperationRejected, # {"code":-4014 ,"msg":"Withdraw is not allowed within 2 min login."}
|
1590
1590
|
'-4015': PermissionDenied, # {"code":-4015 ,"msg":"Withdraw is limited."}
|
1591
1591
|
'-4016': PermissionDenied, # {"code":-4016 ,"msg":"Within 24 hours after password modification, withdrawal is prohibited."}
|
1592
1592
|
'-4017': PermissionDenied, # {"code":-4017 ,"msg":"Within 24 hours after the release of 2FA, withdrawal is prohibited."}
|
@@ -1595,7 +1595,7 @@ class binance(Exchange, ImplicitAPI):
|
|
1595
1595
|
'-4020': ExchangeError, # override commons
|
1596
1596
|
'-4021': BadRequest, # {"code":-4021,"msg":"Asset withdrawal must be an %s multiple of %s."}
|
1597
1597
|
'-4022': BadRequest, # {"code":-4022,"msg":"Not less than the minimum pick-up quantity %s."}
|
1598
|
-
'-4023':
|
1598
|
+
'-4023': OperationRejected, # {"code":-4023,"msg":"Within 24 hours, the withdrawal exceeds the maximum amount."}
|
1599
1599
|
'-4024': InsufficientFunds, # {"code":-4024,"msg":"You don't have self asset."}
|
1600
1600
|
'-4025': InsufficientFunds, # {"code":-4025,"msg":"The number of hold asset is less than zero."}
|
1601
1601
|
'-4026': InsufficientFunds, # {"code":-4026,"msg":"You have insufficient balance."}
|
@@ -1604,7 +1604,7 @@ class binance(Exchange, ImplicitAPI):
|
|
1604
1604
|
'-4029': BadRequest, # {"code":-4029,"msg":"The withdrawal record does not exist."}
|
1605
1605
|
'-4030': BadResponse, # {"code":-4030,"msg":"Confirmation of successful asset withdrawal. [TODO] possible bug in docs"}
|
1606
1606
|
'-4031': OperationFailed, # {"code":-4031,"msg":"Cancellation failed."}
|
1607
|
-
'-4032':
|
1607
|
+
'-4032': OperationRejected, # {"code":-4032,"msg":"Withdraw verification exception."}
|
1608
1608
|
'-4033': BadRequest, # {"code":-4033,"msg":"Illegal address."}
|
1609
1609
|
'-4034': OperationRejected, # {"code":-4034,"msg":"The address is suspected of fake."}
|
1610
1610
|
'-4035': PermissionDenied, # {"code":-4035,"msg":"This address is not on the whitelist. Please join and try again."}
|
@@ -1727,7 +1727,7 @@ class binance(Exchange, ImplicitAPI):
|
|
1727
1727
|
'-5003': InsufficientFunds, # You don't have self asset.
|
1728
1728
|
'-5004': OperationRejected, # The residual balances of %s have exceeded 0.001BTC, Please re-choose.
|
1729
1729
|
'-5005': OperationRejected, # The residual balances of %s is too low, Please re-choose.
|
1730
|
-
'-5006':
|
1730
|
+
'-5006': OperationRejected, # Only transfer once in 24 hours.
|
1731
1731
|
'-5007': BadRequest, # Quantity must be greater than zero.
|
1732
1732
|
'-5008': OperationRejected, # Insufficient amount of returnable assets.
|
1733
1733
|
'-5009': BadSymbol, # Product does not exist.
|
@@ -1745,8 +1745,8 @@ class binance(Exchange, ImplicitAPI):
|
|
1745
1745
|
'-6004': BadRequest, # Product not in purchase status
|
1746
1746
|
'-6005': BadRequest, # Smaller than min purchase limit
|
1747
1747
|
'-6006': BadRequest, # Redeem amount error
|
1748
|
-
'-6007':
|
1749
|
-
'-6008':
|
1748
|
+
'-6007': OperationRejected, # Not in redeem time
|
1749
|
+
'-6008': OperationRejected, # Product not in redeem status
|
1750
1750
|
'-6009': RateLimitExceeded, # Request frequency too high
|
1751
1751
|
'-6011': OperationRejected, # Exceeding the maximum num allowed to purchase per user
|
1752
1752
|
'-6012': InsufficientFunds, # Balance not enough
|
@@ -116,6 +116,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
116
116
|
'subAccount': 'https://open-api.{hostname}/openApi',
|
117
117
|
'account': 'https://open-api.{hostname}/openApi',
|
118
118
|
'copyTrading': 'https://open-api.{hostname}/openApi',
|
119
|
+
'cswap': 'https://open-api.{hostname}/openApi',
|
119
120
|
},
|
120
121
|
'test': {
|
121
122
|
'swap': 'https://open-api-vst.{hostname}/openApi', # only swap is really "test" but since the API keys are the same, we want to keep all the functionalities when the user enables the sandboxmode
|
@@ -278,6 +279,36 @@ class bingx(Exchange, ImplicitAPI):
|
|
278
279
|
},
|
279
280
|
},
|
280
281
|
},
|
282
|
+
'cswap': {
|
283
|
+
'v1': {
|
284
|
+
'public': {
|
285
|
+
'get': {
|
286
|
+
'market/contracts': 1,
|
287
|
+
'market/premiumIndex': 1,
|
288
|
+
'market/openInterest': 1,
|
289
|
+
'market/klines': 1,
|
290
|
+
'market/depth': 1,
|
291
|
+
'market/ticker': 1,
|
292
|
+
},
|
293
|
+
},
|
294
|
+
'private': {
|
295
|
+
'get': {
|
296
|
+
'trade/leverage': 2,
|
297
|
+
'trade/forceOrders': 2,
|
298
|
+
'trade/allFillOrders': 2,
|
299
|
+
'user/commissionRate': 2,
|
300
|
+
'user/positions': 2,
|
301
|
+
'user/balance': 2,
|
302
|
+
},
|
303
|
+
'post': {
|
304
|
+
'trade/order': 2,
|
305
|
+
'trade/leverage': 2,
|
306
|
+
'trade/allOpenOrders': 2,
|
307
|
+
'trade/closeAllPositions': 2,
|
308
|
+
},
|
309
|
+
},
|
310
|
+
},
|
311
|
+
},
|
281
312
|
'contract': {
|
282
313
|
'v1': {
|
283
314
|
'private': {
|
@@ -644,6 +675,29 @@ class bingx(Exchange, ImplicitAPI):
|
|
644
675
|
markets = self.safe_list(response, 'data', [])
|
645
676
|
return self.parse_markets(markets)
|
646
677
|
|
678
|
+
async def fetch_inverse_swap_markets(self, params):
|
679
|
+
response = await self.cswapV1PublicGetMarketContracts(params)
|
680
|
+
#
|
681
|
+
# {
|
682
|
+
# "code": 0,
|
683
|
+
# "msg": "",
|
684
|
+
# "timestamp": 1720074487610,
|
685
|
+
# "data": [
|
686
|
+
# {
|
687
|
+
# "symbol": "BNB-USD",
|
688
|
+
# "pricePrecision": 2,
|
689
|
+
# "minTickSize": "10",
|
690
|
+
# "minTradeValue": "10",
|
691
|
+
# "minQty": "1.00000000",
|
692
|
+
# "status": 1,
|
693
|
+
# "timeOnline": 1713175200000
|
694
|
+
# },
|
695
|
+
# ]
|
696
|
+
# }
|
697
|
+
#
|
698
|
+
markets = self.safe_list(response, 'data', [])
|
699
|
+
return self.parse_markets(markets)
|
700
|
+
|
647
701
|
def parse_market(self, market: dict) -> Market:
|
648
702
|
id = self.safe_string(market, 'symbol')
|
649
703
|
symbolParts = id.split('-')
|
@@ -652,6 +706,14 @@ class bingx(Exchange, ImplicitAPI):
|
|
652
706
|
base = self.safe_currency_code(baseId)
|
653
707
|
quote = self.safe_currency_code(quoteId)
|
654
708
|
currency = self.safe_string(market, 'currency')
|
709
|
+
checkIsInverse = False
|
710
|
+
checkIsLinear = True
|
711
|
+
minTickSize = self.safe_number(market, 'minTickSize')
|
712
|
+
if minTickSize is not None:
|
713
|
+
# inverse swap market
|
714
|
+
currency = baseId
|
715
|
+
checkIsInverse = True
|
716
|
+
checkIsLinear = False
|
655
717
|
settle = self.safe_currency_code(currency)
|
656
718
|
pricePrecision = self.safe_number(market, 'tickSize')
|
657
719
|
if pricePrecision is None:
|
@@ -668,8 +730,11 @@ class bingx(Exchange, ImplicitAPI):
|
|
668
730
|
fees = self.safe_dict(self.fees, type, {})
|
669
731
|
contractSize = self.parse_number('1') if (swap) else None
|
670
732
|
isActive = self.safe_string(market, 'status') == '1'
|
671
|
-
isInverse = None if (spot) else
|
672
|
-
isLinear = None if (spot) else
|
733
|
+
isInverse = None if (spot) else checkIsInverse
|
734
|
+
isLinear = None if (spot) else checkIsLinear
|
735
|
+
timeOnline = self.safe_integer(market, 'timeOnline')
|
736
|
+
if timeOnline == 0:
|
737
|
+
timeOnline = None
|
673
738
|
return self.safe_market_structure({
|
674
739
|
'id': id,
|
675
740
|
'symbol': symbol,
|
@@ -711,15 +776,15 @@ class bingx(Exchange, ImplicitAPI):
|
|
711
776
|
'max': self.safe_number(market, 'maxQty'),
|
712
777
|
},
|
713
778
|
'price': {
|
714
|
-
'min':
|
779
|
+
'min': minTickSize,
|
715
780
|
'max': None,
|
716
781
|
},
|
717
782
|
'cost': {
|
718
|
-
'min': self.
|
783
|
+
'min': self.safe_number_n(market, ['minNotional', 'tradeMinUSDT', 'minTradeValue']),
|
719
784
|
'max': self.safe_number(market, 'maxNotional'),
|
720
785
|
},
|
721
786
|
},
|
722
|
-
'created':
|
787
|
+
'created': timeOnline,
|
723
788
|
'info': market,
|
724
789
|
})
|
725
790
|
|
@@ -728,16 +793,20 @@ class bingx(Exchange, ImplicitAPI):
|
|
728
793
|
retrieves data on all markets for bingx
|
729
794
|
:see: https://bingx-api.github.io/docs/#/spot/market-api.html#Query%20Symbols
|
730
795
|
:see: https://bingx-api.github.io/docs/#/swapV2/market-api.html#Contract%20Information
|
796
|
+
:see: https://bingx-api.github.io/docs/#/en-us/cswap/market-api.html#Contract%20Information
|
731
797
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
732
798
|
:returns dict[]: an array of objects representing market data
|
733
799
|
"""
|
734
800
|
requests = [self.fetch_swap_markets(params)]
|
735
801
|
isSandbox = self.safe_bool(self.options, 'sandboxMode', False)
|
736
802
|
if not isSandbox:
|
803
|
+
requests.append(self.fetch_inverse_swap_markets(params))
|
737
804
|
requests.append(self.fetch_spot_markets(params)) # sandbox is swap only
|
738
805
|
promises = await asyncio.gather(*requests)
|
739
|
-
|
740
|
-
|
806
|
+
linearSwapMarkets = self.safe_list(promises, 0, [])
|
807
|
+
inverseSwapMarkets = self.safe_list(promises, 1, [])
|
808
|
+
spotMarkets = self.safe_list(promises, 2, [])
|
809
|
+
swapMarkets = self.array_concat(linearSwapMarkets, inverseSwapMarkets)
|
741
810
|
return self.array_concat(spotMarkets, swapMarkets)
|
742
811
|
|
743
812
|
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
@@ -1466,6 +1535,8 @@ class bingx(Exchange, ImplicitAPI):
|
|
1466
1535
|
percentage = percentage.replace('%', '')
|
1467
1536
|
change = self.safe_string(ticker, 'priceChange')
|
1468
1537
|
ts = self.safe_integer(ticker, 'closeTime')
|
1538
|
+
if ts == 0:
|
1539
|
+
ts = None
|
1469
1540
|
datetime = self.iso8601(ts)
|
1470
1541
|
bid = self.safe_string(ticker, 'bidPrice')
|
1471
1542
|
bidVolume = self.safe_string(ticker, 'bidQty')
|
@@ -566,7 +566,13 @@ class bitflyer(Exchange, ImplicitAPI):
|
|
566
566
|
'product_code': self.market_id(symbol),
|
567
567
|
'child_order_acceptance_id': id,
|
568
568
|
}
|
569
|
-
|
569
|
+
response = await self.privatePostCancelchildorder(self.extend(request, params))
|
570
|
+
#
|
571
|
+
# 200 OK.
|
572
|
+
#
|
573
|
+
return self.safe_order({
|
574
|
+
'info': response,
|
575
|
+
})
|
570
576
|
|
571
577
|
def parse_order_status(self, status: Str):
|
572
578
|
statuses: dict = {
|
@@ -4692,6 +4692,22 @@ class bitget(Exchange, ImplicitAPI):
|
|
4692
4692
|
response = await self.privateMarginPostMarginV1CrossOrderBatchCancelOrder(self.extend(request, params))
|
4693
4693
|
else:
|
4694
4694
|
response = await self.privateMarginPostMarginV1IsolatedOrderBatchCancelOrder(self.extend(request, params))
|
4695
|
+
#
|
4696
|
+
# {
|
4697
|
+
# "code": "00000",
|
4698
|
+
# "msg": "success",
|
4699
|
+
# "requestTime": 1700717155622,
|
4700
|
+
# "data": {
|
4701
|
+
# "resultList": [
|
4702
|
+
# {
|
4703
|
+
# "orderId": "1111453253721796609",
|
4704
|
+
# "clientOid": "2ae7fc8a4ff949b6b60d770ca3950e2d"
|
4705
|
+
# },
|
4706
|
+
# ],
|
4707
|
+
# "failure": []
|
4708
|
+
# }
|
4709
|
+
# }
|
4710
|
+
#
|
4695
4711
|
else:
|
4696
4712
|
if stop:
|
4697
4713
|
stopRequest: dict = {
|
@@ -4700,6 +4716,27 @@ class bitget(Exchange, ImplicitAPI):
|
|
4700
4716
|
response = await self.privateSpotPostV2SpotTradeBatchCancelPlanOrder(self.extend(stopRequest, params))
|
4701
4717
|
else:
|
4702
4718
|
response = await self.privateSpotPostV2SpotTradeCancelSymbolOrder(self.extend(request, params))
|
4719
|
+
#
|
4720
|
+
# {
|
4721
|
+
# "code": "00000",
|
4722
|
+
# "msg": "success",
|
4723
|
+
# "requestTime": 1700716953996,
|
4724
|
+
# "data": {
|
4725
|
+
# "symbol": "BTCUSDT"
|
4726
|
+
# }
|
4727
|
+
# }
|
4728
|
+
#
|
4729
|
+
timestamp = self.safe_integer(response, 'requestTime')
|
4730
|
+
responseData = self.safe_dict(response, 'data')
|
4731
|
+
marketId = self.safe_string(responseData, 'symbol')
|
4732
|
+
return [
|
4733
|
+
self.safe_order({
|
4734
|
+
'info': response,
|
4735
|
+
'symbol': self.safe_symbol(marketId, None, None, 'spot'),
|
4736
|
+
'timestamp': timestamp,
|
4737
|
+
'datetime': self.iso8601(timestamp),
|
4738
|
+
}),
|
4739
|
+
]
|
4703
4740
|
else:
|
4704
4741
|
productType = None
|
4705
4742
|
productType, params = self.handle_product_type_and_params(market, params)
|
@@ -4708,53 +4745,25 @@ class bitget(Exchange, ImplicitAPI):
|
|
4708
4745
|
response = await self.privateMixPostV2MixOrderCancelPlanOrder(self.extend(request, params))
|
4709
4746
|
else:
|
4710
4747
|
response = await self.privateMixPostV2MixOrderBatchCancelOrders(self.extend(request, params))
|
4711
|
-
|
4712
|
-
|
4713
|
-
|
4714
|
-
|
4715
|
-
|
4716
|
-
|
4717
|
-
|
4718
|
-
|
4719
|
-
|
4720
|
-
|
4721
|
-
|
4722
|
-
|
4723
|
-
|
4724
|
-
|
4725
|
-
|
4726
|
-
|
4727
|
-
|
4728
|
-
|
4729
|
-
|
4730
|
-
# "successList": [
|
4731
|
-
# {
|
4732
|
-
# "orderId": "1024598257429823488",
|
4733
|
-
# "clientOid": "876493ce-c287-4bfc-9f4a-8b1905881313"
|
4734
|
-
# },
|
4735
|
-
# ],
|
4736
|
-
# "failureList": []
|
4737
|
-
# }
|
4738
|
-
# }
|
4739
|
-
#
|
4740
|
-
# spot margin
|
4741
|
-
#
|
4742
|
-
# {
|
4743
|
-
# "code": "00000",
|
4744
|
-
# "msg": "success",
|
4745
|
-
# "requestTime": 1700717155622,
|
4746
|
-
# "data": {
|
4747
|
-
# "resultList": [
|
4748
|
-
# {
|
4749
|
-
# "orderId": "1111453253721796609",
|
4750
|
-
# "clientOid": "2ae7fc8a4ff949b6b60d770ca3950e2d"
|
4751
|
-
# },
|
4752
|
-
# ],
|
4753
|
-
# "failure": []
|
4754
|
-
# }
|
4755
|
-
# }
|
4756
|
-
#
|
4757
|
-
return response
|
4748
|
+
# {
|
4749
|
+
# "code": "00000",
|
4750
|
+
# "msg": "success",
|
4751
|
+
# "requestTime": "1680008815965",
|
4752
|
+
# "data": {
|
4753
|
+
# "successList": [
|
4754
|
+
# {
|
4755
|
+
# "orderId": "1024598257429823488",
|
4756
|
+
# "clientOid": "876493ce-c287-4bfc-9f4a-8b1905881313"
|
4757
|
+
# },
|
4758
|
+
# ],
|
4759
|
+
# "failureList": []
|
4760
|
+
# }
|
4761
|
+
# }
|
4762
|
+
data = self.safe_dict(response, 'data')
|
4763
|
+
resultList = self.safe_list_2(data, 'resultList', 'successList')
|
4764
|
+
failureList = self.safe_list_2(data, 'failure', 'failureList')
|
4765
|
+
responseList = self.array_concat(resultList, failureList)
|
4766
|
+
return self.parse_orders(responseList)
|
4758
4767
|
|
4759
4768
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
4760
4769
|
"""
|
@@ -1038,6 +1038,20 @@ class bitopro(Exchange, ImplicitAPI):
|
|
1038
1038
|
#
|
1039
1039
|
return self.parse_order(response, market)
|
1040
1040
|
|
1041
|
+
def parse_cancel_orders(self, data):
|
1042
|
+
dataKeys = list(data.keys())
|
1043
|
+
orders = []
|
1044
|
+
for i in range(0, len(dataKeys)):
|
1045
|
+
marketId = dataKeys[i]
|
1046
|
+
orderIds = data[marketId]
|
1047
|
+
for j in range(0, len(orderIds)):
|
1048
|
+
orders.append(self.safe_order({
|
1049
|
+
'info': orderIds[j],
|
1050
|
+
'id': orderIds[j],
|
1051
|
+
'symbol': self.safe_symbol(marketId),
|
1052
|
+
}))
|
1053
|
+
return orders
|
1054
|
+
|
1041
1055
|
async def cancel_orders(self, ids, symbol: Str = None, params={}):
|
1042
1056
|
"""
|
1043
1057
|
cancel multiple orders
|
@@ -1065,7 +1079,8 @@ class bitopro(Exchange, ImplicitAPI):
|
|
1065
1079
|
# }
|
1066
1080
|
# }
|
1067
1081
|
#
|
1068
|
-
|
1082
|
+
data = self.safe_dict(response, 'data')
|
1083
|
+
return self.parse_cancel_orders(data)
|
1069
1084
|
|
1070
1085
|
async def cancel_all_orders(self, symbol: Str = None, params={}):
|
1071
1086
|
"""
|
@@ -1086,7 +1101,7 @@ class bitopro(Exchange, ImplicitAPI):
|
|
1086
1101
|
response = await self.privateDeleteOrdersPair(self.extend(request, params))
|
1087
1102
|
else:
|
1088
1103
|
response = await self.privateDeleteOrdersAll(self.extend(request, params))
|
1089
|
-
|
1104
|
+
data = self.safe_value(response, 'data', {})
|
1090
1105
|
#
|
1091
1106
|
# {
|
1092
1107
|
# "data":{
|
@@ -1097,7 +1112,7 @@ class bitopro(Exchange, ImplicitAPI):
|
|
1097
1112
|
# }
|
1098
1113
|
# }
|
1099
1114
|
#
|
1100
|
-
return
|
1115
|
+
return self.parse_cancel_orders(data)
|
1101
1116
|
|
1102
1117
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
1103
1118
|
"""
|