ccxt 4.3.65__tar.gz → 4.3.66__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.65/ccxt.egg-info → ccxt-4.3.66}/PKG-INFO +5 -4
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/__init__.py +1 -1
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/fast_client.py +2 -1
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/future.py +13 -2
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/hyperliquid.py +60 -7
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/kraken.py +25 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/base/exchange.py +1 -1
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/hyperliquid.py +60 -7
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/kraken.py +25 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/hyperliquid.py +102 -2
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/okx.py +5 -5
- {ccxt-4.3.65 → ccxt-4.3.66/ccxt.egg-info}/PKG-INFO +5 -4
- {ccxt-4.3.65 → ccxt-4.3.66}/package.json +1 -1
- {ccxt-4.3.65 → ccxt-4.3.66}/LICENSE.txt +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/MANIFEST.in +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/README.rst +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinbaseadvanced.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinbaseexchange.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinbaseinternational.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/oxfun.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/vertex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/woofipro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/xt.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/ace.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/alpaca.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/ascendex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/blofin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinbaseadvanced.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinbaseexchange.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinbaseinternational.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/oxfun.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/vertex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/woofipro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/xt.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/base/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/base/errors.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/base/precise.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/base/types.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bequant.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bigone.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/binance.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/binanceus.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bingx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bit2c.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitbank.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitbay.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitbns.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitfinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitflyer.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitget.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bithumb.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitmart.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitmex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitopro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitpanda.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitrue.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitso.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitstamp.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitteam.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bitvavo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bl3p.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/blofin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/btcalpha.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/btcbox.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/btcturk.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/bybit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/cex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinbase.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinbaseadvanced.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinbaseexchange.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinbaseinternational.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coincheck.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinlist.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinmate.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinmetro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinone.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinsph.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/coinspot.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/cryptocom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/currencycom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/delta.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/deribit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/digifinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/exmo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/fmfwio.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/gate.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/gateio.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/gemini.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/hitbtc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/hollaex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/htx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/huobi.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/huobijp.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/idex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/independentreserve.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/indodax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/kucoin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/kuna.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/latoken.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/lbank.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/luno.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/lykke.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/mercado.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/mexc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/ndax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/novadax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/oceanex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/okcoin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/okx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/onetrading.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/oxfun.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/p2b.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/paymium.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/phemex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/poloniex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/binance.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bithumb.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/cex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/coinbaseexchange.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/coinbaseinternational.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/gate.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/htx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/idex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/luno.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/oxfun.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/probit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/vertex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/woo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/woofipro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/pro/xt.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/probit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/test/__init__.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/test/tests_async.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/test/tests_helpers.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/test/tests_init.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/test/tests_sync.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/timex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/tradeogre.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/upbit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/vertex.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/wazirx.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/whitebit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/woo.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/woofipro.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/xt.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/yobit.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/zaif.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt/zonda.py +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/setup.cfg +0 -0
- {ccxt-4.3.65 → ccxt-4.3.66}/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.66
|
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
|
@@ -59,6 +59,7 @@ Current feature list:
|
|
59
59
|
|
60
60
|
|
61
61
|
## Sponsored Promotion
|
62
|
+
[](https://bingx.com/en/act/contestNew/7947320527/)
|
62
63
|
|
63
64
|
## See Also
|
64
65
|
|
@@ -257,13 +258,13 @@ console.log(version, Object.keys(exchanges));
|
|
257
258
|
|
258
259
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
259
260
|
|
260
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
261
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
261
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.66/dist/ccxt.browser.min.js
|
262
|
+
* unpkg: https://unpkg.com/ccxt@4.3.66/dist/ccxt.browser.min.js
|
262
263
|
|
263
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.
|
264
265
|
|
265
266
|
```HTML
|
266
|
-
<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.66/dist/ccxt.browser.min.js"></script>
|
267
268
|
```
|
268
269
|
|
269
270
|
Creates a global `ccxt` object:
|
@@ -4,6 +4,7 @@ import asyncio
|
|
4
4
|
import socket
|
5
5
|
import collections
|
6
6
|
from ccxt.async_support.base.ws.aiohttp_client import AiohttpClient
|
7
|
+
from ccxt.base.errors import NetworkError
|
7
8
|
|
8
9
|
|
9
10
|
class FastClient(AiohttpClient):
|
@@ -38,7 +39,7 @@ class FastClient(AiohttpClient):
|
|
38
39
|
if self.connection._close_code == 1000: # OK close
|
39
40
|
self.on_close(1000)
|
40
41
|
else:
|
41
|
-
self.on_error(
|
42
|
+
self.on_error(NetworkError("Abnormal closure of client")) # ABNORMAL_CLOSURE
|
42
43
|
|
43
44
|
def wrapper(func):
|
44
45
|
def parse_frame(buf):
|
@@ -7,11 +7,22 @@ class Future(asyncio.Future):
|
|
7
7
|
|
8
8
|
def resolve(self, result=None):
|
9
9
|
if not self.done():
|
10
|
-
|
10
|
+
try:
|
11
|
+
self.set_result(result)
|
12
|
+
except BaseException as e:
|
13
|
+
print("Error in Future.resolve")
|
14
|
+
raise e
|
11
15
|
|
12
16
|
def reject(self, error=None):
|
13
17
|
if not self.done():
|
14
|
-
|
18
|
+
# If not an exception, wrap it in a generic Exception
|
19
|
+
if not isinstance(error, BaseException):
|
20
|
+
error = Exception(error)
|
21
|
+
try:
|
22
|
+
self.set_exception(error)
|
23
|
+
except BaseException as e:
|
24
|
+
print("Error in Future.reject")
|
25
|
+
raise e
|
15
26
|
|
16
27
|
@classmethod
|
17
28
|
def race(cls, futures):
|
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.hyperliquid import ImplicitAPI
|
8
8
|
import asyncio
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Str, Strings, Trade, TradingFeeInterface, Transaction, TransferEntry
|
9
|
+
from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import ArgumentsRequired
|
@@ -102,8 +102,8 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
102
102
|
'fetchPositions': True,
|
103
103
|
'fetchPositionsRisk': False,
|
104
104
|
'fetchPremiumIndexOHLCV': False,
|
105
|
-
'fetchTicker':
|
106
|
-
'fetchTickers':
|
105
|
+
'fetchTicker': 'emulated',
|
106
|
+
'fetchTickers': True,
|
107
107
|
'fetchTime': False,
|
108
108
|
'fetchTrades': True,
|
109
109
|
'fetchTradingFee': True,
|
@@ -328,12 +328,12 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
328
328
|
#
|
329
329
|
#
|
330
330
|
meta = self.safe_dict(response, 0, {})
|
331
|
-
|
331
|
+
universe = self.safe_list(meta, 'universe', [])
|
332
332
|
assetCtxs = self.safe_dict(response, 1, {})
|
333
333
|
result = []
|
334
|
-
for i in range(0, len(
|
334
|
+
for i in range(0, len(universe)):
|
335
335
|
data = self.extend(
|
336
|
-
self.safe_dict(
|
336
|
+
self.safe_dict(universe, i, {}),
|
337
337
|
self.safe_dict(assetCtxs, i, {})
|
338
338
|
)
|
339
339
|
data['baseId'] = i
|
@@ -447,11 +447,13 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
447
447
|
#
|
448
448
|
# response differs depending on the environment(mainnet vs sandbox)
|
449
449
|
first = self.safe_dict(response, 0, {})
|
450
|
+
second = self.safe_list(response, 1, [])
|
450
451
|
meta = self.safe_list_2(first, 'universe', 'spot_infos', [])
|
451
452
|
tokens = self.safe_list_2(first, 'tokens', 'token_infos', [])
|
452
453
|
markets = []
|
453
454
|
for i in range(0, len(meta)):
|
454
455
|
market = self.safe_dict(meta, i, {})
|
456
|
+
extraData = self.safe_dict(second, i, {})
|
455
457
|
marketName = self.safe_string(market, 'name')
|
456
458
|
# if marketName.find('/') < 0:
|
457
459
|
# # there are some weird spot markets in testnet, eg @2
|
@@ -528,7 +530,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
528
530
|
},
|
529
531
|
},
|
530
532
|
'created': None,
|
531
|
-
'info': market,
|
533
|
+
'info': self.extend(extraData, market),
|
532
534
|
}))
|
533
535
|
return markets
|
534
536
|
|
@@ -747,6 +749,57 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
747
749
|
timestamp = self.safe_integer(response, 'time')
|
748
750
|
return self.parse_order_book(result, market['symbol'], timestamp, 'bids', 'asks', 'px', 'sz')
|
749
751
|
|
752
|
+
async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
753
|
+
"""
|
754
|
+
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
755
|
+
:see: https://www.bitmex.com/api/explorer/#not /Instrument/Instrument_getActiveAndIndices
|
756
|
+
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
757
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
758
|
+
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
759
|
+
"""
|
760
|
+
await self.load_markets()
|
761
|
+
symbols = self.market_symbols(symbols)
|
762
|
+
# at self stage, to get tickers data, we use fetchMarkets endpoints
|
763
|
+
response = await self.fetch_markets(params)
|
764
|
+
# same response "fetchMarkets"
|
765
|
+
result: dict = {}
|
766
|
+
for i in range(0, len(response)):
|
767
|
+
market = response[i]
|
768
|
+
info = market['info']
|
769
|
+
ticker = self.parse_ticker(info, market)
|
770
|
+
symbol = self.safe_string(ticker, 'symbol')
|
771
|
+
result[symbol] = ticker
|
772
|
+
return self.filter_by_array_tickers(result, 'symbol', symbols)
|
773
|
+
|
774
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
775
|
+
#
|
776
|
+
# {
|
777
|
+
# "prevDayPx": "3400.5",
|
778
|
+
# "dayNtlVlm": "511297257.47936022",
|
779
|
+
# "markPx": "3464.7",
|
780
|
+
# "midPx": "3465.05",
|
781
|
+
# "oraclePx": "3460.1", # only in swap
|
782
|
+
# "openInterest": "64638.1108", # only in swap
|
783
|
+
# "premium": "0.00141614", # only in swap
|
784
|
+
# "funding": "0.00008727", # only in swap
|
785
|
+
# "impactPxs": ["3465.0", "3465.1"], # only in swap
|
786
|
+
# "coin": "PURR", # only in spot
|
787
|
+
# "circulatingSupply": "998949190.03400207", # only in spot
|
788
|
+
# },
|
789
|
+
#
|
790
|
+
bidAsk = self.safe_list(ticker, 'impactPxs')
|
791
|
+
return self.safe_ticker({
|
792
|
+
'symbol': market['symbol'],
|
793
|
+
'timestamp': None,
|
794
|
+
'datetime': None,
|
795
|
+
'previousClose': self.safe_number(ticker, 'prevDayPx'),
|
796
|
+
'close': self.safe_number(ticker, 'midPx'),
|
797
|
+
'bid': self.safe_number(bidAsk, 0),
|
798
|
+
'ask': self.safe_number(bidAsk, 1),
|
799
|
+
'quoteVolume': self.safe_number(ticker, 'dayNtlVlm'),
|
800
|
+
'info': ticker,
|
801
|
+
}, market)
|
802
|
+
|
750
803
|
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
751
804
|
"""
|
752
805
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
@@ -98,6 +98,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
98
98
|
'fetchOrderTrades': 'emulated',
|
99
99
|
'fetchPositions': True,
|
100
100
|
'fetchPremiumIndexOHLCV': False,
|
101
|
+
'fetchStatus': True,
|
101
102
|
'fetchTicker': True,
|
102
103
|
'fetchTickers': True,
|
103
104
|
'fetchTime': True,
|
@@ -645,6 +646,30 @@ class kraken(Exchange, ImplicitAPI):
|
|
645
646
|
result.append(self.extend(defaults, markets[i]))
|
646
647
|
return result
|
647
648
|
|
649
|
+
async def fetch_status(self, params={}):
|
650
|
+
"""
|
651
|
+
the latest known information on the availability of the exchange API
|
652
|
+
:see: https://docs.kraken.com/api/docs/rest-api/get-system-status/
|
653
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
654
|
+
:returns dict: a `status structure <https://docs.ccxt.com/#/?id=exchange-status-structure>`
|
655
|
+
"""
|
656
|
+
response = await self.publicGetSystemStatus(params)
|
657
|
+
#
|
658
|
+
# {
|
659
|
+
# error: [],
|
660
|
+
# result: {status: 'online', timestamp: '2024-07-22T16:34:44Z'}
|
661
|
+
# }
|
662
|
+
#
|
663
|
+
result = self.safe_dict(response, 'result')
|
664
|
+
statusRaw = self.safe_string(result, 'status')
|
665
|
+
return {
|
666
|
+
'status': 'ok' if (statusRaw == 'online') else 'maintenance',
|
667
|
+
'updated': None,
|
668
|
+
'eta': None,
|
669
|
+
'url': None,
|
670
|
+
'info': response,
|
671
|
+
}
|
672
|
+
|
648
673
|
async def fetch_currencies(self, params={}) -> Currencies:
|
649
674
|
"""
|
650
675
|
fetches all available currencies on an exchange
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.hyperliquid import ImplicitAPI
|
8
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Str, Strings, Trade, TradingFeeInterface, Transaction, TransferEntry
|
8
|
+
from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
|
9
9
|
from typing import List
|
10
10
|
from ccxt.base.errors import ExchangeError
|
11
11
|
from ccxt.base.errors import ArgumentsRequired
|
@@ -101,8 +101,8 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
101
101
|
'fetchPositions': True,
|
102
102
|
'fetchPositionsRisk': False,
|
103
103
|
'fetchPremiumIndexOHLCV': False,
|
104
|
-
'fetchTicker':
|
105
|
-
'fetchTickers':
|
104
|
+
'fetchTicker': 'emulated',
|
105
|
+
'fetchTickers': True,
|
106
106
|
'fetchTime': False,
|
107
107
|
'fetchTrades': True,
|
108
108
|
'fetchTradingFee': True,
|
@@ -327,12 +327,12 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
327
327
|
#
|
328
328
|
#
|
329
329
|
meta = self.safe_dict(response, 0, {})
|
330
|
-
|
330
|
+
universe = self.safe_list(meta, 'universe', [])
|
331
331
|
assetCtxs = self.safe_dict(response, 1, {})
|
332
332
|
result = []
|
333
|
-
for i in range(0, len(
|
333
|
+
for i in range(0, len(universe)):
|
334
334
|
data = self.extend(
|
335
|
-
self.safe_dict(
|
335
|
+
self.safe_dict(universe, i, {}),
|
336
336
|
self.safe_dict(assetCtxs, i, {})
|
337
337
|
)
|
338
338
|
data['baseId'] = i
|
@@ -446,11 +446,13 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
446
446
|
#
|
447
447
|
# response differs depending on the environment(mainnet vs sandbox)
|
448
448
|
first = self.safe_dict(response, 0, {})
|
449
|
+
second = self.safe_list(response, 1, [])
|
449
450
|
meta = self.safe_list_2(first, 'universe', 'spot_infos', [])
|
450
451
|
tokens = self.safe_list_2(first, 'tokens', 'token_infos', [])
|
451
452
|
markets = []
|
452
453
|
for i in range(0, len(meta)):
|
453
454
|
market = self.safe_dict(meta, i, {})
|
455
|
+
extraData = self.safe_dict(second, i, {})
|
454
456
|
marketName = self.safe_string(market, 'name')
|
455
457
|
# if marketName.find('/') < 0:
|
456
458
|
# # there are some weird spot markets in testnet, eg @2
|
@@ -527,7 +529,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
527
529
|
},
|
528
530
|
},
|
529
531
|
'created': None,
|
530
|
-
'info': market,
|
532
|
+
'info': self.extend(extraData, market),
|
531
533
|
}))
|
532
534
|
return markets
|
533
535
|
|
@@ -746,6 +748,57 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
746
748
|
timestamp = self.safe_integer(response, 'time')
|
747
749
|
return self.parse_order_book(result, market['symbol'], timestamp, 'bids', 'asks', 'px', 'sz')
|
748
750
|
|
751
|
+
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
752
|
+
"""
|
753
|
+
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
754
|
+
:see: https://www.bitmex.com/api/explorer/#not /Instrument/Instrument_getActiveAndIndices
|
755
|
+
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
756
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
757
|
+
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
758
|
+
"""
|
759
|
+
self.load_markets()
|
760
|
+
symbols = self.market_symbols(symbols)
|
761
|
+
# at self stage, to get tickers data, we use fetchMarkets endpoints
|
762
|
+
response = self.fetch_markets(params)
|
763
|
+
# same response "fetchMarkets"
|
764
|
+
result: dict = {}
|
765
|
+
for i in range(0, len(response)):
|
766
|
+
market = response[i]
|
767
|
+
info = market['info']
|
768
|
+
ticker = self.parse_ticker(info, market)
|
769
|
+
symbol = self.safe_string(ticker, 'symbol')
|
770
|
+
result[symbol] = ticker
|
771
|
+
return self.filter_by_array_tickers(result, 'symbol', symbols)
|
772
|
+
|
773
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
774
|
+
#
|
775
|
+
# {
|
776
|
+
# "prevDayPx": "3400.5",
|
777
|
+
# "dayNtlVlm": "511297257.47936022",
|
778
|
+
# "markPx": "3464.7",
|
779
|
+
# "midPx": "3465.05",
|
780
|
+
# "oraclePx": "3460.1", # only in swap
|
781
|
+
# "openInterest": "64638.1108", # only in swap
|
782
|
+
# "premium": "0.00141614", # only in swap
|
783
|
+
# "funding": "0.00008727", # only in swap
|
784
|
+
# "impactPxs": ["3465.0", "3465.1"], # only in swap
|
785
|
+
# "coin": "PURR", # only in spot
|
786
|
+
# "circulatingSupply": "998949190.03400207", # only in spot
|
787
|
+
# },
|
788
|
+
#
|
789
|
+
bidAsk = self.safe_list(ticker, 'impactPxs')
|
790
|
+
return self.safe_ticker({
|
791
|
+
'symbol': market['symbol'],
|
792
|
+
'timestamp': None,
|
793
|
+
'datetime': None,
|
794
|
+
'previousClose': self.safe_number(ticker, 'prevDayPx'),
|
795
|
+
'close': self.safe_number(ticker, 'midPx'),
|
796
|
+
'bid': self.safe_number(bidAsk, 0),
|
797
|
+
'ask': self.safe_number(bidAsk, 1),
|
798
|
+
'quoteVolume': self.safe_number(ticker, 'dayNtlVlm'),
|
799
|
+
'info': ticker,
|
800
|
+
}, market)
|
801
|
+
|
749
802
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
750
803
|
"""
|
751
804
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
@@ -98,6 +98,7 @@ class kraken(Exchange, ImplicitAPI):
|
|
98
98
|
'fetchOrderTrades': 'emulated',
|
99
99
|
'fetchPositions': True,
|
100
100
|
'fetchPremiumIndexOHLCV': False,
|
101
|
+
'fetchStatus': True,
|
101
102
|
'fetchTicker': True,
|
102
103
|
'fetchTickers': True,
|
103
104
|
'fetchTime': True,
|
@@ -645,6 +646,30 @@ class kraken(Exchange, ImplicitAPI):
|
|
645
646
|
result.append(self.extend(defaults, markets[i]))
|
646
647
|
return result
|
647
648
|
|
649
|
+
def fetch_status(self, params={}):
|
650
|
+
"""
|
651
|
+
the latest known information on the availability of the exchange API
|
652
|
+
:see: https://docs.kraken.com/api/docs/rest-api/get-system-status/
|
653
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
654
|
+
:returns dict: a `status structure <https://docs.ccxt.com/#/?id=exchange-status-structure>`
|
655
|
+
"""
|
656
|
+
response = self.publicGetSystemStatus(params)
|
657
|
+
#
|
658
|
+
# {
|
659
|
+
# error: [],
|
660
|
+
# result: {status: 'online', timestamp: '2024-07-22T16:34:44Z'}
|
661
|
+
# }
|
662
|
+
#
|
663
|
+
result = self.safe_dict(response, 'result')
|
664
|
+
statusRaw = self.safe_string(result, 'status')
|
665
|
+
return {
|
666
|
+
'status': 'ok' if (statusRaw == 'online') else 'maintenance',
|
667
|
+
'updated': None,
|
668
|
+
'eta': None,
|
669
|
+
'url': None,
|
670
|
+
'info': response,
|
671
|
+
}
|
672
|
+
|
648
673
|
def fetch_currencies(self, params={}) -> Currencies:
|
649
674
|
"""
|
650
675
|
fetches all available currencies on an exchange
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
|
8
|
-
from ccxt.base.types import Int, Market, Order, OrderBook, Str, Trade
|
8
|
+
from ccxt.base.types import Int, Market, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
@@ -23,7 +23,7 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
23
23
|
'watchOrderBook': True,
|
24
24
|
'watchOrders': True,
|
25
25
|
'watchTicker': False,
|
26
|
-
'watchTickers':
|
26
|
+
'watchTickers': True,
|
27
27
|
'watchTrades': True,
|
28
28
|
'watchPosition': False,
|
29
29
|
},
|
@@ -123,6 +123,29 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
123
123
|
messageHash = 'orderbook:' + symbol
|
124
124
|
client.resolve(orderbook, messageHash)
|
125
125
|
|
126
|
+
async def watch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
127
|
+
"""
|
128
|
+
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
129
|
+
:param str[] symbols: unified symbol of the market to fetch the ticker for
|
130
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
131
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
132
|
+
"""
|
133
|
+
await self.load_markets()
|
134
|
+
symbols = self.market_symbols(symbols, None, True)
|
135
|
+
messageHash = 'tickers'
|
136
|
+
url = self.urls['api']['ws']['public']
|
137
|
+
request: dict = {
|
138
|
+
'method': 'subscribe',
|
139
|
+
'subscription': {
|
140
|
+
'type': 'webData2', # allMids
|
141
|
+
'user': '0x0000000000000000000000000000000000000000',
|
142
|
+
},
|
143
|
+
}
|
144
|
+
tickers = await self.watch(url, messageHash, self.extend(request, params), messageHash)
|
145
|
+
if self.newUpdates:
|
146
|
+
return self.filter_by_array_tickers(tickers, 'symbol', symbols)
|
147
|
+
return self.tickers
|
148
|
+
|
126
149
|
async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
127
150
|
"""
|
128
151
|
watches information on multiple trades made by the user
|
@@ -154,6 +177,82 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
154
177
|
limit = trades.getLimit(symbol, limit)
|
155
178
|
return self.filter_by_symbol_since_limit(trades, symbol, since, limit, True)
|
156
179
|
|
180
|
+
def handle_ws_tickers(self, client: Client, message):
|
181
|
+
#
|
182
|
+
# {
|
183
|
+
# "channel": "webData2",
|
184
|
+
# "data": {
|
185
|
+
# "meta": {
|
186
|
+
# "universe": [
|
187
|
+
# {
|
188
|
+
# "szDecimals": 5,
|
189
|
+
# "name": "BTC",
|
190
|
+
# "maxLeverage": 50,
|
191
|
+
# "onlyIsolated": False
|
192
|
+
# },
|
193
|
+
# ...
|
194
|
+
# ],
|
195
|
+
# },
|
196
|
+
# "assetCtxs": [
|
197
|
+
# {
|
198
|
+
# "funding": "0.00003005",
|
199
|
+
# "openInterest": "2311.50778",
|
200
|
+
# "prevDayPx": "63475.0",
|
201
|
+
# "dayNtlVlm": "468043329.64289033",
|
202
|
+
# "premium": "0.00094264",
|
203
|
+
# "oraclePx": "64712.0",
|
204
|
+
# "markPx": "64774.0",
|
205
|
+
# "midPx": "64773.5",
|
206
|
+
# "impactPxs": [
|
207
|
+
# "64773.0",
|
208
|
+
# "64774.0"
|
209
|
+
# ]
|
210
|
+
# },
|
211
|
+
# ...
|
212
|
+
# ],
|
213
|
+
# "spotAssetCtxs": [
|
214
|
+
# {
|
215
|
+
# "prevDayPx": "0.20937",
|
216
|
+
# "dayNtlVlm": "11188888.61984999",
|
217
|
+
# "markPx": "0.19722",
|
218
|
+
# "midPx": "0.197145",
|
219
|
+
# "circulatingSupply": "598760557.12072003",
|
220
|
+
# "coin": "PURR/USDC"
|
221
|
+
# },
|
222
|
+
# ...
|
223
|
+
# ],
|
224
|
+
# }
|
225
|
+
# }
|
226
|
+
#
|
227
|
+
# spot
|
228
|
+
rawData = self.safe_dict(message, 'data', {})
|
229
|
+
spotAssets = self.safe_list(rawData, 'spotAssetCtxs', [])
|
230
|
+
parsedTickers = []
|
231
|
+
for i in range(0, len(spotAssets)):
|
232
|
+
assetObject = spotAssets[i]
|
233
|
+
marketId = self.safe_string(assetObject, 'coin')
|
234
|
+
market = self.safe_market(marketId, None, None, 'spot')
|
235
|
+
ticker = self.parse_ws_ticker(assetObject, market)
|
236
|
+
parsedTickers.append(ticker)
|
237
|
+
# perpetuals
|
238
|
+
meta = self.safe_dict(rawData, 'meta', {})
|
239
|
+
universe = self.safe_list(meta, 'universe', [])
|
240
|
+
assetCtxs = self.safe_list(rawData, 'assetCtxs', [])
|
241
|
+
for i in range(0, len(universe)):
|
242
|
+
data = self.extend(
|
243
|
+
self.safe_dict(universe, i, {}),
|
244
|
+
self.safe_dict(assetCtxs, i, {})
|
245
|
+
)
|
246
|
+
id = data['name'] + '/USDC:USDC'
|
247
|
+
market = self.safe_market(id, None, None, 'swap')
|
248
|
+
ticker = self.parse_ws_ticker(data, market)
|
249
|
+
parsedTickers.append(ticker)
|
250
|
+
tickers = self.index_by(parsedTickers, 'symbol')
|
251
|
+
client.resolve(tickers, 'tickers')
|
252
|
+
|
253
|
+
def parse_ws_ticker(self, rawTicker, market: Market = None) -> Ticker:
|
254
|
+
return self.parse_ticker(rawTicker, market)
|
255
|
+
|
157
256
|
def handle_my_trades(self, client: Client, message):
|
158
257
|
#
|
159
258
|
# {
|
@@ -497,6 +596,7 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
497
596
|
'candle': self.handle_ohlcv,
|
498
597
|
'orderUpdates': self.handle_order,
|
499
598
|
'userFills': self.handle_my_trades,
|
599
|
+
'webData2': self.handle_ws_tickers,
|
500
600
|
}
|
501
601
|
exacMethod = self.safe_value(methods, topic)
|
502
602
|
if exacMethod is not None:
|
@@ -1528,7 +1528,7 @@ class okx(ccxt.async_support.okx):
|
|
1528
1528
|
await self.load_markets()
|
1529
1529
|
await self.authenticate()
|
1530
1530
|
url = self.get_url('private', 'private')
|
1531
|
-
messageHash = str(self.
|
1531
|
+
messageHash = str(self.milliseconds())
|
1532
1532
|
op = None
|
1533
1533
|
op, params = self.handle_option_and_params(params, 'createOrderWs', 'op', 'batch-orders')
|
1534
1534
|
args = self.create_order_request(symbol, type, side, amount, price, params)
|
@@ -1593,7 +1593,7 @@ class okx(ccxt.async_support.okx):
|
|
1593
1593
|
await self.load_markets()
|
1594
1594
|
await self.authenticate()
|
1595
1595
|
url = self.get_url('private', 'private')
|
1596
|
-
messageHash = str(self.
|
1596
|
+
messageHash = str(self.milliseconds())
|
1597
1597
|
op = None
|
1598
1598
|
op, params = self.handle_option_and_params(params, 'editOrderWs', 'op', 'amend-order')
|
1599
1599
|
args = self.edit_order_request(id, symbol, type, side, amount, price, params)
|
@@ -1619,7 +1619,7 @@ class okx(ccxt.async_support.okx):
|
|
1619
1619
|
await self.load_markets()
|
1620
1620
|
await self.authenticate()
|
1621
1621
|
url = self.get_url('private', 'private')
|
1622
|
-
messageHash = str(self.
|
1622
|
+
messageHash = str(self.milliseconds())
|
1623
1623
|
clientOrderId = self.safe_string_2(params, 'clOrdId', 'clientOrderId')
|
1624
1624
|
params = self.omit(params, ['clientOrderId', 'clOrdId'])
|
1625
1625
|
arg: dict = {
|
@@ -1653,7 +1653,7 @@ class okx(ccxt.async_support.okx):
|
|
1653
1653
|
await self.load_markets()
|
1654
1654
|
await self.authenticate()
|
1655
1655
|
url = self.get_url('private', 'private')
|
1656
|
-
messageHash = str(self.
|
1656
|
+
messageHash = str(self.milliseconds())
|
1657
1657
|
args = []
|
1658
1658
|
for i in range(0, idsLength):
|
1659
1659
|
arg: dict = {
|
@@ -1684,7 +1684,7 @@ class okx(ccxt.async_support.okx):
|
|
1684
1684
|
if market['type'] != 'option':
|
1685
1685
|
raise BadRequest(self.id + 'cancelAllOrdersWs is only applicable to Option in Portfolio Margin mode, and MMP privilege is required.')
|
1686
1686
|
url = self.get_url('private', 'private')
|
1687
|
-
messageHash = str(self.
|
1687
|
+
messageHash = str(self.milliseconds())
|
1688
1688
|
request: dict = {
|
1689
1689
|
'id': messageHash,
|
1690
1690
|
'op': 'mass-cancel',
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.66
|
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
|
@@ -59,6 +59,7 @@ Current feature list:
|
|
59
59
|
|
60
60
|
|
61
61
|
## Sponsored Promotion
|
62
|
+
[](https://bingx.com/en/act/contestNew/7947320527/)
|
62
63
|
|
63
64
|
## See Also
|
64
65
|
|
@@ -257,13 +258,13 @@ console.log(version, Object.keys(exchanges));
|
|
257
258
|
|
258
259
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
259
260
|
|
260
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
261
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
261
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.66/dist/ccxt.browser.min.js
|
262
|
+
* unpkg: https://unpkg.com/ccxt@4.3.66/dist/ccxt.browser.min.js
|
262
263
|
|
263
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.
|
264
265
|
|
265
266
|
```HTML
|
266
|
-
<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.66/dist/ccxt.browser.min.js"></script>
|
267
268
|
```
|
268
269
|
|
269
270
|
Creates a global `ccxt` object:
|