ccxt 4.3.69__tar.gz → 4.3.70__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ccxt-4.3.69/ccxt.egg-info → ccxt-4.3.70}/PKG-INFO +5 -5
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/__init__.py +1 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinbaseinternational.py +1 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/blofin.py +63 -6
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bybit.py +1 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinbaseinternational.py +155 -2
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/cryptocom.py +12 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/poloniex.py +1 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/base/exchange.py +6 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/blofin.py +63 -6
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bybit.py +1 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinbaseinternational.py +155 -2
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/cryptocom.py +12 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/poloniex.py +1 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/__init__.py +3 -1
- ccxt-4.3.70/ccxt/pro/blofin.py +608 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/coinbaseinternational.py +142 -11
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/cryptocom.py +4 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/hitbtc.py +20 -8
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/okx.py +6 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/poloniex.py +32 -10
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/woo.py +5 -4
- {ccxt-4.3.69 → ccxt-4.3.70/ccxt.egg-info}/PKG-INFO +5 -5
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt.egg-info/SOURCES.txt +1 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/package.json +1 -1
- {ccxt-4.3.69 → ccxt-4.3.70}/LICENSE.txt +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/MANIFEST.in +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/README.rst +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinbaseadvanced.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinbaseexchange.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/oxfun.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/vertex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/woofipro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/xt.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/ace.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/alpaca.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/ascendex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinbaseadvanced.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinbaseexchange.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/hyperliquid.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/oxfun.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/vertex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/woofipro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/xt.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/base/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/base/errors.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/base/precise.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/base/types.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bequant.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bigone.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/binance.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/binanceus.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bingx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bit2c.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitbank.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitbay.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitbns.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitfinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitflyer.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitget.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bithumb.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitmart.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitmex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitopro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitpanda.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitrue.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitso.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitstamp.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitteam.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bitvavo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/bl3p.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/btcalpha.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/btcbox.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/btcturk.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/cex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinbase.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinbaseadvanced.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinbaseexchange.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coincheck.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinlist.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinmate.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinmetro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinone.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinsph.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/coinspot.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/currencycom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/delta.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/deribit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/digifinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/exmo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/fmfwio.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/gate.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/gateio.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/gemini.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/hitbtc.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/hollaex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/htx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/huobi.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/huobijp.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/hyperliquid.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/idex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/independentreserve.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/indodax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/kraken.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/kucoin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/kuna.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/latoken.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/lbank.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/luno.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/lykke.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/mercado.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/mexc.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/ndax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/novadax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/oceanex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/okcoin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/okx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/onetrading.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/oxfun.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/p2b.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/paymium.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/phemex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/binance.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bithumb.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/cex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/coinbaseexchange.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/gate.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/htx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/hyperliquid.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/idex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/luno.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/oxfun.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/probit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/vertex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/woofipro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/pro/xt.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/probit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/test/__init__.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/test/tests_async.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/test/tests_helpers.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/test/tests_init.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/test/tests_sync.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/timex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/tradeogre.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/upbit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/vertex.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/wazirx.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/whitebit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/woo.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/woofipro.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/xt.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/yobit.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/zaif.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt/zonda.py +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/setup.cfg +0 -0
- {ccxt-4.3.69 → ccxt-4.3.70}/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.70
|
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
|
@@ -128,7 +128,7 @@ The CCXT library currently supports the following 101 cryptocurrency exchange ma
|
|
128
128
|
| [](https://bitvavo.com/?a=24F34952F7) | bitvavo | [Bitvavo](https://bitvavo.com/?a=24F34952F7) | [](https://docs.bitvavo.com/) | cex | | [](https://ccxt.pro) |
|
129
129
|
| [](https://bl3p.eu) | bl3p | [BL3P](https://bl3p.eu) | [](https://github.com/BitonicNL/bl3p-api/tree/master/docs) | cex | | |
|
130
130
|
| [](https://blockchain.com) | blockchaincom | [Blockchain.com](https://blockchain.com) | [](https://api.blockchain.com/v3) | cex | | [](https://ccxt.pro) |
|
131
|
-
| [](https://blofin.com/register?referral_code=jBd8U1) | blofin | [BloFin](https://blofin.com/register?referral_code=jBd8U1) | [](https://blofin.com/docs) | cex | |
|
131
|
+
| [](https://blofin.com/register?referral_code=jBd8U1) | blofin | [BloFin](https://blofin.com/register?referral_code=jBd8U1) | [](https://blofin.com/docs) | cex | | [](https://ccxt.pro) |
|
132
132
|
| [](https://btc-alpha.com/?r=123788) | btcalpha | [BTC-Alpha](https://btc-alpha.com/?r=123788) | [](https://btc-alpha.github.io/api-docs) | cex | | |
|
133
133
|
| [](https://www.btcbox.co.jp/) | btcbox | [BtcBox](https://www.btcbox.co.jp/) | [](https://blog.btcbox.jp/en/archives/8762) | cex | | |
|
134
134
|
| [](https://btcmarkets.net) | btcmarkets | [BTC Markets](https://btcmarkets.net) | [](https://api.btcmarkets.net/doc/v3) | cex | | |
|
@@ -258,13 +258,13 @@ console.log(version, Object.keys(exchanges));
|
|
258
258
|
|
259
259
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
260
260
|
|
261
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
262
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
261
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.70/dist/ccxt.browser.min.js
|
262
|
+
* unpkg: https://unpkg.com/ccxt@4.3.70/dist/ccxt.browser.min.js
|
263
263
|
|
264
264
|
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.
|
265
265
|
|
266
266
|
```HTML
|
267
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
267
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.70/dist/ccxt.browser.min.js"></script>
|
268
268
|
```
|
269
269
|
|
270
270
|
Creates a global `ccxt` object:
|
@@ -9,7 +9,7 @@ class ImplicitAPI:
|
|
9
9
|
v1_public_get_instruments_instrument = v1PublicGetInstrumentsInstrument = Entry('instruments/{instrument}', ['v1', 'public'], 'GET', {})
|
10
10
|
v1_public_get_instruments_instrument_quote = v1PublicGetInstrumentsInstrumentQuote = Entry('instruments/{instrument}/quote', ['v1', 'public'], 'GET', {})
|
11
11
|
v1_public_get_instruments_instrument_funding = v1PublicGetInstrumentsInstrumentFunding = Entry('instruments/{instrument}/funding', ['v1', 'public'], 'GET', {})
|
12
|
-
|
12
|
+
v1_public_get_instruments_instrument_candles = v1PublicGetInstrumentsInstrumentCandles = Entry('instruments/{instrument}/candles', ['v1', 'public'], 'GET', {})
|
13
13
|
v1_private_get_orders = v1PrivateGetOrders = Entry('orders', ['v1', 'private'], 'GET', {})
|
14
14
|
v1_private_get_orders_id = v1PrivateGetOrdersId = Entry('orders/{id}', ['v1', 'private'], 'GET', {})
|
15
15
|
v1_private_get_portfolios = v1PrivateGetPortfolios = Entry('portfolios', ['v1', 'private'], 'GET', {})
|
@@ -29,6 +29,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
29
29
|
'countries': ['US'],
|
30
30
|
'version': 'v1',
|
31
31
|
'rateLimit': 100,
|
32
|
+
'pro': True,
|
32
33
|
'has': {
|
33
34
|
'CORS': None,
|
34
35
|
'spot': False,
|
@@ -103,7 +104,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
103
104
|
'fetchOpenInterestHistory': False,
|
104
105
|
'fetchOpenOrder': None,
|
105
106
|
'fetchOpenOrders': True,
|
106
|
-
'fetchOrder':
|
107
|
+
'fetchOrder': None,
|
107
108
|
'fetchOrderBook': True,
|
108
109
|
'fetchOrderBooks': False,
|
109
110
|
'fetchOrders': False,
|
@@ -153,11 +154,12 @@ class blofin(Exchange, ImplicitAPI):
|
|
153
154
|
'2h': '2H',
|
154
155
|
'4h': '4H',
|
155
156
|
'6h': '6H',
|
157
|
+
'8h': '8H',
|
156
158
|
'12h': '12H',
|
157
159
|
'1d': '1D',
|
160
|
+
'3d': '3D',
|
158
161
|
'1w': '1W',
|
159
162
|
'1M': '1M',
|
160
|
-
'3M': '3M',
|
161
163
|
},
|
162
164
|
'hostname': 'www.blofin.com',
|
163
165
|
'urls': {
|
@@ -492,6 +494,25 @@ class blofin(Exchange, ImplicitAPI):
|
|
492
494
|
return self.parse_order_book(first, symbol, timestamp)
|
493
495
|
|
494
496
|
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
497
|
+
#
|
498
|
+
# response similar for REST & WS
|
499
|
+
#
|
500
|
+
# {
|
501
|
+
# instId: "ADA-USDT",
|
502
|
+
# ts: "1707736811486",
|
503
|
+
# last: "0.5315",
|
504
|
+
# lastSize: "4",
|
505
|
+
# askPrice: "0.5318",
|
506
|
+
# askSize: "248",
|
507
|
+
# bidPrice: "0.5315",
|
508
|
+
# bidSize: "63",
|
509
|
+
# open24h: "0.5555",
|
510
|
+
# high24h: "0.5563",
|
511
|
+
# low24h: "0.5315",
|
512
|
+
# volCurrency24h: "198560100",
|
513
|
+
# vol24h: "1985601",
|
514
|
+
# }
|
515
|
+
#
|
495
516
|
timestamp = self.safe_integer(ticker, 'ts')
|
496
517
|
marketId = self.safe_string(ticker, 'instId')
|
497
518
|
market = self.safe_market(marketId, market, '-')
|
@@ -560,7 +581,8 @@ class blofin(Exchange, ImplicitAPI):
|
|
560
581
|
|
561
582
|
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
562
583
|
#
|
563
|
-
# fetch trades
|
584
|
+
# fetch trades(response similar for REST & WS)
|
585
|
+
#
|
564
586
|
# {
|
565
587
|
# "tradeId": "3263934920",
|
566
588
|
# "instId": "LTC-USDT",
|
@@ -569,6 +591,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
569
591
|
# "side": "buy",
|
570
592
|
# "ts": "1707232020854"
|
571
593
|
# }
|
594
|
+
#
|
572
595
|
# my trades
|
573
596
|
# {
|
574
597
|
# "instId": "LTC-USDT",
|
@@ -825,9 +848,11 @@ class blofin(Exchange, ImplicitAPI):
|
|
825
848
|
if type:
|
826
849
|
return self.parse_funding_balance(response)
|
827
850
|
else:
|
828
|
-
return self.
|
851
|
+
return self.parse_balance(response)
|
829
852
|
|
830
|
-
def
|
853
|
+
def parse_balance(self, response):
|
854
|
+
#
|
855
|
+
# "data" similar for REST & WS
|
831
856
|
#
|
832
857
|
# {
|
833
858
|
# "code": "0",
|
@@ -849,7 +874,8 @@ class blofin(Exchange, ImplicitAPI):
|
|
849
874
|
# "orderFrozen": "14920.994472632597427761",
|
850
875
|
# "equityUsd": "10011254.077985990315787910",
|
851
876
|
# "isolatedUnrealizedPnl": "-22.151999999999999999952",
|
852
|
-
# "bonus": "0"
|
877
|
+
# "bonus": "0" # present only in REST
|
878
|
+
# "unrealizedPnl": "0" # present only in WS
|
853
879
|
# }
|
854
880
|
# ]
|
855
881
|
# }
|
@@ -998,6 +1024,8 @@ class blofin(Exchange, ImplicitAPI):
|
|
998
1024
|
return self.safe_string(statuses, status, status)
|
999
1025
|
|
1000
1026
|
def parse_order(self, order: dict, market: Market = None) -> Order:
|
1027
|
+
#
|
1028
|
+
# response similar for REST & WS
|
1001
1029
|
#
|
1002
1030
|
# {
|
1003
1031
|
# "orderId": "2075628533",
|
@@ -1026,6 +1054,9 @@ class blofin(Exchange, ImplicitAPI):
|
|
1026
1054
|
# "cancelSource": "not_canceled",
|
1027
1055
|
# "cancelSourceReason": null,
|
1028
1056
|
# "brokerId": "ec6dd3a7dd982d0b"
|
1057
|
+
# "filled_amount": "1.000000000000000000", # filledAmount in "ws" watchOrders
|
1058
|
+
# "cancelSource": "", # only in WS
|
1059
|
+
# "instType": "SWAP", # only in WS
|
1029
1060
|
# }
|
1030
1061
|
#
|
1031
1062
|
id = self.safe_string_2(order, 'tpslId', 'orderId')
|
@@ -1695,6 +1726,32 @@ class blofin(Exchange, ImplicitAPI):
|
|
1695
1726
|
return self.filter_by_array_positions(result, 'symbol', symbols, False)
|
1696
1727
|
|
1697
1728
|
def parse_position(self, position: dict, market: Market = None):
|
1729
|
+
#
|
1730
|
+
# response similar for REST & WS
|
1731
|
+
#
|
1732
|
+
# {
|
1733
|
+
# instType: 'SWAP',
|
1734
|
+
# instId: 'LTC-USDT',
|
1735
|
+
# marginMode: 'cross',
|
1736
|
+
# positionId: '644159',
|
1737
|
+
# positionSide: 'net',
|
1738
|
+
# positions: '1',
|
1739
|
+
# availablePositions: '1',
|
1740
|
+
# averagePrice: '68.16',
|
1741
|
+
# unrealizedPnl: '0.80631223',
|
1742
|
+
# unrealizedPnlRatio: '0.03548909463028169',
|
1743
|
+
# leverage: '3',
|
1744
|
+
# liquidationPrice: '10.116655172370356435',
|
1745
|
+
# markPrice: '68.96',
|
1746
|
+
# initialMargin: '22.988770743333333333',
|
1747
|
+
# margin: '', # self field might not exist in rest response
|
1748
|
+
# marginRatio: '152.523509620342499273',
|
1749
|
+
# maintenanceMargin: '0.34483156115',
|
1750
|
+
# adl: '4',
|
1751
|
+
# createTime: '1707235776528',
|
1752
|
+
# updateTime: '1707235776528'
|
1753
|
+
# }
|
1754
|
+
#
|
1698
1755
|
marketId = self.safe_string(position, 'instId')
|
1699
1756
|
market = self.safe_market(marketId, market)
|
1700
1757
|
symbol = market['symbol']
|
@@ -7625,7 +7625,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
7625
7625
|
quoteValueString = Precise.string_mul(baseValueString, priceString)
|
7626
7626
|
return self.safe_liquidation({
|
7627
7627
|
'info': liquidation,
|
7628
|
-
'symbol': self.safe_symbol(marketId, market),
|
7628
|
+
'symbol': self.safe_symbol(marketId, market, None, 'contract'),
|
7629
7629
|
'contracts': self.parse_number(contractsString),
|
7630
7630
|
'contractSize': self.parse_number(contractSizeString),
|
7631
7631
|
'price': self.parse_number(priceString),
|
@@ -92,7 +92,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
|
|
92
92
|
'fetchMyBuys': True,
|
93
93
|
'fetchMySells': True,
|
94
94
|
'fetchMyTrades': True,
|
95
|
-
'fetchOHLCV':
|
95
|
+
'fetchOHLCV': True,
|
96
96
|
'fetchOpenInterestHistory': False,
|
97
97
|
'fetchOpenOrders': True,
|
98
98
|
'fetchOrder': True,
|
@@ -111,6 +111,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
|
|
111
111
|
'fetchTrades': False,
|
112
112
|
'fetchTradingFee': False,
|
113
113
|
'fetchTradingFees': False,
|
114
|
+
'fetchTransfers': True,
|
114
115
|
'fetchWithdrawals': True,
|
115
116
|
'reduceMargin': False,
|
116
117
|
'sandbox': True,
|
@@ -153,7 +154,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
|
|
153
154
|
'instruments/{instrument}',
|
154
155
|
'instruments/{instrument}/quote',
|
155
156
|
'instruments/{instrument}/funding',
|
156
|
-
'',
|
157
|
+
'instruments/{instrument}/candles',
|
157
158
|
],
|
158
159
|
},
|
159
160
|
'private': {
|
@@ -351,6 +352,75 @@ class coinbaseinternational(Exchange, ImplicitAPI):
|
|
351
352
|
'info': account,
|
352
353
|
}
|
353
354
|
|
355
|
+
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = 100, params={}) -> List[list]:
|
356
|
+
"""
|
357
|
+
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
358
|
+
:see: https://docs.cdp.coinbase.com/intx/reference/getinstrumentcandles
|
359
|
+
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
360
|
+
:param str timeframe: the length of time each candle represents
|
361
|
+
:param int [since]: timestamp in ms of the earliest candle to fetch
|
362
|
+
:param int [limit]: the maximum amount of candles to fetch, default 100 max 10000
|
363
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
364
|
+
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
365
|
+
:param int [params.until]: timestamp in ms of the latest candle to fetch
|
366
|
+
:param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
367
|
+
"""
|
368
|
+
await self.load_markets()
|
369
|
+
paginate = False
|
370
|
+
paginate, params = self.handle_option_and_params(params, 'fetchOHLCV', 'paginate')
|
371
|
+
if paginate:
|
372
|
+
return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 10000)
|
373
|
+
market = self.market(symbol)
|
374
|
+
request: dict = {
|
375
|
+
'instrument': market['id'],
|
376
|
+
'granularity': self.safe_string(self.timeframes, timeframe, timeframe),
|
377
|
+
}
|
378
|
+
if since is not None:
|
379
|
+
request['start'] = self.iso8601(since)
|
380
|
+
else:
|
381
|
+
raise ArgumentsRequired(self.id + ' fetchOHLCV() requires a since argument')
|
382
|
+
unitl = self.safe_integer(params, 'until')
|
383
|
+
if unitl is not None:
|
384
|
+
params = self.omit(params, 'until')
|
385
|
+
request['end'] = self.iso8601(unitl)
|
386
|
+
response = await self.v1PublicGetInstrumentsInstrumentCandles(self.extend(request, params))
|
387
|
+
#
|
388
|
+
# {
|
389
|
+
# "aggregations": [
|
390
|
+
# {
|
391
|
+
# "start": "2024-04-23T00:00:00Z",
|
392
|
+
# "open": "62884.4",
|
393
|
+
# "high": "64710.6",
|
394
|
+
# "low": "62884.4",
|
395
|
+
# "close": "63508.4",
|
396
|
+
# "volume": "3253.9983"
|
397
|
+
# }
|
398
|
+
# ]
|
399
|
+
# }
|
400
|
+
#
|
401
|
+
candles = self.safe_list(response, 'aggregations', [])
|
402
|
+
return self.parse_ohlcvs(candles, market, timeframe, since, limit)
|
403
|
+
|
404
|
+
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
405
|
+
#
|
406
|
+
# {
|
407
|
+
# "start": "2024-04-23T00:00:00Z",
|
408
|
+
# "open": "62884.4",
|
409
|
+
# "high": "64710.6",
|
410
|
+
# "low": "62884.4",
|
411
|
+
# "close": "63508.4",
|
412
|
+
# "volume": "3253.9983"
|
413
|
+
# }
|
414
|
+
#
|
415
|
+
return [
|
416
|
+
self.parse8601(self.safe_string_2(ohlcv, 'start', 'time')),
|
417
|
+
self.safe_number(ohlcv, 'open'),
|
418
|
+
self.safe_number(ohlcv, 'high'),
|
419
|
+
self.safe_number(ohlcv, 'low'),
|
420
|
+
self.safe_number(ohlcv, 'close'),
|
421
|
+
self.safe_number(ohlcv, 'volume'),
|
422
|
+
]
|
423
|
+
|
354
424
|
async def fetch_funding_rate_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
355
425
|
"""
|
356
426
|
fetches historical funding rate prices
|
@@ -504,6 +574,89 @@ class coinbaseinternational(Exchange, ImplicitAPI):
|
|
504
574
|
'rate': None,
|
505
575
|
}
|
506
576
|
|
577
|
+
async def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[TransferEntry]:
|
578
|
+
"""
|
579
|
+
fetch a history of internal transfers made on an account
|
580
|
+
:see: https://docs.cdp.coinbase.com/intx/reference/gettransfers
|
581
|
+
:param str code: unified currency code of the currency transferred
|
582
|
+
:param int [since]: the earliest time in ms to fetch transfers for
|
583
|
+
:param int [limit]: the maximum number of transfers structures to retrieve
|
584
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
585
|
+
:returns dict[]: a list of `transfer structures <https://docs.ccxt.com/#/?id=transfer-structure>`
|
586
|
+
"""
|
587
|
+
await self.load_markets()
|
588
|
+
request: dict = {
|
589
|
+
'type': 'INTERNAL',
|
590
|
+
}
|
591
|
+
currency = None
|
592
|
+
if code is not None:
|
593
|
+
currency = self.currency(code)
|
594
|
+
portfolios = None
|
595
|
+
portfolios, params = self.handle_option_and_params(params, 'fetchTransfers', 'portfolios')
|
596
|
+
if portfolios is not None:
|
597
|
+
request['portfolios'] = portfolios
|
598
|
+
if since is not None:
|
599
|
+
request['time_from'] = self.iso8601(since)
|
600
|
+
if limit is not None:
|
601
|
+
request['result_limit'] = limit
|
602
|
+
else:
|
603
|
+
request['result_limit'] = 100
|
604
|
+
response = await self.v1PrivateGetTransfers(self.extend(request, params))
|
605
|
+
transfers = self.safe_list(response, 'results', [])
|
606
|
+
return self.parse_transfers(transfers, currency, since, limit)
|
607
|
+
|
608
|
+
def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
|
609
|
+
#
|
610
|
+
# {
|
611
|
+
# "amount":"0.0008",
|
612
|
+
# "asset":"USDC",
|
613
|
+
# "created_at":"2024-02-22T16:00:00Z",
|
614
|
+
# "from_portfolio":{
|
615
|
+
# "id":"13yuk1fs-1-0",
|
616
|
+
# "name":"Eng Test Portfolio - 2",
|
617
|
+
# "uuid":"018712f2-5ff9-7de3-9010-xxxxxxxxx"
|
618
|
+
# },
|
619
|
+
# "instrument_id":"149264164756389888",
|
620
|
+
# "instrument_symbol":"ETH-PERP",
|
621
|
+
# "position_id":"1xy4v51m-1-2",
|
622
|
+
# "status":"PROCESSED",
|
623
|
+
# "to_portfolio":{
|
624
|
+
# "name":"CB_FUND"
|
625
|
+
# },
|
626
|
+
# "transfer_type":"FUNDING",
|
627
|
+
# "transfer_uuid":"a6b708df-2c44-32c5-bb98-xxxxxxxxxx",
|
628
|
+
# "updated_at":"2024-02-22T16:00:00Z"
|
629
|
+
# }
|
630
|
+
#
|
631
|
+
datetime = self.safe_integer(transfer, 'created_at')
|
632
|
+
timestamp = self.parse8601(datetime)
|
633
|
+
currencyId = self.safe_string(transfer, 'asset')
|
634
|
+
code = self.safe_currency_code(currencyId)
|
635
|
+
fromPorfolio = self.safe_dict(transfer, 'from_portfolio', {})
|
636
|
+
fromId = self.safe_string(fromPorfolio, 'id')
|
637
|
+
toPorfolio = self.safe_dict(transfer, 'to_portfolio', {})
|
638
|
+
toId = self.safe_string(toPorfolio, 'id')
|
639
|
+
return {
|
640
|
+
'info': transfer,
|
641
|
+
'id': self.safe_string(transfer, 'transfer_uuid'),
|
642
|
+
'timestamp': timestamp,
|
643
|
+
'datetime': self.iso8601(timestamp),
|
644
|
+
'currency': code,
|
645
|
+
'amount': self.safe_number(transfer, 'amount'),
|
646
|
+
'fromAccount': fromId,
|
647
|
+
'toAccount': toId,
|
648
|
+
'status': self.parse_transfer_status(self.safe_string(transfer, 'status')),
|
649
|
+
}
|
650
|
+
|
651
|
+
def parse_transfer_status(self, status: Str) -> Str:
|
652
|
+
statuses: dict = {
|
653
|
+
'FAILED': 'failed',
|
654
|
+
'PROCESSED': 'ok',
|
655
|
+
'NEW': 'pending',
|
656
|
+
'STARTED': 'pending',
|
657
|
+
}
|
658
|
+
return self.safe_string(statuses, status, status)
|
659
|
+
|
507
660
|
async def create_deposit_address(self, code: str, params={}):
|
508
661
|
"""
|
509
662
|
create a currency deposit address
|
@@ -17,10 +17,13 @@ from ccxt.base.errors import BadRequest
|
|
17
17
|
from ccxt.base.errors import BadSymbol
|
18
18
|
from ccxt.base.errors import InsufficientFunds
|
19
19
|
from ccxt.base.errors import InvalidOrder
|
20
|
+
from ccxt.base.errors import OrderNotFound
|
20
21
|
from ccxt.base.errors import NotSupported
|
21
22
|
from ccxt.base.errors import DDoSProtection
|
23
|
+
from ccxt.base.errors import RateLimitExceeded
|
22
24
|
from ccxt.base.errors import OnMaintenance
|
23
25
|
from ccxt.base.errors import InvalidNonce
|
26
|
+
from ccxt.base.errors import RequestTimeout
|
24
27
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
25
28
|
from ccxt.base.precise import Precise
|
26
29
|
|
@@ -401,7 +404,15 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
401
404
|
'40006': BadRequest,
|
402
405
|
'40007': BadRequest,
|
403
406
|
'40101': AuthenticationError,
|
404
|
-
'
|
407
|
+
'40102': InvalidNonce, # Nonce value differs by more than 60 seconds from server
|
408
|
+
'40103': AuthenticationError, # IP address not whitelisted
|
409
|
+
'40104': AuthenticationError, # Disallowed based on user tier
|
410
|
+
'40107': BadRequest, # Session subscription limit has been exceeded
|
411
|
+
'40401': OrderNotFound,
|
412
|
+
'40801': RequestTimeout,
|
413
|
+
'42901': RateLimitExceeded,
|
414
|
+
'43005': InvalidOrder, # Rejected POST_ONLY create-order request(normally happened when exec_inst contains POST_ONLY but time_in_force is NOT GOOD_TILL_CANCEL)
|
415
|
+
'50001': ExchangeError,
|
405
416
|
'9010001': OnMaintenance, # {"code":9010001,"message":"SYSTEM_MAINTENANCE","details":"Crypto.com Exchange is currently under maintenance. Please refer to https://status.crypto.com for more details."}
|
406
417
|
},
|
407
418
|
'broad': {},
|
@@ -359,6 +359,7 @@ class poloniex(Exchange, ImplicitAPI):
|
|
359
359
|
'21350': InvalidOrder, # Amount must be greater than 1 USDT
|
360
360
|
'21355': ExchangeError, # Interval between startTime and endTime in trade/order history has exceeded 7 day limit
|
361
361
|
'21356': BadRequest, # Order size would cause too much price movement. Reduce order size.
|
362
|
+
'21721': InsufficientFunds,
|
362
363
|
'24101': BadSymbol, # Invalid symbol
|
363
364
|
'24102': InvalidOrder, # Invalid K-line type
|
364
365
|
'24103': InvalidOrder, # Invalid endTime
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.3.
|
7
|
+
__version__ = '4.3.70'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -2117,6 +2117,11 @@ class Exchange(object):
|
|
2117
2117
|
def handle_delta(self, bookside, delta):
|
2118
2118
|
raise NotSupported(self.id + ' handleDelta not supported yet')
|
2119
2119
|
|
2120
|
+
def handle_deltas_with_keys(self, bookSide: Any, deltas, priceKey: IndexType = 0, amountKey: IndexType = 1, countOrIdKey: IndexType = 2):
|
2121
|
+
for i in range(0, len(deltas)):
|
2122
|
+
bidAsk = self.parse_bid_ask(deltas[i], priceKey, amountKey, countOrIdKey)
|
2123
|
+
bookSide.storeArray(bidAsk)
|
2124
|
+
|
2120
2125
|
def get_cache_index(self, orderbook, deltas):
|
2121
2126
|
# return the first index of the cache that can be applied to the orderbook or -1 if not possible
|
2122
2127
|
return -1
|
@@ -29,6 +29,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
29
29
|
'countries': ['US'],
|
30
30
|
'version': 'v1',
|
31
31
|
'rateLimit': 100,
|
32
|
+
'pro': True,
|
32
33
|
'has': {
|
33
34
|
'CORS': None,
|
34
35
|
'spot': False,
|
@@ -103,7 +104,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
103
104
|
'fetchOpenInterestHistory': False,
|
104
105
|
'fetchOpenOrder': None,
|
105
106
|
'fetchOpenOrders': True,
|
106
|
-
'fetchOrder':
|
107
|
+
'fetchOrder': None,
|
107
108
|
'fetchOrderBook': True,
|
108
109
|
'fetchOrderBooks': False,
|
109
110
|
'fetchOrders': False,
|
@@ -153,11 +154,12 @@ class blofin(Exchange, ImplicitAPI):
|
|
153
154
|
'2h': '2H',
|
154
155
|
'4h': '4H',
|
155
156
|
'6h': '6H',
|
157
|
+
'8h': '8H',
|
156
158
|
'12h': '12H',
|
157
159
|
'1d': '1D',
|
160
|
+
'3d': '3D',
|
158
161
|
'1w': '1W',
|
159
162
|
'1M': '1M',
|
160
|
-
'3M': '3M',
|
161
163
|
},
|
162
164
|
'hostname': 'www.blofin.com',
|
163
165
|
'urls': {
|
@@ -492,6 +494,25 @@ class blofin(Exchange, ImplicitAPI):
|
|
492
494
|
return self.parse_order_book(first, symbol, timestamp)
|
493
495
|
|
494
496
|
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
497
|
+
#
|
498
|
+
# response similar for REST & WS
|
499
|
+
#
|
500
|
+
# {
|
501
|
+
# instId: "ADA-USDT",
|
502
|
+
# ts: "1707736811486",
|
503
|
+
# last: "0.5315",
|
504
|
+
# lastSize: "4",
|
505
|
+
# askPrice: "0.5318",
|
506
|
+
# askSize: "248",
|
507
|
+
# bidPrice: "0.5315",
|
508
|
+
# bidSize: "63",
|
509
|
+
# open24h: "0.5555",
|
510
|
+
# high24h: "0.5563",
|
511
|
+
# low24h: "0.5315",
|
512
|
+
# volCurrency24h: "198560100",
|
513
|
+
# vol24h: "1985601",
|
514
|
+
# }
|
515
|
+
#
|
495
516
|
timestamp = self.safe_integer(ticker, 'ts')
|
496
517
|
marketId = self.safe_string(ticker, 'instId')
|
497
518
|
market = self.safe_market(marketId, market, '-')
|
@@ -560,7 +581,8 @@ class blofin(Exchange, ImplicitAPI):
|
|
560
581
|
|
561
582
|
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
562
583
|
#
|
563
|
-
# fetch trades
|
584
|
+
# fetch trades(response similar for REST & WS)
|
585
|
+
#
|
564
586
|
# {
|
565
587
|
# "tradeId": "3263934920",
|
566
588
|
# "instId": "LTC-USDT",
|
@@ -569,6 +591,7 @@ class blofin(Exchange, ImplicitAPI):
|
|
569
591
|
# "side": "buy",
|
570
592
|
# "ts": "1707232020854"
|
571
593
|
# }
|
594
|
+
#
|
572
595
|
# my trades
|
573
596
|
# {
|
574
597
|
# "instId": "LTC-USDT",
|
@@ -825,9 +848,11 @@ class blofin(Exchange, ImplicitAPI):
|
|
825
848
|
if type:
|
826
849
|
return self.parse_funding_balance(response)
|
827
850
|
else:
|
828
|
-
return self.
|
851
|
+
return self.parse_balance(response)
|
829
852
|
|
830
|
-
def
|
853
|
+
def parse_balance(self, response):
|
854
|
+
#
|
855
|
+
# "data" similar for REST & WS
|
831
856
|
#
|
832
857
|
# {
|
833
858
|
# "code": "0",
|
@@ -849,7 +874,8 @@ class blofin(Exchange, ImplicitAPI):
|
|
849
874
|
# "orderFrozen": "14920.994472632597427761",
|
850
875
|
# "equityUsd": "10011254.077985990315787910",
|
851
876
|
# "isolatedUnrealizedPnl": "-22.151999999999999999952",
|
852
|
-
# "bonus": "0"
|
877
|
+
# "bonus": "0" # present only in REST
|
878
|
+
# "unrealizedPnl": "0" # present only in WS
|
853
879
|
# }
|
854
880
|
# ]
|
855
881
|
# }
|
@@ -998,6 +1024,8 @@ class blofin(Exchange, ImplicitAPI):
|
|
998
1024
|
return self.safe_string(statuses, status, status)
|
999
1025
|
|
1000
1026
|
def parse_order(self, order: dict, market: Market = None) -> Order:
|
1027
|
+
#
|
1028
|
+
# response similar for REST & WS
|
1001
1029
|
#
|
1002
1030
|
# {
|
1003
1031
|
# "orderId": "2075628533",
|
@@ -1026,6 +1054,9 @@ class blofin(Exchange, ImplicitAPI):
|
|
1026
1054
|
# "cancelSource": "not_canceled",
|
1027
1055
|
# "cancelSourceReason": null,
|
1028
1056
|
# "brokerId": "ec6dd3a7dd982d0b"
|
1057
|
+
# "filled_amount": "1.000000000000000000", # filledAmount in "ws" watchOrders
|
1058
|
+
# "cancelSource": "", # only in WS
|
1059
|
+
# "instType": "SWAP", # only in WS
|
1029
1060
|
# }
|
1030
1061
|
#
|
1031
1062
|
id = self.safe_string_2(order, 'tpslId', 'orderId')
|
@@ -1695,6 +1726,32 @@ class blofin(Exchange, ImplicitAPI):
|
|
1695
1726
|
return self.filter_by_array_positions(result, 'symbol', symbols, False)
|
1696
1727
|
|
1697
1728
|
def parse_position(self, position: dict, market: Market = None):
|
1729
|
+
#
|
1730
|
+
# response similar for REST & WS
|
1731
|
+
#
|
1732
|
+
# {
|
1733
|
+
# instType: 'SWAP',
|
1734
|
+
# instId: 'LTC-USDT',
|
1735
|
+
# marginMode: 'cross',
|
1736
|
+
# positionId: '644159',
|
1737
|
+
# positionSide: 'net',
|
1738
|
+
# positions: '1',
|
1739
|
+
# availablePositions: '1',
|
1740
|
+
# averagePrice: '68.16',
|
1741
|
+
# unrealizedPnl: '0.80631223',
|
1742
|
+
# unrealizedPnlRatio: '0.03548909463028169',
|
1743
|
+
# leverage: '3',
|
1744
|
+
# liquidationPrice: '10.116655172370356435',
|
1745
|
+
# markPrice: '68.96',
|
1746
|
+
# initialMargin: '22.988770743333333333',
|
1747
|
+
# margin: '', # self field might not exist in rest response
|
1748
|
+
# marginRatio: '152.523509620342499273',
|
1749
|
+
# maintenanceMargin: '0.34483156115',
|
1750
|
+
# adl: '4',
|
1751
|
+
# createTime: '1707235776528',
|
1752
|
+
# updateTime: '1707235776528'
|
1753
|
+
# }
|
1754
|
+
#
|
1698
1755
|
marketId = self.safe_string(position, 'instId')
|
1699
1756
|
market = self.safe_market(marketId, market)
|
1700
1757
|
symbol = market['symbol']
|
@@ -7624,7 +7624,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
7624
7624
|
quoteValueString = Precise.string_mul(baseValueString, priceString)
|
7625
7625
|
return self.safe_liquidation({
|
7626
7626
|
'info': liquidation,
|
7627
|
-
'symbol': self.safe_symbol(marketId, market),
|
7627
|
+
'symbol': self.safe_symbol(marketId, market, None, 'contract'),
|
7628
7628
|
'contracts': self.parse_number(contractsString),
|
7629
7629
|
'contractSize': self.parse_number(contractSizeString),
|
7630
7630
|
'price': self.parse_number(priceString),
|