ccxt 4.2.79__tar.gz → 4.2.80__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.79/ccxt.egg-info → ccxt-4.2.80}/PKG-INFO +4 -4
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/__init__.py +1 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/upbit.py +1 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/exchange.py +10 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/binance.py +3 -3
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/deribit.py +152 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/gate.py +10 -5
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/hyperliquid.py +42 -9
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/mexc.py +2 -2
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/upbit.py +2 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/base/exchange.py +34 -5
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/base/types.py +23 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/binance.py +3 -3
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/deribit.py +152 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/gate.py +10 -5
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/hyperliquid.py +42 -9
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/mexc.py +2 -2
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/binance.py +5 -5
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitopro.py +2 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/gemini.py +4 -3
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/phemex.py +6 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_ohlcv.py +3 -2
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_shared_methods.py +8 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_ticker.py +7 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/test_async.py +26 -25
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/test_sync.py +26 -25
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/upbit.py +2 -0
- {ccxt-4.2.79 → ccxt-4.2.80/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.2.79 → ccxt-4.2.80}/package.json +1 -1
- {ccxt-4.2.79 → ccxt-4.2.80}/LICENSE.txt +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/MANIFEST.in +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/README.rst +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinbaseinternational.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/ace.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/alpaca.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/ascendex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/blofin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinbaseinternational.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/base/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/base/errors.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/base/precise.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bequant.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bigone.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/binanceus.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bingx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bit2c.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitbank.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitbay.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitbns.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitfinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitflyer.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitget.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bithumb.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitmart.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitmex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitopro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitpanda.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitrue.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitso.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitstamp.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitteam.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bitvavo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bl3p.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/blofin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/btcalpha.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/btcbox.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/btcturk.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/bybit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/cex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinbase.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinbaseinternational.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coincheck.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinlist.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinmate.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinmetro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinone.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinsph.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/coinspot.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/cryptocom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/currencycom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/delta.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/digifinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/exmo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/flowbtc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/fmfwio.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/gateio.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/gemini.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/hitbtc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/hollaex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/htx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/huobi.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/huobijp.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/idex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/independentreserve.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/indodax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/kraken.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/kucoin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/kuna.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/latoken.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/lbank.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/luno.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/lykke.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/mercado.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/ndax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/novadax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/oceanex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/okcoin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/okx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/onetrading.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/p2b.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/paymium.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/phemex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/poloniex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/cex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/coinbaseinternational.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/gate.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/htx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/hyperliquid.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/idex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/luno.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/okx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/probit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/pro/woo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/probit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_last_price.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_margin_mode.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/timex.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/tradeogre.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/wazirx.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/whitebit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/woo.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/yobit.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/zaif.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt/zonda.py +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/setup.cfg +0 -0
- {ccxt-4.2.79 → ccxt-4.2.80}/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.80
|
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.80/dist/ccxt.browser.js
|
230
|
+
* unpkg: https://unpkg.com/ccxt@4.2.80/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.80/dist/ccxt.browser.js"></script>
|
236
236
|
```
|
237
237
|
|
238
238
|
Creates a global `ccxt` object:
|
@@ -9,6 +9,7 @@ class ImplicitAPI:
|
|
9
9
|
public_get_candles_minutes_1 = publicGetCandlesMinutes1 = Entry('candles/minutes/1', 'public', 'GET', {})
|
10
10
|
public_get_candles_minutes_3 = publicGetCandlesMinutes3 = Entry('candles/minutes/3', 'public', 'GET', {})
|
11
11
|
public_get_candles_minutes_5 = publicGetCandlesMinutes5 = Entry('candles/minutes/5', 'public', 'GET', {})
|
12
|
+
public_get_candles_minutes_10 = publicGetCandlesMinutes10 = Entry('candles/minutes/10', 'public', 'GET', {})
|
12
13
|
public_get_candles_minutes_15 = publicGetCandlesMinutes15 = Entry('candles/minutes/15', 'public', 'GET', {})
|
13
14
|
public_get_candles_minutes_30 = publicGetCandlesMinutes30 = Entry('candles/minutes/30', 'public', 'GET', {})
|
14
15
|
public_get_candles_minutes_60 = publicGetCandlesMinutes60 = Entry('candles/minutes/60', 'public', 'GET', {})
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.2.
|
5
|
+
__version__ = '4.2.80'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -982,6 +982,9 @@ class Exchange(BaseExchange):
|
|
982
982
|
async def fetch_order_books(self, symbols: List[str] = None, limit: Int = None, params={}):
|
983
983
|
raise NotSupported(self.id + ' fetchOrderBooks() is not supported yet')
|
984
984
|
|
985
|
+
async def watch_bids_asks(self, symbols: List[str] = None, params={}):
|
986
|
+
raise NotSupported(self.id + ' watchBidsAsks() is not supported yet')
|
987
|
+
|
985
988
|
async def watch_tickers(self, symbols: List[str] = None, params={}):
|
986
989
|
raise NotSupported(self.id + ' watchTickers() is not supported yet')
|
987
990
|
|
@@ -1284,6 +1287,12 @@ class Exchange(BaseExchange):
|
|
1284
1287
|
async def fetch_greeks(self, symbol: str, params={}):
|
1285
1288
|
raise NotSupported(self.id + ' fetchGreeks() is not supported yet')
|
1286
1289
|
|
1290
|
+
async def fetch_option_chain(self, code: str, params={}):
|
1291
|
+
raise NotSupported(self.id + ' fetchOptionChain() is not supported yet')
|
1292
|
+
|
1293
|
+
async def fetch_option(self, symbol: str, params={}):
|
1294
|
+
raise NotSupported(self.id + ' fetchOption() is not supported yet')
|
1295
|
+
|
1287
1296
|
async def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
1288
1297
|
"""
|
1289
1298
|
fetch history of deposits and withdrawals
|
@@ -2423,13 +2423,13 @@ class binance(Exchange, ImplicitAPI):
|
|
2423
2423
|
},
|
2424
2424
|
})
|
2425
2425
|
|
2426
|
-
def is_inverse(self, type, subType=None) -> bool:
|
2426
|
+
def is_inverse(self, type: str, subType: Str = None) -> bool:
|
2427
2427
|
if subType is None:
|
2428
|
-
return
|
2428
|
+
return(type == 'delivery')
|
2429
2429
|
else:
|
2430
2430
|
return subType == 'inverse'
|
2431
2431
|
|
2432
|
-
def is_linear(self, type, subType=None) -> bool:
|
2432
|
+
def is_linear(self, type: str, subType: Str = None) -> bool:
|
2433
2433
|
if subType is None:
|
2434
2434
|
return(type == 'future') or (type == 'swap')
|
2435
2435
|
else:
|
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.deribit import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Account, Balances, Currency, Greeks, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
9
|
+
from ccxt.base.types import Account, Balances, Currency, Greeks, Int, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import PermissionDenied
|
@@ -83,6 +83,8 @@ class deribit(Exchange, ImplicitAPI):
|
|
83
83
|
'fetchMyTrades': True,
|
84
84
|
'fetchOHLCV': True,
|
85
85
|
'fetchOpenOrders': True,
|
86
|
+
'fetchOption': True,
|
87
|
+
'fetchOptionChain': True,
|
86
88
|
'fetchOrder': True,
|
87
89
|
'fetchOrderBook': True,
|
88
90
|
'fetchOrders': False,
|
@@ -3270,6 +3272,155 @@ class deribit(Exchange, ImplicitAPI):
|
|
3270
3272
|
'info': greeks,
|
3271
3273
|
}
|
3272
3274
|
|
3275
|
+
async def fetch_option(self, symbol: str, params={}) -> Option:
|
3276
|
+
"""
|
3277
|
+
fetches option data that is commonly found in an option chain
|
3278
|
+
:see: https://docs.deribit.com/#public-get_book_summary_by_instrument
|
3279
|
+
:param str symbol: unified market symbol
|
3280
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3281
|
+
:returns dict: an `option chain structure <https://docs.ccxt.com/#/?id=option-chain-structure>`
|
3282
|
+
"""
|
3283
|
+
await self.load_markets()
|
3284
|
+
market = self.market(symbol)
|
3285
|
+
request = {
|
3286
|
+
'instrument_name': market['id'],
|
3287
|
+
}
|
3288
|
+
response = await self.publicGetGetBookSummaryByInstrument(self.extend(request, params))
|
3289
|
+
#
|
3290
|
+
# {
|
3291
|
+
# "jsonrpc": "2.0",
|
3292
|
+
# "result": [
|
3293
|
+
# {
|
3294
|
+
# "mid_price": 0.04025,
|
3295
|
+
# "volume_usd": 11045.12,
|
3296
|
+
# "quote_currency": "BTC",
|
3297
|
+
# "estimated_delivery_price": 65444.72,
|
3298
|
+
# "creation_timestamp": 1711100949273,
|
3299
|
+
# "base_currency": "BTC",
|
3300
|
+
# "underlying_index": "BTC-27DEC24",
|
3301
|
+
# "underlying_price": 73742.14,
|
3302
|
+
# "volume": 4.0,
|
3303
|
+
# "interest_rate": 0.0,
|
3304
|
+
# "price_change": -6.9767,
|
3305
|
+
# "open_interest": 274.2,
|
3306
|
+
# "ask_price": 0.042,
|
3307
|
+
# "bid_price": 0.0385,
|
3308
|
+
# "instrument_name": "BTC-27DEC24-240000-C",
|
3309
|
+
# "mark_price": 0.04007735,
|
3310
|
+
# "last": 0.04,
|
3311
|
+
# "low": 0.04,
|
3312
|
+
# "high": 0.043
|
3313
|
+
# }
|
3314
|
+
# ],
|
3315
|
+
# "usIn": 1711100949273223,
|
3316
|
+
# "usOut": 1711100949273580,
|
3317
|
+
# "usDiff": 357,
|
3318
|
+
# "testnet": False
|
3319
|
+
# }
|
3320
|
+
#
|
3321
|
+
result = self.safe_list(response, 'result', [])
|
3322
|
+
chain = self.safe_dict(result, 0, {})
|
3323
|
+
return self.parse_option(chain, None, market)
|
3324
|
+
|
3325
|
+
async def fetch_option_chain(self, code: str, params={}) -> OptionChain:
|
3326
|
+
"""
|
3327
|
+
fetches data for an underlying asset that is commonly found in an option chain
|
3328
|
+
:see: https://docs.deribit.com/#public-get_book_summary_by_currency
|
3329
|
+
:param str currency: base currency to fetch an option chain for
|
3330
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3331
|
+
:returns dict: a list of `option chain structures <https://docs.ccxt.com/#/?id=option-chain-structure>`
|
3332
|
+
"""
|
3333
|
+
await self.load_markets()
|
3334
|
+
currency = self.currency(code)
|
3335
|
+
request = {
|
3336
|
+
'currency': currency['id'],
|
3337
|
+
'kind': 'option',
|
3338
|
+
}
|
3339
|
+
response = await self.publicGetGetBookSummaryByCurrency(self.extend(request, params))
|
3340
|
+
#
|
3341
|
+
# {
|
3342
|
+
# "jsonrpc": "2.0",
|
3343
|
+
# "result": [
|
3344
|
+
# {
|
3345
|
+
# "mid_price": 0.4075,
|
3346
|
+
# "volume_usd": 2836.83,
|
3347
|
+
# "quote_currency": "BTC",
|
3348
|
+
# "estimated_delivery_price": 65479.26,
|
3349
|
+
# "creation_timestamp": 1711101594477,
|
3350
|
+
# "base_currency": "BTC",
|
3351
|
+
# "underlying_index": "BTC-28JUN24",
|
3352
|
+
# "underlying_price": 68827.27,
|
3353
|
+
# "volume": 0.1,
|
3354
|
+
# "interest_rate": 0.0,
|
3355
|
+
# "price_change": 0.0,
|
3356
|
+
# "open_interest": 364.1,
|
3357
|
+
# "ask_price": 0.411,
|
3358
|
+
# "bid_price": 0.404,
|
3359
|
+
# "instrument_name": "BTC-28JUN24-42000-C",
|
3360
|
+
# "mark_price": 0.40752052,
|
3361
|
+
# "last": 0.423,
|
3362
|
+
# "low": 0.423,
|
3363
|
+
# "high": 0.423
|
3364
|
+
# }
|
3365
|
+
# ],
|
3366
|
+
# "usIn": 1711101594456388,
|
3367
|
+
# "usOut": 1711101594484065,
|
3368
|
+
# "usDiff": 27677,
|
3369
|
+
# "testnet": False
|
3370
|
+
# }
|
3371
|
+
#
|
3372
|
+
result = self.safe_list(response, 'result', [])
|
3373
|
+
return self.parse_option_chain(result, 'base_currency', 'instrument_name')
|
3374
|
+
|
3375
|
+
def parse_option(self, chain, currency: Currency = None, market: Market = None):
|
3376
|
+
#
|
3377
|
+
# {
|
3378
|
+
# "mid_price": 0.04025,
|
3379
|
+
# "volume_usd": 11045.12,
|
3380
|
+
# "quote_currency": "BTC",
|
3381
|
+
# "estimated_delivery_price": 65444.72,
|
3382
|
+
# "creation_timestamp": 1711100949273,
|
3383
|
+
# "base_currency": "BTC",
|
3384
|
+
# "underlying_index": "BTC-27DEC24",
|
3385
|
+
# "underlying_price": 73742.14,
|
3386
|
+
# "volume": 4.0,
|
3387
|
+
# "interest_rate": 0.0,
|
3388
|
+
# "price_change": -6.9767,
|
3389
|
+
# "open_interest": 274.2,
|
3390
|
+
# "ask_price": 0.042,
|
3391
|
+
# "bid_price": 0.0385,
|
3392
|
+
# "instrument_name": "BTC-27DEC24-240000-C",
|
3393
|
+
# "mark_price": 0.04007735,
|
3394
|
+
# "last": 0.04,
|
3395
|
+
# "low": 0.04,
|
3396
|
+
# "high": 0.043
|
3397
|
+
# }
|
3398
|
+
#
|
3399
|
+
marketId = self.safe_string(chain, 'instrument_name')
|
3400
|
+
market = self.safe_market(marketId, market)
|
3401
|
+
currencyId = self.safe_string(chain, 'base_currency')
|
3402
|
+
code = self.safe_currency_code(currencyId, currency)
|
3403
|
+
timestamp = self.safe_integer(chain, 'timestamp')
|
3404
|
+
return {
|
3405
|
+
'info': chain,
|
3406
|
+
'currency': code['code'],
|
3407
|
+
'symbol': market['symbol'],
|
3408
|
+
'timestamp': timestamp,
|
3409
|
+
'datetime': self.iso8601(timestamp),
|
3410
|
+
'impliedVolatility': None,
|
3411
|
+
'openInterest': self.safe_number(chain, 'open_interest'),
|
3412
|
+
'bidPrice': self.safe_number(chain, 'bid_price'),
|
3413
|
+
'askPrice': self.safe_number(chain, 'ask_price'),
|
3414
|
+
'midPrice': self.safe_number(chain, 'mid_price'),
|
3415
|
+
'markPrice': self.safe_number(chain, 'mark_price'),
|
3416
|
+
'lastPrice': self.safe_number(chain, 'last'),
|
3417
|
+
'underlyingPrice': self.safe_number(chain, 'underlying_price'),
|
3418
|
+
'change': None,
|
3419
|
+
'percentage': self.safe_number(chain, 'price_change'),
|
3420
|
+
'baseVolume': self.safe_number(chain, 'volume'),
|
3421
|
+
'quoteVolume': self.safe_number(chain, 'volume_usd'),
|
3422
|
+
}
|
3423
|
+
|
3273
3424
|
def nonce(self):
|
3274
3425
|
return self.milliseconds()
|
3275
3426
|
|
@@ -3960,8 +3960,13 @@ class gate(Exchange, ImplicitAPI):
|
|
3960
3960
|
'account': account,
|
3961
3961
|
}
|
3962
3962
|
if amount is not None:
|
3963
|
-
|
3964
|
-
|
3963
|
+
if market['spot']:
|
3964
|
+
request['amount'] = self.amount_to_precision(symbol, amount)
|
3965
|
+
else:
|
3966
|
+
if side == 'sell':
|
3967
|
+
request['size'] = Precise.string_neg(self.amount_to_precision(symbol, amount))
|
3968
|
+
else:
|
3969
|
+
request['size'] = self.amount_to_precision(symbol, amount)
|
3965
3970
|
if price is not None:
|
3966
3971
|
request['price'] = self.price_to_precision(symbol, price)
|
3967
3972
|
response = None
|
@@ -4691,8 +4696,8 @@ class gate(Exchange, ImplicitAPI):
|
|
4691
4696
|
"""
|
4692
4697
|
await self.load_markets()
|
4693
4698
|
market = None if (symbol is None) else self.market(symbol)
|
4694
|
-
stop = self.
|
4695
|
-
params = self.omit(params, 'stop')
|
4699
|
+
stop = self.safe_bool_2(params, 'stop', 'trigger')
|
4700
|
+
params = self.omit(params, ['stop', 'trigger'])
|
4696
4701
|
type, query = self.handle_market_type_and_params('cancelAllOrders', market, params)
|
4697
4702
|
request, requestParams = self.multi_order_spot_prepare_request(market, stop, query) if (type == 'spot') else self.prepare_request(market, type, query)
|
4698
4703
|
response = None
|
@@ -4986,7 +4991,7 @@ class gate(Exchange, ImplicitAPI):
|
|
4986
4991
|
'unrealizedPnl': self.parse_number(unrealisedPnl),
|
4987
4992
|
'realizedPnl': self.safe_number(position, 'realised_pnl'),
|
4988
4993
|
'contracts': self.parse_number(Precise.string_abs(size)),
|
4989
|
-
'contractSize': self.
|
4994
|
+
'contractSize': self.safe_number(market, 'contractSize'),
|
4990
4995
|
# 'realisedPnl': position['realised_pnl'],
|
4991
4996
|
'marginRatio': None,
|
4992
4997
|
'liquidationPrice': self.safe_number(position, 'liq_price'),
|
@@ -754,6 +754,8 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
754
754
|
"""
|
755
755
|
await self.load_markets()
|
756
756
|
market = self.market(symbol)
|
757
|
+
vaultAddress = self.safe_string(params, 'vaultAddress')
|
758
|
+
params = self.omit(params, 'vaultAddress')
|
757
759
|
symbol = market['symbol']
|
758
760
|
order = {
|
759
761
|
'symbol': symbol,
|
@@ -763,7 +765,10 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
763
765
|
'price': price,
|
764
766
|
'params': params,
|
765
767
|
}
|
766
|
-
|
768
|
+
globalParams = {}
|
769
|
+
if vaultAddress is not None:
|
770
|
+
globalParams['vaultAddress'] = vaultAddress
|
771
|
+
response = await self.create_orders([order], globalParams)
|
767
772
|
first = self.safe_dict(response, 0)
|
768
773
|
return first
|
769
774
|
|
@@ -807,7 +812,6 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
807
812
|
amount = self.safe_string(rawOrder, 'amount')
|
808
813
|
price = self.safe_string(rawOrder, 'price')
|
809
814
|
orderParams = self.safe_dict(rawOrder, 'params', {})
|
810
|
-
orderParams = self.extend(params, orderParams)
|
811
815
|
clientOrderId = self.safe_string_2(orderParams, 'clientOrderId', 'client_id')
|
812
816
|
slippage = self.safe_string(orderParams, 'slippage', defaultSlippage)
|
813
817
|
defaultTimeInForce = 'ioc' if (isMarket) else 'gtc'
|
@@ -847,6 +851,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
847
851
|
orderType['limit'] = {
|
848
852
|
'tif': timeInForce,
|
849
853
|
}
|
854
|
+
orderParams = self.omit(orderParams, ['clientOrderId', 'slippage', 'triggerPrice', 'stopPrice', 'stopLossPrice', 'takeProfitPrice', 'timeInForce', 'client_id'])
|
850
855
|
orderObj = {
|
851
856
|
'a': self.parse_to_int(market['baseId']),
|
852
857
|
'b': isBuy,
|
@@ -858,8 +863,8 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
858
863
|
}
|
859
864
|
if clientOrderId is not None:
|
860
865
|
orderObj['c'] = clientOrderId
|
861
|
-
orderReq.append(orderObj)
|
862
|
-
vaultAddress = self.safe_string(params, 'vaultAddress')
|
866
|
+
orderReq.append(self.extend(orderObj, orderParams))
|
867
|
+
vaultAddress = self.format_vault_address(self.safe_string(params, 'vaultAddress'))
|
863
868
|
orderAction = {
|
864
869
|
'type': 'order',
|
865
870
|
'orders': orderReq,
|
@@ -875,6 +880,9 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
875
880
|
'signature': signature,
|
876
881
|
# 'vaultAddress': vaultAddress,
|
877
882
|
}
|
883
|
+
if vaultAddress is not None:
|
884
|
+
params = self.omit(params, 'vaultAddress')
|
885
|
+
request['vaultAddress'] = vaultAddress
|
878
886
|
response = await self.privatePostExchange(self.extend(request, params))
|
879
887
|
#
|
880
888
|
# {
|
@@ -957,10 +965,13 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
957
965
|
'o': self.parse_to_numeric(ids[i]),
|
958
966
|
})
|
959
967
|
cancelAction['cancels'] = cancelReq
|
960
|
-
vaultAddress = self.safe_string(params, 'vaultAddress')
|
968
|
+
vaultAddress = self.format_vault_address(self.safe_string(params, 'vaultAddress'))
|
961
969
|
signature = self.sign_l1_action(cancelAction, nonce, vaultAddress)
|
962
970
|
request['action'] = cancelAction
|
963
971
|
request['signature'] = signature
|
972
|
+
if vaultAddress is not None:
|
973
|
+
params = self.omit(params, 'vaultAddress')
|
974
|
+
request['vaultAddress'] = vaultAddress
|
964
975
|
response = await self.privatePostExchange(self.extend(request, params))
|
965
976
|
#
|
966
977
|
# {
|
@@ -1066,7 +1077,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1066
1077
|
'type': 'batchModify',
|
1067
1078
|
'modifies': [modifyReq],
|
1068
1079
|
}
|
1069
|
-
vaultAddress = self.safe_string(params, 'vaultAddress')
|
1080
|
+
vaultAddress = self.format_vault_address(self.safe_string(params, 'vaultAddress'))
|
1070
1081
|
signature = self.sign_l1_action(modifyAction, nonce, vaultAddress)
|
1071
1082
|
request = {
|
1072
1083
|
'action': modifyAction,
|
@@ -1074,6 +1085,9 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1074
1085
|
'signature': signature,
|
1075
1086
|
# 'vaultAddress': vaultAddress,
|
1076
1087
|
}
|
1088
|
+
if vaultAddress is not None:
|
1089
|
+
params = self.omit(params, 'vaultAddress')
|
1090
|
+
request['vaultAddress'] = vaultAddress
|
1077
1091
|
response = await self.privatePostExchange(self.extend(request, params))
|
1078
1092
|
#
|
1079
1093
|
# {
|
@@ -1643,7 +1657,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1643
1657
|
'isolated': isIsolated,
|
1644
1658
|
'hedged': None,
|
1645
1659
|
'side': side,
|
1646
|
-
'contracts': self.
|
1660
|
+
'contracts': self.safe_number(entry, 'szi'),
|
1647
1661
|
'contractSize': None,
|
1648
1662
|
'entryPrice': self.safe_number(entry, 'entryPx'),
|
1649
1663
|
'markPrice': None,
|
@@ -1687,6 +1701,10 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1687
1701
|
'leverage': leverage,
|
1688
1702
|
}
|
1689
1703
|
vaultAddress = self.safe_string(params, 'vaultAddress')
|
1704
|
+
if vaultAddress is not None:
|
1705
|
+
params = self.omit(params, 'vaultAddress')
|
1706
|
+
if vaultAddress.startswith('0x'):
|
1707
|
+
vaultAddress = vaultAddress.replace('0x', '')
|
1690
1708
|
signature = self.sign_l1_action(updateAction, nonce, vaultAddress)
|
1691
1709
|
request = {
|
1692
1710
|
'action': updateAction,
|
@@ -1694,6 +1712,8 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1694
1712
|
'signature': signature,
|
1695
1713
|
# 'vaultAddress': vaultAddress,
|
1696
1714
|
}
|
1715
|
+
if vaultAddress is not None:
|
1716
|
+
request['vaultAddress'] = vaultAddress
|
1697
1717
|
response = await self.privatePostExchange(self.extend(request, params))
|
1698
1718
|
#
|
1699
1719
|
# {
|
@@ -1729,7 +1749,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1729
1749
|
'isCross': isCross,
|
1730
1750
|
'leverage': leverage,
|
1731
1751
|
}
|
1732
|
-
vaultAddress = self.safe_string(params, 'vaultAddress')
|
1752
|
+
vaultAddress = self.format_vault_address(self.safe_string(params, 'vaultAddress'))
|
1733
1753
|
signature = self.sign_l1_action(updateAction, nonce, vaultAddress)
|
1734
1754
|
request = {
|
1735
1755
|
'action': updateAction,
|
@@ -1737,6 +1757,9 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1737
1757
|
'signature': signature,
|
1738
1758
|
# 'vaultAddress': vaultAddress,
|
1739
1759
|
}
|
1760
|
+
if vaultAddress is not None:
|
1761
|
+
params = self.omit(params, 'vaultAddress')
|
1762
|
+
request['vaultAddress'] = vaultAddress
|
1740
1763
|
response = await self.privatePostExchange(self.extend(request, params))
|
1741
1764
|
#
|
1742
1765
|
# {
|
@@ -1784,7 +1807,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1784
1807
|
'isBuy': True,
|
1785
1808
|
'ntli': sz,
|
1786
1809
|
}
|
1787
|
-
vaultAddress = self.safe_string(params, 'vaultAddress')
|
1810
|
+
vaultAddress = self.format_vault_address(self.safe_string(params, 'vaultAddress'))
|
1788
1811
|
signature = self.sign_l1_action(updateAction, nonce, vaultAddress)
|
1789
1812
|
request = {
|
1790
1813
|
'action': updateAction,
|
@@ -1792,6 +1815,9 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1792
1815
|
'signature': signature,
|
1793
1816
|
# 'vaultAddress': vaultAddress,
|
1794
1817
|
}
|
1818
|
+
if vaultAddress is not None:
|
1819
|
+
params = self.omit(params, 'vaultAddress')
|
1820
|
+
request['vaultAddress'] = vaultAddress
|
1795
1821
|
response = await self.privatePostExchange(self.extend(request, params))
|
1796
1822
|
#
|
1797
1823
|
# {
|
@@ -1882,6 +1908,13 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1882
1908
|
response = await self.privatePostExchange(self.extend(request, params))
|
1883
1909
|
return response
|
1884
1910
|
|
1911
|
+
def format_vault_address(self, address: Str = None):
|
1912
|
+
if address is None:
|
1913
|
+
return None
|
1914
|
+
if address.startswith('0x'):
|
1915
|
+
return address.replace('0x', '')
|
1916
|
+
return address
|
1917
|
+
|
1885
1918
|
def handle_public_address(self, methodName: str, params: dict):
|
1886
1919
|
userAux = None
|
1887
1920
|
userAux, params = self.handle_option_and_params(params, methodName, 'user')
|
@@ -899,8 +899,8 @@ class mexc(Exchange, ImplicitAPI):
|
|
899
899
|
'30032': InvalidOrder, # Cannot exceed the maximum position
|
900
900
|
'30041': InvalidOrder, # current order type can not place order
|
901
901
|
'60005': ExchangeError, # your account is abnormal
|
902
|
-
'700001': AuthenticationError, # API
|
903
|
-
'700002': AuthenticationError, # Signature for self request is not valid
|
902
|
+
'700001': AuthenticationError, # {"code":700002,"msg":"Signature for self request is not valid."} # same message for expired API keys
|
903
|
+
'700002': AuthenticationError, # Signature for self request is not valid # or the API secret is incorrect
|
904
904
|
'700004': BadRequest, # Param 'origClientOrderId' or 'orderId' must be sent, but both were empty/null
|
905
905
|
'700005': InvalidNonce, # recvWindow must less than 60000
|
906
906
|
'700006': BadRequest, # IP non white list
|
@@ -85,6 +85,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
85
85
|
'1m': 'minutes',
|
86
86
|
'3m': 'minutes',
|
87
87
|
'5m': 'minutes',
|
88
|
+
'10m': 'minutes',
|
88
89
|
'15m': 'minutes',
|
89
90
|
'30m': 'minutes',
|
90
91
|
'1h': 'minutes',
|
@@ -114,6 +115,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
114
115
|
'candles/minutes/1',
|
115
116
|
'candles/minutes/3',
|
116
117
|
'candles/minutes/5',
|
118
|
+
'candles/minutes/10',
|
117
119
|
'candles/minutes/15',
|
118
120
|
'candles/minutes/30',
|
119
121
|
'candles/minutes/60',
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.2.
|
7
|
+
__version__ = '4.2.80'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -31,7 +31,7 @@ from ccxt.base.decimal_to_precision import decimal_to_precision
|
|
31
31
|
from ccxt.base.decimal_to_precision import DECIMAL_PLACES, TICK_SIZE, NO_PADDING, TRUNCATE, ROUND, ROUND_UP, ROUND_DOWN, SIGNIFICANT_DIGITS
|
32
32
|
from ccxt.base.decimal_to_precision import number_to_string
|
33
33
|
from ccxt.base.precise import Precise
|
34
|
-
from ccxt.base.types import BalanceAccount, Currency, IndexType, OrderSide, OrderType, Trade, OrderRequest, Market, MarketType, Str, Num
|
34
|
+
from ccxt.base.types import BalanceAccount, Currency, IndexType, OrderSide, OrderType, Trade, OrderRequest, Market, MarketType, Str, Num, Strings
|
35
35
|
|
36
36
|
# -----------------------------------------------------------------------------
|
37
37
|
|
@@ -1728,6 +1728,12 @@ class Exchange(object):
|
|
1728
1728
|
modifiedContent = modifiedContent.replace('}"', '}')
|
1729
1729
|
return modifiedContent
|
1730
1730
|
|
1731
|
+
def extend_exchange_options(self, newOptions):
|
1732
|
+
self.options = self.extend(self.options, newOptions)
|
1733
|
+
|
1734
|
+
def create_safe_dictionary(self):
|
1735
|
+
return {}
|
1736
|
+
|
1731
1737
|
# ########################################################################
|
1732
1738
|
# ########################################################################
|
1733
1739
|
# ########################################################################
|
@@ -3187,7 +3193,7 @@ class Exchange(object):
|
|
3187
3193
|
else:
|
3188
3194
|
raise BadResponse(errorMessage)
|
3189
3195
|
|
3190
|
-
def market_ids(self, symbols):
|
3196
|
+
def market_ids(self, symbols: Strings = None):
|
3191
3197
|
if symbols is None:
|
3192
3198
|
return symbols
|
3193
3199
|
result = []
|
@@ -3195,7 +3201,7 @@ class Exchange(object):
|
|
3195
3201
|
result.append(self.market_id(symbols[i]))
|
3196
3202
|
return result
|
3197
3203
|
|
3198
|
-
def market_symbols(self, symbols, type: Str = None, allowEmpty=True, sameTypeOnly=False, sameSubTypeOnly=False):
|
3204
|
+
def market_symbols(self, symbols: Strings = None, type: Str = None, allowEmpty=True, sameTypeOnly=False, sameSubTypeOnly=False):
|
3199
3205
|
if symbols is None:
|
3200
3206
|
if not allowEmpty:
|
3201
3207
|
raise ArgumentsRequired(self.id + ' empty list of symbols is not supported')
|
@@ -3225,7 +3231,7 @@ class Exchange(object):
|
|
3225
3231
|
result.append(symbol)
|
3226
3232
|
return result
|
3227
3233
|
|
3228
|
-
def market_codes(self, codes):
|
3234
|
+
def market_codes(self, codes: Strings = None):
|
3229
3235
|
if codes is None:
|
3230
3236
|
return codes
|
3231
3237
|
result = []
|
@@ -4025,6 +4031,9 @@ class Exchange(object):
|
|
4025
4031
|
def fetch_order_books(self, symbols: List[str] = None, limit: Int = None, params={}):
|
4026
4032
|
raise NotSupported(self.id + ' fetchOrderBooks() is not supported yet')
|
4027
4033
|
|
4034
|
+
def watch_bids_asks(self, symbols: List[str] = None, params={}):
|
4035
|
+
raise NotSupported(self.id + ' watchBidsAsks() is not supported yet')
|
4036
|
+
|
4028
4037
|
def watch_tickers(self, symbols: List[str] = None, params={}):
|
4029
4038
|
raise NotSupported(self.id + ' watchTickers() is not supported yet')
|
4030
4039
|
|
@@ -4327,6 +4336,12 @@ class Exchange(object):
|
|
4327
4336
|
def fetch_greeks(self, symbol: str, params={}):
|
4328
4337
|
raise NotSupported(self.id + ' fetchGreeks() is not supported yet')
|
4329
4338
|
|
4339
|
+
def fetch_option_chain(self, code: str, params={}):
|
4340
|
+
raise NotSupported(self.id + ' fetchOptionChain() is not supported yet')
|
4341
|
+
|
4342
|
+
def fetch_option(self, symbol: str, params={}):
|
4343
|
+
raise NotSupported(self.id + ' fetchOption() is not supported yet')
|
4344
|
+
|
4330
4345
|
def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
4331
4346
|
"""
|
4332
4347
|
fetch history of deposits and withdrawals
|
@@ -5324,6 +5339,20 @@ class Exchange(object):
|
|
5324
5339
|
def parse_greeks(self, greeks, market: Market = None):
|
5325
5340
|
raise NotSupported(self.id + ' parseGreeks() is not supported yet')
|
5326
5341
|
|
5342
|
+
def parse_option(self, chain, currency: Currency = None, market: Market = None):
|
5343
|
+
raise NotSupported(self.id + ' parseOption() is not supported yet')
|
5344
|
+
|
5345
|
+
def parse_option_chain(self, response: List[object], currencyKey: Str = None, symbolKey: Str = None):
|
5346
|
+
optionStructures = {}
|
5347
|
+
for i in range(0, len(response)):
|
5348
|
+
info = response[i]
|
5349
|
+
currencyId = self.safe_string(info, currencyKey)
|
5350
|
+
currency = self.safe_currency(currencyId)
|
5351
|
+
marketId = self.safe_string(info, symbolKey)
|
5352
|
+
market = self.safe_market(marketId, None, None, 'option')
|
5353
|
+
optionStructures[market['symbol']] = self.parseOption(info, currency, market)
|
5354
|
+
return optionStructures
|
5355
|
+
|
5327
5356
|
def parse_margin_modes(self, response: List[object], symbols: List[str] = None, symbolKey: Str = None, marketType: MarketType = None):
|
5328
5357
|
marginModeStructures = {}
|
5329
5358
|
for i in range(0, len(response)):
|
@@ -53,6 +53,7 @@ Strings = Optional[List[str]]
|
|
53
53
|
Int = Optional[int]
|
54
54
|
Bool = Optional[bool]
|
55
55
|
MarketType = Literal['spot', 'margin', 'swap', 'future', 'option']
|
56
|
+
SubType = Literal['linear', 'inverse']
|
56
57
|
|
57
58
|
|
58
59
|
class FeeInterface(TypedDict):
|
@@ -301,6 +302,28 @@ class Greeks(TypedDict):
|
|
301
302
|
info: Dict[str, Any]
|
302
303
|
|
303
304
|
|
305
|
+
class Option(TypedDict):
|
306
|
+
info: Dict[str, Any]
|
307
|
+
currency: Str
|
308
|
+
symbol: Str
|
309
|
+
timestamp: Int
|
310
|
+
datetime: Str
|
311
|
+
impliedVolatility: Num
|
312
|
+
openInterest: Num
|
313
|
+
bidPrice: Num
|
314
|
+
askPrice: Num
|
315
|
+
midPrice: Num
|
316
|
+
markPrice: Num
|
317
|
+
lastPrice: Num
|
318
|
+
underlyingPrice: Num
|
319
|
+
change: Num
|
320
|
+
percentage: Num
|
321
|
+
baseVolume: Num
|
322
|
+
quoteVolume: Num
|
323
|
+
|
324
|
+
|
325
|
+
OptionChain = Dict[str, Option]
|
326
|
+
|
304
327
|
class MarketInterface(TypedDict):
|
305
328
|
info: Dict[str, Any]
|
306
329
|
id: Str
|