ccxt 4.2.81__tar.gz → 4.2.82__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.2.81/ccxt.egg-info → ccxt-4.2.82}/PKG-INFO +4 -4
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/__init__.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitrue.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/delta.py +146 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/deribit.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/hyperliquid.py +4 -4
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/okx.py +136 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/base/exchange.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitrue.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/delta.py +146 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/deribit.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/hyperliquid.py +4 -4
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/okx.py +136 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.2.81 → ccxt-4.2.82}/package.json +1 -1
- {ccxt-4.2.81 → ccxt-4.2.82}/LICENSE.txt +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/MANIFEST.in +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/README.rst +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinbaseinternational.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/ace.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/alpaca.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/ascendex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/blofin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinbaseinternational.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/base/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/base/errors.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/base/precise.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/base/types.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bequant.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bigone.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/binance.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/binanceus.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bingx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bit2c.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitbank.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitbay.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitbns.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitfinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitflyer.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitget.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bithumb.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitmart.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitmex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitopro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitpanda.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitso.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitstamp.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitteam.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bitvavo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bl3p.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/blofin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/btcalpha.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/btcbox.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/btcturk.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/bybit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/cex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinbase.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinbaseinternational.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coincheck.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinlist.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinmate.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinmetro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinone.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinsph.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/coinspot.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/cryptocom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/currencycom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/digifinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/exmo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/flowbtc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/fmfwio.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/gate.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/gateio.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/gemini.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/hitbtc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/hollaex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/htx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/huobi.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/huobijp.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/idex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/independentreserve.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/indodax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/kraken.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/kucoin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/kuna.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/latoken.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/lbank.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/luno.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/lykke.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/mercado.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/mexc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/ndax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/novadax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/oceanex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/okcoin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/onetrading.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/p2b.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/paymium.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/phemex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/poloniex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/binance.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/cex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/coinbaseinternational.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/gate.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/htx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/hyperliquid.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/idex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/luno.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/okx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/probit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/pro/woo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/probit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_last_price.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_margin_mode.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/test_async.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/test/test_sync.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/timex.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/tradeogre.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/upbit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/wazirx.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/whitebit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/woo.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/yobit.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/zaif.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt/zonda.py +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/setup.cfg +0 -0
- {ccxt-4.2.81 → ccxt-4.2.82}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.2.
|
3
|
+
Version: 4.2.82
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -226,13 +226,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
226
226
|
|
227
227
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
228
228
|
|
229
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
230
|
-
* unpkg: https://unpkg.com/ccxt@4.2.
|
229
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.82/dist/ccxt.browser.js
|
230
|
+
* unpkg: https://unpkg.com/ccxt@4.2.82/dist/ccxt.browser.js
|
231
231
|
|
232
232
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
233
233
|
|
234
234
|
```HTML
|
235
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
235
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.82/dist/ccxt.browser.js"></script>
|
236
236
|
```
|
237
237
|
|
238
238
|
Creates a global `ccxt` object:
|
@@ -422,7 +422,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
422
422
|
'-1022': AuthenticationError, # {"code":-1022,"msg":"Signature for self request is not valid."}
|
423
423
|
'-1100': BadRequest, # createOrder(symbol, 1, asdf) -> 'Illegal characters found in parameter 'price'
|
424
424
|
'-1101': BadRequest, # Too many parameters; expected %s and received %s.
|
425
|
-
'-1102': BadRequest, # Param %s or %s must be sent, but both were empty
|
425
|
+
'-1102': BadRequest, # Param %s or %s must be sent, but both were empty # {"code":-1102,"msg":"timestamp IllegalArgumentException.","data":null}
|
426
426
|
'-1103': BadRequest, # An unknown parameter was sent.
|
427
427
|
'-1104': BadRequest, # Not all sent parameters were read, read 8 parameters but was sent 9
|
428
428
|
'-1105': BadRequest, # Parameter %s was empty.
|
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.delta import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, MarginMode, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade
|
9
|
+
from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, MarginMode, Market, MarketInterface, Num, Option, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import ArgumentsRequired
|
@@ -71,6 +71,8 @@ class delta(Exchange, ImplicitAPI):
|
|
71
71
|
'fetchOHLCV': True,
|
72
72
|
'fetchOpenInterest': True,
|
73
73
|
'fetchOpenOrders': True,
|
74
|
+
'fetchOption': True,
|
75
|
+
'fetchOptionChain': False,
|
74
76
|
'fetchOrderBook': True,
|
75
77
|
'fetchPosition': True,
|
76
78
|
'fetchPositionMode': False,
|
@@ -3192,6 +3194,149 @@ class delta(Exchange, ImplicitAPI):
|
|
3192
3194
|
'marginMode': self.safe_string(marginMode, 'margin_mode'),
|
3193
3195
|
}
|
3194
3196
|
|
3197
|
+
async def fetch_option(self, symbol: str, params={}) -> Option:
|
3198
|
+
"""
|
3199
|
+
fetches option data that is commonly found in an option chain
|
3200
|
+
:see: https://docs.delta.exchange/#get-ticker-for-a-product-by-symbol
|
3201
|
+
:param str symbol: unified market symbol
|
3202
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3203
|
+
:returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
|
3204
|
+
"""
|
3205
|
+
await self.load_markets()
|
3206
|
+
market = self.market(symbol)
|
3207
|
+
request = {
|
3208
|
+
'symbol': market['id'],
|
3209
|
+
}
|
3210
|
+
response = await self.publicGetTickersSymbol(self.extend(request, params))
|
3211
|
+
#
|
3212
|
+
# {
|
3213
|
+
# "result": {
|
3214
|
+
# "close": 6793.0,
|
3215
|
+
# "contract_type": "call_options",
|
3216
|
+
# "greeks": {
|
3217
|
+
# "delta": "0.94739174",
|
3218
|
+
# "gamma": "0.00002206",
|
3219
|
+
# "rho": "11.00890725",
|
3220
|
+
# "spot": "36839.58124652",
|
3221
|
+
# "theta": "-18.18365310",
|
3222
|
+
# "vega": "7.85209698"
|
3223
|
+
# },
|
3224
|
+
# "high": 7556.0,
|
3225
|
+
# "low": 6793.0,
|
3226
|
+
# "mark_price": "6955.70698909",
|
3227
|
+
# "mark_vol": "0.66916863",
|
3228
|
+
# "oi": "1.8980",
|
3229
|
+
# "oi_change_usd_6h": "110.4600",
|
3230
|
+
# "oi_contracts": "1898",
|
3231
|
+
# "oi_value": "1.8980",
|
3232
|
+
# "oi_value_symbol": "BTC",
|
3233
|
+
# "oi_value_usd": "69940.7319",
|
3234
|
+
# "open": 7.2e3,
|
3235
|
+
# "price_band": {
|
3236
|
+
# "lower_limit": "5533.89814767",
|
3237
|
+
# "upper_limit": "11691.37688371"
|
3238
|
+
# },
|
3239
|
+
# "product_id": 129508,
|
3240
|
+
# "quotes": {
|
3241
|
+
# "ask_iv": "0.90180438",
|
3242
|
+
# "ask_size": "1898",
|
3243
|
+
# "best_ask": "7210",
|
3244
|
+
# "best_bid": "6913",
|
3245
|
+
# "bid_iv": "0.60881706",
|
3246
|
+
# "bid_size": "3163",
|
3247
|
+
# "impact_mid_price": null,
|
3248
|
+
# "mark_iv": "0.66973549"
|
3249
|
+
# },
|
3250
|
+
# "size": 5,
|
3251
|
+
# "spot_price": "36839.58153868",
|
3252
|
+
# "strike_price": "30000",
|
3253
|
+
# "symbol": "C-BTC-30000-241123",
|
3254
|
+
# "timestamp": 1699584998504530,
|
3255
|
+
# "turnover": 184.41206804,
|
3256
|
+
# "turnover_symbol": "USDT",
|
3257
|
+
# "turnover_usd": 184.41206804,
|
3258
|
+
# "volume": 0.005
|
3259
|
+
# },
|
3260
|
+
# "success": True
|
3261
|
+
# }
|
3262
|
+
#
|
3263
|
+
result = self.safe_dict(response, 'result', {})
|
3264
|
+
return self.parse_option(result, None, market)
|
3265
|
+
|
3266
|
+
def parse_option(self, chain, currency: Currency = None, market: Market = None):
|
3267
|
+
#
|
3268
|
+
# {
|
3269
|
+
# "close": 6793.0,
|
3270
|
+
# "contract_type": "call_options",
|
3271
|
+
# "greeks": {
|
3272
|
+
# "delta": "0.94739174",
|
3273
|
+
# "gamma": "0.00002206",
|
3274
|
+
# "rho": "11.00890725",
|
3275
|
+
# "spot": "36839.58124652",
|
3276
|
+
# "theta": "-18.18365310",
|
3277
|
+
# "vega": "7.85209698"
|
3278
|
+
# },
|
3279
|
+
# "high": 7556.0,
|
3280
|
+
# "low": 6793.0,
|
3281
|
+
# "mark_price": "6955.70698909",
|
3282
|
+
# "mark_vol": "0.66916863",
|
3283
|
+
# "oi": "1.8980",
|
3284
|
+
# "oi_change_usd_6h": "110.4600",
|
3285
|
+
# "oi_contracts": "1898",
|
3286
|
+
# "oi_value": "1.8980",
|
3287
|
+
# "oi_value_symbol": "BTC",
|
3288
|
+
# "oi_value_usd": "69940.7319",
|
3289
|
+
# "open": 7.2e3,
|
3290
|
+
# "price_band": {
|
3291
|
+
# "lower_limit": "5533.89814767",
|
3292
|
+
# "upper_limit": "11691.37688371"
|
3293
|
+
# },
|
3294
|
+
# "product_id": 129508,
|
3295
|
+
# "quotes": {
|
3296
|
+
# "ask_iv": "0.90180438",
|
3297
|
+
# "ask_size": "1898",
|
3298
|
+
# "best_ask": "7210",
|
3299
|
+
# "best_bid": "6913",
|
3300
|
+
# "bid_iv": "0.60881706",
|
3301
|
+
# "bid_size": "3163",
|
3302
|
+
# "impact_mid_price": null,
|
3303
|
+
# "mark_iv": "0.66973549"
|
3304
|
+
# },
|
3305
|
+
# "size": 5,
|
3306
|
+
# "spot_price": "36839.58153868",
|
3307
|
+
# "strike_price": "30000",
|
3308
|
+
# "symbol": "C-BTC-30000-241123",
|
3309
|
+
# "timestamp": 1699584998504530,
|
3310
|
+
# "turnover": 184.41206804,
|
3311
|
+
# "turnover_symbol": "USDT",
|
3312
|
+
# "turnover_usd": 184.41206804,
|
3313
|
+
# "volume": 0.005
|
3314
|
+
# }
|
3315
|
+
#
|
3316
|
+
marketId = self.safe_string(chain, 'symbol')
|
3317
|
+
market = self.safe_market(marketId, market)
|
3318
|
+
quotes = self.safe_dict(chain, 'quotes', {})
|
3319
|
+
timestamp = self.safe_integer_product(chain, 'timestamp', 0.001)
|
3320
|
+
return {
|
3321
|
+
'info': chain,
|
3322
|
+
'currency': None,
|
3323
|
+
'symbol': market['symbol'],
|
3324
|
+
'timestamp': timestamp,
|
3325
|
+
'datetime': self.iso8601(timestamp),
|
3326
|
+
'impliedVolatility': self.safe_number(quotes, 'mark_iv'),
|
3327
|
+
'openInterest': self.safe_number(chain, 'oi'),
|
3328
|
+
'bidPrice': self.safe_number(quotes, 'best_bid'),
|
3329
|
+
'askPrice': self.safe_number(quotes, 'best_ask'),
|
3330
|
+
'midPrice': self.safe_number(quotes, 'impact_mid_price'),
|
3331
|
+
'markPrice': self.safe_number(chain, 'mark_price'),
|
3332
|
+
'lastPrice': None,
|
3333
|
+
'underlyingPrice': self.safe_number(chain, 'spot_price'),
|
3334
|
+
'change': None,
|
3335
|
+
'percentage': None,
|
3336
|
+
'baseVolume': self.safe_number(chain, 'volume'),
|
3337
|
+
'quoteVolume': None,
|
3338
|
+
}
|
3339
|
+
|
3195
3340
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
3196
3341
|
requestPath = '/' + self.version + '/' + self.implode_params(path, params)
|
3197
3342
|
url = self.urls['api'][api] + requestPath
|
@@ -3403,7 +3403,7 @@ class deribit(Exchange, ImplicitAPI):
|
|
3403
3403
|
timestamp = self.safe_integer(chain, 'timestamp')
|
3404
3404
|
return {
|
3405
3405
|
'info': chain,
|
3406
|
-
'currency': code
|
3406
|
+
'currency': code,
|
3407
3407
|
'symbol': market['symbol'],
|
3408
3408
|
'timestamp': timestamp,
|
3409
3409
|
'datetime': self.iso8601(timestamp),
|
@@ -50,7 +50,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
50
50
|
'createMarketSellOrderWithCost': False,
|
51
51
|
'createOrder': True,
|
52
52
|
'createOrders': True,
|
53
|
-
'createReduceOnlyOrder':
|
53
|
+
'createReduceOnlyOrder': True,
|
54
54
|
'editOrder': True,
|
55
55
|
'fetchAccounts': False,
|
56
56
|
'fetchBalance': True,
|
@@ -851,7 +851,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
851
851
|
orderType['limit'] = {
|
852
852
|
'tif': timeInForce,
|
853
853
|
}
|
854
|
-
orderParams = self.omit(orderParams, ['clientOrderId', 'slippage', 'triggerPrice', 'stopPrice', 'stopLossPrice', 'takeProfitPrice', 'timeInForce', 'client_id'])
|
854
|
+
orderParams = self.omit(orderParams, ['clientOrderId', 'slippage', 'triggerPrice', 'stopPrice', 'stopLossPrice', 'takeProfitPrice', 'timeInForce', 'client_id', 'reduceOnly', 'postOnly'])
|
855
855
|
orderObj = {
|
856
856
|
'a': self.parse_to_int(market['baseId']),
|
857
857
|
'b': isBuy,
|
@@ -1920,9 +1920,9 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1920
1920
|
userAux, params = self.handle_option_and_params(params, methodName, 'user')
|
1921
1921
|
user = userAux
|
1922
1922
|
user, params = self.handle_option_and_params(params, methodName, 'address', userAux)
|
1923
|
-
if user is not None:
|
1923
|
+
if (user is not None) and (user != ''):
|
1924
1924
|
return [user, params]
|
1925
|
-
if self.walletAddress is not None:
|
1925
|
+
if (self.walletAddress is not None) and (self.walletAddress != ''):
|
1926
1926
|
return [self.walletAddress, params]
|
1927
1927
|
raise ArgumentsRequired(self.id + ' ' + methodName + '() requires a user parameter inside \'params\' or the wallet address set')
|
1928
1928
|
|
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.okx import ImplicitAPI
|
8
8
|
import asyncio
|
9
9
|
import hashlib
|
10
|
-
from ccxt.base.types import Account, Balances, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
10
|
+
from ccxt.base.types import Account, Balances, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
13
13
|
from ccxt.base.errors import PermissionDenied
|
@@ -117,6 +117,8 @@ class okx(Exchange, ImplicitAPI):
|
|
117
117
|
'fetchOpenInterestHistory': True,
|
118
118
|
'fetchOpenOrder': None,
|
119
119
|
'fetchOpenOrders': True,
|
120
|
+
'fetchOption': True,
|
121
|
+
'fetchOptionChain': True,
|
120
122
|
'fetchOrder': True,
|
121
123
|
'fetchOrderBook': True,
|
122
124
|
'fetchOrderBooks': False,
|
@@ -6910,6 +6912,139 @@ class okx(Exchange, ImplicitAPI):
|
|
6910
6912
|
order = self.safe_value(data, 0)
|
6911
6913
|
return self.parse_order(order, market)
|
6912
6914
|
|
6915
|
+
async def fetch_option(self, symbol: str, params={}) -> Option:
|
6916
|
+
"""
|
6917
|
+
fetches option data that is commonly found in an option chain
|
6918
|
+
:see: https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-ticker
|
6919
|
+
:param str symbol: unified market symbol
|
6920
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
6921
|
+
:returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
|
6922
|
+
"""
|
6923
|
+
await self.load_markets()
|
6924
|
+
market = self.market(symbol)
|
6925
|
+
request = {
|
6926
|
+
'instId': market['id'],
|
6927
|
+
}
|
6928
|
+
response = await self.publicGetMarketTicker(self.extend(request, params))
|
6929
|
+
#
|
6930
|
+
# {
|
6931
|
+
# "code": "0",
|
6932
|
+
# "msg": "",
|
6933
|
+
# "data": [
|
6934
|
+
# {
|
6935
|
+
# "instType": "OPTION",
|
6936
|
+
# "instId": "BTC-USD-241227-60000-P",
|
6937
|
+
# "last": "",
|
6938
|
+
# "lastSz": "0",
|
6939
|
+
# "askPx": "",
|
6940
|
+
# "askSz": "0",
|
6941
|
+
# "bidPx": "",
|
6942
|
+
# "bidSz": "0",
|
6943
|
+
# "open24h": "",
|
6944
|
+
# "high24h": "",
|
6945
|
+
# "low24h": "",
|
6946
|
+
# "volCcy24h": "0",
|
6947
|
+
# "vol24h": "0",
|
6948
|
+
# "ts": "1711176035035",
|
6949
|
+
# "sodUtc0": "",
|
6950
|
+
# "sodUtc8": ""
|
6951
|
+
# }
|
6952
|
+
# ]
|
6953
|
+
# }
|
6954
|
+
#
|
6955
|
+
result = self.safe_list(response, 'data', [])
|
6956
|
+
chain = self.safe_dict(result, 0, {})
|
6957
|
+
return self.parse_option(chain, None, market)
|
6958
|
+
|
6959
|
+
async def fetch_option_chain(self, code: str, params={}) -> OptionChain:
|
6960
|
+
"""
|
6961
|
+
fetches data for an underlying asset that is commonly found in an option chain
|
6962
|
+
:see: https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-tickers
|
6963
|
+
:param str currency: base currency to fetch an option chain for
|
6964
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
6965
|
+
:param str [params.uly]: the underlying asset, can be obtained from fetchUnderlyingAssets()
|
6966
|
+
:returns dict: a list of `option chain structures <https://docs.ccxt.com/#/?id=option-chain-structure>`
|
6967
|
+
"""
|
6968
|
+
await self.load_markets()
|
6969
|
+
currency = self.currency(code)
|
6970
|
+
request = {
|
6971
|
+
'uly': currency['code'] + '-USD',
|
6972
|
+
'instType': 'OPTION',
|
6973
|
+
}
|
6974
|
+
response = await self.publicGetMarketTickers(self.extend(request, params))
|
6975
|
+
#
|
6976
|
+
# {
|
6977
|
+
# "code": "0",
|
6978
|
+
# "msg": "",
|
6979
|
+
# "data": [
|
6980
|
+
# {
|
6981
|
+
# "instType": "OPTION",
|
6982
|
+
# "instId": "BTC-USD-240323-52000-C",
|
6983
|
+
# "last": "",
|
6984
|
+
# "lastSz": "0",
|
6985
|
+
# "askPx": "",
|
6986
|
+
# "askSz": "0",
|
6987
|
+
# "bidPx": "",
|
6988
|
+
# "bidSz": "0",
|
6989
|
+
# "open24h": "",
|
6990
|
+
# "high24h": "",
|
6991
|
+
# "low24h": "",
|
6992
|
+
# "volCcy24h": "0",
|
6993
|
+
# "vol24h": "0",
|
6994
|
+
# "ts": "1711176207008",
|
6995
|
+
# "sodUtc0": "",
|
6996
|
+
# "sodUtc8": ""
|
6997
|
+
# },
|
6998
|
+
# ]
|
6999
|
+
# }
|
7000
|
+
#
|
7001
|
+
result = self.safe_list(response, 'data', [])
|
7002
|
+
return self.parse_option_chain(result, None, 'instId')
|
7003
|
+
|
7004
|
+
def parse_option(self, chain, currency: Currency = None, market: Market = None):
|
7005
|
+
#
|
7006
|
+
# {
|
7007
|
+
# "instType": "OPTION",
|
7008
|
+
# "instId": "BTC-USD-241227-60000-P",
|
7009
|
+
# "last": "",
|
7010
|
+
# "lastSz": "0",
|
7011
|
+
# "askPx": "",
|
7012
|
+
# "askSz": "0",
|
7013
|
+
# "bidPx": "",
|
7014
|
+
# "bidSz": "0",
|
7015
|
+
# "open24h": "",
|
7016
|
+
# "high24h": "",
|
7017
|
+
# "low24h": "",
|
7018
|
+
# "volCcy24h": "0",
|
7019
|
+
# "vol24h": "0",
|
7020
|
+
# "ts": "1711176035035",
|
7021
|
+
# "sodUtc0": "",
|
7022
|
+
# "sodUtc8": ""
|
7023
|
+
# }
|
7024
|
+
#
|
7025
|
+
marketId = self.safe_string(chain, 'instId')
|
7026
|
+
market = self.safe_market(marketId, market)
|
7027
|
+
timestamp = self.safe_integer(chain, 'ts')
|
7028
|
+
return {
|
7029
|
+
'info': chain,
|
7030
|
+
'currency': None,
|
7031
|
+
'symbol': market['symbol'],
|
7032
|
+
'timestamp': timestamp,
|
7033
|
+
'datetime': self.iso8601(timestamp),
|
7034
|
+
'impliedVolatility': None,
|
7035
|
+
'openInterest': None,
|
7036
|
+
'bidPrice': self.safe_number(chain, 'bidPx'),
|
7037
|
+
'askPrice': self.safe_number(chain, 'askPx'),
|
7038
|
+
'midPrice': None,
|
7039
|
+
'markPrice': None,
|
7040
|
+
'lastPrice': self.safe_number(chain, 'last'),
|
7041
|
+
'underlyingPrice': None,
|
7042
|
+
'change': None,
|
7043
|
+
'percentage': None,
|
7044
|
+
'baseVolume': self.safe_number(chain, 'volCcy24h'),
|
7045
|
+
'quoteVolume': None,
|
7046
|
+
}
|
7047
|
+
|
6913
7048
|
def handle_errors(self, httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
6914
7049
|
if not response:
|
6915
7050
|
return None # fallback to default error handler
|
@@ -421,7 +421,7 @@ class bitrue(Exchange, ImplicitAPI):
|
|
421
421
|
'-1022': AuthenticationError, # {"code":-1022,"msg":"Signature for self request is not valid."}
|
422
422
|
'-1100': BadRequest, # createOrder(symbol, 1, asdf) -> 'Illegal characters found in parameter 'price'
|
423
423
|
'-1101': BadRequest, # Too many parameters; expected %s and received %s.
|
424
|
-
'-1102': BadRequest, # Param %s or %s must be sent, but both were empty
|
424
|
+
'-1102': BadRequest, # Param %s or %s must be sent, but both were empty # {"code":-1102,"msg":"timestamp IllegalArgumentException.","data":null}
|
425
425
|
'-1103': BadRequest, # An unknown parameter was sent.
|
426
426
|
'-1104': BadRequest, # Not all sent parameters were read, read 8 parameters but was sent 9
|
427
427
|
'-1105': BadRequest, # Parameter %s was empty.
|
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.delta import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, MarginMode, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade
|
9
|
+
from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, MarginMode, Market, MarketInterface, Num, Option, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import ArgumentsRequired
|
@@ -71,6 +71,8 @@ class delta(Exchange, ImplicitAPI):
|
|
71
71
|
'fetchOHLCV': True,
|
72
72
|
'fetchOpenInterest': True,
|
73
73
|
'fetchOpenOrders': True,
|
74
|
+
'fetchOption': True,
|
75
|
+
'fetchOptionChain': False,
|
74
76
|
'fetchOrderBook': True,
|
75
77
|
'fetchPosition': True,
|
76
78
|
'fetchPositionMode': False,
|
@@ -3192,6 +3194,149 @@ class delta(Exchange, ImplicitAPI):
|
|
3192
3194
|
'marginMode': self.safe_string(marginMode, 'margin_mode'),
|
3193
3195
|
}
|
3194
3196
|
|
3197
|
+
def fetch_option(self, symbol: str, params={}) -> Option:
|
3198
|
+
"""
|
3199
|
+
fetches option data that is commonly found in an option chain
|
3200
|
+
:see: https://docs.delta.exchange/#get-ticker-for-a-product-by-symbol
|
3201
|
+
:param str symbol: unified market symbol
|
3202
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3203
|
+
:returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
|
3204
|
+
"""
|
3205
|
+
self.load_markets()
|
3206
|
+
market = self.market(symbol)
|
3207
|
+
request = {
|
3208
|
+
'symbol': market['id'],
|
3209
|
+
}
|
3210
|
+
response = self.publicGetTickersSymbol(self.extend(request, params))
|
3211
|
+
#
|
3212
|
+
# {
|
3213
|
+
# "result": {
|
3214
|
+
# "close": 6793.0,
|
3215
|
+
# "contract_type": "call_options",
|
3216
|
+
# "greeks": {
|
3217
|
+
# "delta": "0.94739174",
|
3218
|
+
# "gamma": "0.00002206",
|
3219
|
+
# "rho": "11.00890725",
|
3220
|
+
# "spot": "36839.58124652",
|
3221
|
+
# "theta": "-18.18365310",
|
3222
|
+
# "vega": "7.85209698"
|
3223
|
+
# },
|
3224
|
+
# "high": 7556.0,
|
3225
|
+
# "low": 6793.0,
|
3226
|
+
# "mark_price": "6955.70698909",
|
3227
|
+
# "mark_vol": "0.66916863",
|
3228
|
+
# "oi": "1.8980",
|
3229
|
+
# "oi_change_usd_6h": "110.4600",
|
3230
|
+
# "oi_contracts": "1898",
|
3231
|
+
# "oi_value": "1.8980",
|
3232
|
+
# "oi_value_symbol": "BTC",
|
3233
|
+
# "oi_value_usd": "69940.7319",
|
3234
|
+
# "open": 7.2e3,
|
3235
|
+
# "price_band": {
|
3236
|
+
# "lower_limit": "5533.89814767",
|
3237
|
+
# "upper_limit": "11691.37688371"
|
3238
|
+
# },
|
3239
|
+
# "product_id": 129508,
|
3240
|
+
# "quotes": {
|
3241
|
+
# "ask_iv": "0.90180438",
|
3242
|
+
# "ask_size": "1898",
|
3243
|
+
# "best_ask": "7210",
|
3244
|
+
# "best_bid": "6913",
|
3245
|
+
# "bid_iv": "0.60881706",
|
3246
|
+
# "bid_size": "3163",
|
3247
|
+
# "impact_mid_price": null,
|
3248
|
+
# "mark_iv": "0.66973549"
|
3249
|
+
# },
|
3250
|
+
# "size": 5,
|
3251
|
+
# "spot_price": "36839.58153868",
|
3252
|
+
# "strike_price": "30000",
|
3253
|
+
# "symbol": "C-BTC-30000-241123",
|
3254
|
+
# "timestamp": 1699584998504530,
|
3255
|
+
# "turnover": 184.41206804,
|
3256
|
+
# "turnover_symbol": "USDT",
|
3257
|
+
# "turnover_usd": 184.41206804,
|
3258
|
+
# "volume": 0.005
|
3259
|
+
# },
|
3260
|
+
# "success": True
|
3261
|
+
# }
|
3262
|
+
#
|
3263
|
+
result = self.safe_dict(response, 'result', {})
|
3264
|
+
return self.parse_option(result, None, market)
|
3265
|
+
|
3266
|
+
def parse_option(self, chain, currency: Currency = None, market: Market = None):
|
3267
|
+
#
|
3268
|
+
# {
|
3269
|
+
# "close": 6793.0,
|
3270
|
+
# "contract_type": "call_options",
|
3271
|
+
# "greeks": {
|
3272
|
+
# "delta": "0.94739174",
|
3273
|
+
# "gamma": "0.00002206",
|
3274
|
+
# "rho": "11.00890725",
|
3275
|
+
# "spot": "36839.58124652",
|
3276
|
+
# "theta": "-18.18365310",
|
3277
|
+
# "vega": "7.85209698"
|
3278
|
+
# },
|
3279
|
+
# "high": 7556.0,
|
3280
|
+
# "low": 6793.0,
|
3281
|
+
# "mark_price": "6955.70698909",
|
3282
|
+
# "mark_vol": "0.66916863",
|
3283
|
+
# "oi": "1.8980",
|
3284
|
+
# "oi_change_usd_6h": "110.4600",
|
3285
|
+
# "oi_contracts": "1898",
|
3286
|
+
# "oi_value": "1.8980",
|
3287
|
+
# "oi_value_symbol": "BTC",
|
3288
|
+
# "oi_value_usd": "69940.7319",
|
3289
|
+
# "open": 7.2e3,
|
3290
|
+
# "price_band": {
|
3291
|
+
# "lower_limit": "5533.89814767",
|
3292
|
+
# "upper_limit": "11691.37688371"
|
3293
|
+
# },
|
3294
|
+
# "product_id": 129508,
|
3295
|
+
# "quotes": {
|
3296
|
+
# "ask_iv": "0.90180438",
|
3297
|
+
# "ask_size": "1898",
|
3298
|
+
# "best_ask": "7210",
|
3299
|
+
# "best_bid": "6913",
|
3300
|
+
# "bid_iv": "0.60881706",
|
3301
|
+
# "bid_size": "3163",
|
3302
|
+
# "impact_mid_price": null,
|
3303
|
+
# "mark_iv": "0.66973549"
|
3304
|
+
# },
|
3305
|
+
# "size": 5,
|
3306
|
+
# "spot_price": "36839.58153868",
|
3307
|
+
# "strike_price": "30000",
|
3308
|
+
# "symbol": "C-BTC-30000-241123",
|
3309
|
+
# "timestamp": 1699584998504530,
|
3310
|
+
# "turnover": 184.41206804,
|
3311
|
+
# "turnover_symbol": "USDT",
|
3312
|
+
# "turnover_usd": 184.41206804,
|
3313
|
+
# "volume": 0.005
|
3314
|
+
# }
|
3315
|
+
#
|
3316
|
+
marketId = self.safe_string(chain, 'symbol')
|
3317
|
+
market = self.safe_market(marketId, market)
|
3318
|
+
quotes = self.safe_dict(chain, 'quotes', {})
|
3319
|
+
timestamp = self.safe_integer_product(chain, 'timestamp', 0.001)
|
3320
|
+
return {
|
3321
|
+
'info': chain,
|
3322
|
+
'currency': None,
|
3323
|
+
'symbol': market['symbol'],
|
3324
|
+
'timestamp': timestamp,
|
3325
|
+
'datetime': self.iso8601(timestamp),
|
3326
|
+
'impliedVolatility': self.safe_number(quotes, 'mark_iv'),
|
3327
|
+
'openInterest': self.safe_number(chain, 'oi'),
|
3328
|
+
'bidPrice': self.safe_number(quotes, 'best_bid'),
|
3329
|
+
'askPrice': self.safe_number(quotes, 'best_ask'),
|
3330
|
+
'midPrice': self.safe_number(quotes, 'impact_mid_price'),
|
3331
|
+
'markPrice': self.safe_number(chain, 'mark_price'),
|
3332
|
+
'lastPrice': None,
|
3333
|
+
'underlyingPrice': self.safe_number(chain, 'spot_price'),
|
3334
|
+
'change': None,
|
3335
|
+
'percentage': None,
|
3336
|
+
'baseVolume': self.safe_number(chain, 'volume'),
|
3337
|
+
'quoteVolume': None,
|
3338
|
+
}
|
3339
|
+
|
3195
3340
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
3196
3341
|
requestPath = '/' + self.version + '/' + self.implode_params(path, params)
|
3197
3342
|
url = self.urls['api'][api] + requestPath
|
@@ -3403,7 +3403,7 @@ class deribit(Exchange, ImplicitAPI):
|
|
3403
3403
|
timestamp = self.safe_integer(chain, 'timestamp')
|
3404
3404
|
return {
|
3405
3405
|
'info': chain,
|
3406
|
-
'currency': code
|
3406
|
+
'currency': code,
|
3407
3407
|
'symbol': market['symbol'],
|
3408
3408
|
'timestamp': timestamp,
|
3409
3409
|
'datetime': self.iso8601(timestamp),
|