ccxt 4.2.97__tar.gz → 4.2.99__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.97/ccxt.egg-info → ccxt-4.2.99}/PKG-INFO +4 -4
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/__init__.py +1 -1
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinbase.py +47 -20
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/kraken.py +5 -4
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/base/exchange.py +1 -1
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinbase.py +47 -20
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/kraken.py +5 -4
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/coinbase.py +21 -3
- {ccxt-4.2.97 → ccxt-4.2.99/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.2.97 → ccxt-4.2.99}/package.json +1 -1
- {ccxt-4.2.97 → ccxt-4.2.99}/LICENSE.txt +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/MANIFEST.in +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/README.rst +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinbaseinternational.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/ace.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/alpaca.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/ascendex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/blofin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinbaseinternational.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/hyperliquid.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/base/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/base/errors.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/base/precise.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/base/types.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bequant.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bigone.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/binance.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/binanceus.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bingx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bit2c.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitbank.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitbay.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitbns.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitfinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitflyer.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitget.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bithumb.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitmart.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitmex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitopro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitpanda.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitrue.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitso.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitstamp.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitteam.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bitvavo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bl3p.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/blofin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/btcalpha.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/btcbox.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/btcturk.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/bybit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/cex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinbaseinternational.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coincheck.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinlist.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinmate.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinmetro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinone.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinsph.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/coinspot.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/cryptocom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/currencycom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/delta.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/deribit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/digifinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/exmo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/flowbtc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/fmfwio.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/gate.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/gateio.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/gemini.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/hitbtc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/hollaex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/htx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/huobi.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/huobijp.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/hyperliquid.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/idex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/independentreserve.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/indodax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/kucoin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/kuna.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/latoken.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/lbank.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/luno.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/lykke.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/mercado.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/mexc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/ndax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/novadax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/oceanex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/okcoin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/okx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/onetrading.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/p2b.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/paymium.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/phemex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/poloniex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/binance.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bithumb.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/cex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/coinbaseinternational.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/gate.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/htx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/hyperliquid.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/idex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/luno.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/okx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/probit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/pro/woo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/probit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_last_price.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_margin_mode.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/test_async.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/test/test_sync.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/timex.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/tradeogre.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/upbit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/wazirx.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/whitebit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/woo.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/yobit.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/zaif.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt/zonda.py +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/setup.cfg +0 -0
- {ccxt-4.2.97 → ccxt-4.2.99}/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.99
|
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
|
@@ -225,13 +225,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
225
225
|
|
226
226
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
227
227
|
|
228
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
229
|
-
* unpkg: https://unpkg.com/ccxt@4.2.
|
228
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.99/dist/ccxt.browser.js
|
229
|
+
* unpkg: https://unpkg.com/ccxt@4.2.99/dist/ccxt.browser.js
|
230
230
|
|
231
231
|
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.
|
232
232
|
|
233
233
|
```HTML
|
234
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
234
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.99/dist/ccxt.browser.js"></script>
|
235
235
|
```
|
236
236
|
|
237
237
|
Creates a global `ccxt` object:
|
@@ -1416,6 +1416,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1416
1416
|
contractExpiryType = self.safe_string(futureProductDetails, 'contract_expiry_type')
|
1417
1417
|
contractSize = self.safe_number(futureProductDetails, 'contract_size')
|
1418
1418
|
contractExpire = self.safe_string(futureProductDetails, 'contract_expiry')
|
1419
|
+
expireTimestamp = self.parse8601(contractExpire)
|
1419
1420
|
isSwap = (contractExpiryType == 'PERPETUAL')
|
1420
1421
|
baseId = self.safe_string(futureProductDetails, 'contract_root_unit')
|
1421
1422
|
quoteId = self.safe_string(market, 'quote_currency_id')
|
@@ -1429,7 +1430,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1429
1430
|
symbol = symbol + ':' + quote
|
1430
1431
|
else:
|
1431
1432
|
type = 'future'
|
1432
|
-
symbol = symbol + ':' + quote + '-' + self.yymmdd(
|
1433
|
+
symbol = symbol + ':' + quote + '-' + self.yymmdd(expireTimestamp)
|
1433
1434
|
takerFeeRate = self.safe_number(feeTier, 'taker_fee_rate')
|
1434
1435
|
makerFeeRate = self.safe_number(feeTier, 'maker_fee_rate')
|
1435
1436
|
taker = takerFeeRate if takerFeeRate else self.parse_number('0.06')
|
@@ -1456,7 +1457,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1456
1457
|
'taker': taker,
|
1457
1458
|
'maker': maker,
|
1458
1459
|
'contractSize': contractSize,
|
1459
|
-
'expiry':
|
1460
|
+
'expiry': expireTimestamp,
|
1460
1461
|
'expiryDatetime': contractExpire,
|
1461
1462
|
'strike': None,
|
1462
1463
|
'optionType': None,
|
@@ -4048,6 +4049,30 @@ class coinbase(Exchange, ImplicitAPI):
|
|
4048
4049
|
'takeProfitPrice': None,
|
4049
4050
|
})
|
4050
4051
|
|
4052
|
+
def create_auth_token(self, seconds: Int, method: Str = None, url: Str = None):
|
4053
|
+
# it may not work for v2
|
4054
|
+
uri = None
|
4055
|
+
if url is not None:
|
4056
|
+
uri = method + ' ' + url.replace('https://', '')
|
4057
|
+
quesPos = uri.find('?')
|
4058
|
+
# Due to we use mb_strpos, quesPos could be False in php. In that case, the quesPos >= 0 is True
|
4059
|
+
# Also it's not possible that the question mark is first character, only check > 0 here.
|
4060
|
+
if quesPos > 0:
|
4061
|
+
uri = uri[0:quesPos]
|
4062
|
+
nonce = self.random_bytes(16)
|
4063
|
+
request = {
|
4064
|
+
'aud': ['retail_rest_api_proxy'],
|
4065
|
+
'iss': 'coinbase-cloud',
|
4066
|
+
'nbf': seconds,
|
4067
|
+
'exp': seconds + 120,
|
4068
|
+
'sub': self.apiKey,
|
4069
|
+
'iat': seconds,
|
4070
|
+
}
|
4071
|
+
if uri is not None:
|
4072
|
+
request['uri'] = uri
|
4073
|
+
token = self.jwt(request, self.encode(self.secret), 'sha256', False, {'kid': self.apiKey, 'nonce': nonce, 'alg': 'ES256'})
|
4074
|
+
return token
|
4075
|
+
|
4051
4076
|
def sign(self, path, api=[], method='GET', params={}, headers=None, body=None):
|
4052
4077
|
version = api[0]
|
4053
4078
|
signed = api[1] == 'private'
|
@@ -4087,24 +4112,26 @@ class coinbase(Exchange, ImplicitAPI):
|
|
4087
4112
|
if isCloudAPiKey:
|
4088
4113
|
if self.apiKey.startswith('-----BEGIN'):
|
4089
4114
|
raise ArgumentsRequired(self.id + ' apiKey should contain the name(eg: organizations/3b910e93....) and not the public key')
|
4090
|
-
# it may not work for v2
|
4091
|
-
uri = method + ' ' + url.replace('https://', '')
|
4092
|
-
quesPos = uri.find('?')
|
4093
|
-
# Due to we use mb_strpos, quesPos could be False in php. In that case, the quesPos >= 0 is True
|
4094
|
-
# Also it's not possible that the question mark is first character, only check > 0 here.
|
4095
|
-
if quesPos > 0:
|
4096
|
-
|
4097
|
-
|
4098
|
-
|
4099
|
-
|
4100
|
-
|
4101
|
-
|
4102
|
-
|
4103
|
-
|
4104
|
-
|
4105
|
-
|
4106
|
-
|
4107
|
-
|
4115
|
+
# # it may not work for v2
|
4116
|
+
# uri = method + ' ' + url.replace('https://', '')
|
4117
|
+
# quesPos = uri.find('?')
|
4118
|
+
# # Due to we use mb_strpos, quesPos could be False in php. In that case, the quesPos >= 0 is True
|
4119
|
+
# # Also it's not possible that the question mark is first character, only check > 0 here.
|
4120
|
+
# if quesPos > 0:
|
4121
|
+
# uri = uri[0:quesPos]
|
4122
|
+
# }
|
4123
|
+
# nonce = self.random_bytes(16)
|
4124
|
+
# request = {
|
4125
|
+
# 'aud': ['retail_rest_api_proxy'],
|
4126
|
+
# 'iss': 'coinbase-cloud',
|
4127
|
+
# 'nbf': seconds,
|
4128
|
+
# 'exp': seconds + 120,
|
4129
|
+
# 'sub': self.apiKey,
|
4130
|
+
# 'uri': uri,
|
4131
|
+
# 'iat': seconds,
|
4132
|
+
# }
|
4133
|
+
token = self.create_auth_token(seconds, method, url)
|
4134
|
+
# token = self.jwt(request, self.encode(self.secret), 'sha256', False, {'kid': self.apiKey, 'nonce': nonce, 'alg': 'ES256'})
|
4108
4135
|
authorizationString = 'Bearer ' + token
|
4109
4136
|
else:
|
4110
4137
|
timestampString = str(self.seconds())
|
@@ -1501,9 +1501,10 @@ class kraken(Exchange, ImplicitAPI):
|
|
1501
1501
|
# }
|
1502
1502
|
#
|
1503
1503
|
description = self.safe_dict(order, 'descr', {})
|
1504
|
+
orderDescriptionObj = self.safe_dict(order, 'descr') # can be null
|
1504
1505
|
orderDescription = None
|
1505
|
-
if
|
1506
|
-
orderDescription = self.safe_string(
|
1506
|
+
if orderDescriptionObj is not None:
|
1507
|
+
orderDescription = self.safe_string(orderDescriptionObj, 'order')
|
1507
1508
|
else:
|
1508
1509
|
orderDescription = self.safe_string(order, 'descr')
|
1509
1510
|
side = None
|
@@ -1564,8 +1565,8 @@ class kraken(Exchange, ImplicitAPI):
|
|
1564
1565
|
fee['currency'] = market['base']
|
1565
1566
|
status = self.parse_order_status(self.safe_string(order, 'status'))
|
1566
1567
|
id = self.safe_string_2(order, 'id', 'txid')
|
1567
|
-
if (id is None) or (id
|
1568
|
-
txid = self.
|
1568
|
+
if (id is None) or (id.startswith('[')):
|
1569
|
+
txid = self.safe_list(order, 'txid')
|
1569
1570
|
id = self.safe_string(txid, 0)
|
1570
1571
|
clientOrderId = self.safe_string(order, 'userref')
|
1571
1572
|
rawTrades = self.safe_value(order, 'trades', [])
|
@@ -1415,6 +1415,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1415
1415
|
contractExpiryType = self.safe_string(futureProductDetails, 'contract_expiry_type')
|
1416
1416
|
contractSize = self.safe_number(futureProductDetails, 'contract_size')
|
1417
1417
|
contractExpire = self.safe_string(futureProductDetails, 'contract_expiry')
|
1418
|
+
expireTimestamp = self.parse8601(contractExpire)
|
1418
1419
|
isSwap = (contractExpiryType == 'PERPETUAL')
|
1419
1420
|
baseId = self.safe_string(futureProductDetails, 'contract_root_unit')
|
1420
1421
|
quoteId = self.safe_string(market, 'quote_currency_id')
|
@@ -1428,7 +1429,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1428
1429
|
symbol = symbol + ':' + quote
|
1429
1430
|
else:
|
1430
1431
|
type = 'future'
|
1431
|
-
symbol = symbol + ':' + quote + '-' + self.yymmdd(
|
1432
|
+
symbol = symbol + ':' + quote + '-' + self.yymmdd(expireTimestamp)
|
1432
1433
|
takerFeeRate = self.safe_number(feeTier, 'taker_fee_rate')
|
1433
1434
|
makerFeeRate = self.safe_number(feeTier, 'maker_fee_rate')
|
1434
1435
|
taker = takerFeeRate if takerFeeRate else self.parse_number('0.06')
|
@@ -1455,7 +1456,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1455
1456
|
'taker': taker,
|
1456
1457
|
'maker': maker,
|
1457
1458
|
'contractSize': contractSize,
|
1458
|
-
'expiry':
|
1459
|
+
'expiry': expireTimestamp,
|
1459
1460
|
'expiryDatetime': contractExpire,
|
1460
1461
|
'strike': None,
|
1461
1462
|
'optionType': None,
|
@@ -4047,6 +4048,30 @@ class coinbase(Exchange, ImplicitAPI):
|
|
4047
4048
|
'takeProfitPrice': None,
|
4048
4049
|
})
|
4049
4050
|
|
4051
|
+
def create_auth_token(self, seconds: Int, method: Str = None, url: Str = None):
|
4052
|
+
# it may not work for v2
|
4053
|
+
uri = None
|
4054
|
+
if url is not None:
|
4055
|
+
uri = method + ' ' + url.replace('https://', '')
|
4056
|
+
quesPos = uri.find('?')
|
4057
|
+
# Due to we use mb_strpos, quesPos could be False in php. In that case, the quesPos >= 0 is True
|
4058
|
+
# Also it's not possible that the question mark is first character, only check > 0 here.
|
4059
|
+
if quesPos > 0:
|
4060
|
+
uri = uri[0:quesPos]
|
4061
|
+
nonce = self.random_bytes(16)
|
4062
|
+
request = {
|
4063
|
+
'aud': ['retail_rest_api_proxy'],
|
4064
|
+
'iss': 'coinbase-cloud',
|
4065
|
+
'nbf': seconds,
|
4066
|
+
'exp': seconds + 120,
|
4067
|
+
'sub': self.apiKey,
|
4068
|
+
'iat': seconds,
|
4069
|
+
}
|
4070
|
+
if uri is not None:
|
4071
|
+
request['uri'] = uri
|
4072
|
+
token = self.jwt(request, self.encode(self.secret), 'sha256', False, {'kid': self.apiKey, 'nonce': nonce, 'alg': 'ES256'})
|
4073
|
+
return token
|
4074
|
+
|
4050
4075
|
def sign(self, path, api=[], method='GET', params={}, headers=None, body=None):
|
4051
4076
|
version = api[0]
|
4052
4077
|
signed = api[1] == 'private'
|
@@ -4086,24 +4111,26 @@ class coinbase(Exchange, ImplicitAPI):
|
|
4086
4111
|
if isCloudAPiKey:
|
4087
4112
|
if self.apiKey.startswith('-----BEGIN'):
|
4088
4113
|
raise ArgumentsRequired(self.id + ' apiKey should contain the name(eg: organizations/3b910e93....) and not the public key')
|
4089
|
-
# it may not work for v2
|
4090
|
-
uri = method + ' ' + url.replace('https://', '')
|
4091
|
-
quesPos = uri.find('?')
|
4092
|
-
# Due to we use mb_strpos, quesPos could be False in php. In that case, the quesPos >= 0 is True
|
4093
|
-
# Also it's not possible that the question mark is first character, only check > 0 here.
|
4094
|
-
if quesPos > 0:
|
4095
|
-
|
4096
|
-
|
4097
|
-
|
4098
|
-
|
4099
|
-
|
4100
|
-
|
4101
|
-
|
4102
|
-
|
4103
|
-
|
4104
|
-
|
4105
|
-
|
4106
|
-
|
4114
|
+
# # it may not work for v2
|
4115
|
+
# uri = method + ' ' + url.replace('https://', '')
|
4116
|
+
# quesPos = uri.find('?')
|
4117
|
+
# # Due to we use mb_strpos, quesPos could be False in php. In that case, the quesPos >= 0 is True
|
4118
|
+
# # Also it's not possible that the question mark is first character, only check > 0 here.
|
4119
|
+
# if quesPos > 0:
|
4120
|
+
# uri = uri[0:quesPos]
|
4121
|
+
# }
|
4122
|
+
# nonce = self.random_bytes(16)
|
4123
|
+
# request = {
|
4124
|
+
# 'aud': ['retail_rest_api_proxy'],
|
4125
|
+
# 'iss': 'coinbase-cloud',
|
4126
|
+
# 'nbf': seconds,
|
4127
|
+
# 'exp': seconds + 120,
|
4128
|
+
# 'sub': self.apiKey,
|
4129
|
+
# 'uri': uri,
|
4130
|
+
# 'iat': seconds,
|
4131
|
+
# }
|
4132
|
+
token = self.create_auth_token(seconds, method, url)
|
4133
|
+
# token = self.jwt(request, self.encode(self.secret), 'sha256', False, {'kid': self.apiKey, 'nonce': nonce, 'alg': 'ES256'})
|
4107
4134
|
authorizationString = 'Bearer ' + token
|
4108
4135
|
else:
|
4109
4136
|
timestampString = str(self.seconds())
|
@@ -1501,9 +1501,10 @@ class kraken(Exchange, ImplicitAPI):
|
|
1501
1501
|
# }
|
1502
1502
|
#
|
1503
1503
|
description = self.safe_dict(order, 'descr', {})
|
1504
|
+
orderDescriptionObj = self.safe_dict(order, 'descr') # can be null
|
1504
1505
|
orderDescription = None
|
1505
|
-
if
|
1506
|
-
orderDescription = self.safe_string(
|
1506
|
+
if orderDescriptionObj is not None:
|
1507
|
+
orderDescription = self.safe_string(orderDescriptionObj, 'order')
|
1507
1508
|
else:
|
1508
1509
|
orderDescription = self.safe_string(order, 'descr')
|
1509
1510
|
side = None
|
@@ -1564,8 +1565,8 @@ class kraken(Exchange, ImplicitAPI):
|
|
1564
1565
|
fee['currency'] = market['base']
|
1565
1566
|
status = self.parse_order_status(self.safe_string(order, 'status'))
|
1566
1567
|
id = self.safe_string_2(order, 'id', 'txid')
|
1567
|
-
if (id is None) or (id
|
1568
|
-
txid = self.
|
1568
|
+
if (id is None) or (id.startswith('[')):
|
1569
|
+
txid = self.safe_list(order, 'txid')
|
1569
1570
|
id = self.safe_string(txid, 0)
|
1570
1571
|
clientOrderId = self.safe_string(order, 'userref')
|
1571
1572
|
rawTrades = self.safe_value(order, 'trades', [])
|
@@ -9,6 +9,7 @@ import hashlib
|
|
9
9
|
from ccxt.base.types import Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
|
+
from ccxt.base.errors import ArgumentsRequired
|
12
13
|
|
13
14
|
|
14
15
|
class coinbase(ccxt.async_support.coinbase):
|
@@ -77,15 +78,32 @@ class coinbase(ccxt.async_support.coinbase):
|
|
77
78
|
productIds = [market['id']]
|
78
79
|
url = self.urls['api']['ws']
|
79
80
|
timestamp = self.number_to_string(self.seconds())
|
81
|
+
isCloudAPiKey = (self.apiKey.find('organizations/') >= 0) or (self.secret.startswith('-----BEGIN'))
|
80
82
|
auth = timestamp + name + ','.join(productIds)
|
81
83
|
subscribe = {
|
82
84
|
'type': 'subscribe',
|
83
85
|
'product_ids': productIds,
|
84
86
|
'channel': name,
|
85
|
-
'api_key': self.apiKey,
|
86
|
-
'timestamp': timestamp,
|
87
|
-
'signature': self.hmac(self.encode(auth), self.encode(self.secret), hashlib.sha256),
|
87
|
+
# 'api_key': self.apiKey,
|
88
|
+
# 'timestamp': timestamp,
|
89
|
+
# 'signature': self.hmac(self.encode(auth), self.encode(self.secret), hashlib.sha256),
|
88
90
|
}
|
91
|
+
if not isCloudAPiKey:
|
92
|
+
subscribe['api_key'] = self.apiKey
|
93
|
+
subscribe['timestamp'] = timestamp
|
94
|
+
subscribe['signature'] = self.hmac(self.encode(auth), self.encode(self.secret), hashlib.sha256)
|
95
|
+
else:
|
96
|
+
if self.apiKey.startswith('-----BEGIN'):
|
97
|
+
raise ArgumentsRequired(self.id + ' apiKey should contain the name(eg: organizations/3b910e93....) and not the public key')
|
98
|
+
currentToken = self.safe_string(self.options, 'wsToken')
|
99
|
+
tokenTimestamp = self.safe_integer(self.options, 'wsTokenTimestamp', 0)
|
100
|
+
seconds = self.seconds()
|
101
|
+
if currentToken is None or tokenTimestamp + 120 < seconds:
|
102
|
+
# we should generate new token
|
103
|
+
token = self.create_auth_token(seconds)
|
104
|
+
self.options['wsToken'] = token
|
105
|
+
self.options['wsTokenTimestamp'] = seconds
|
106
|
+
subscribe['jwt'] = self.safe_string(self.options, 'wsToken')
|
89
107
|
return await self.watch(url, messageHash, subscribe, messageHash)
|
90
108
|
|
91
109
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.2.
|
3
|
+
Version: 4.2.99
|
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
|
@@ -225,13 +225,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
225
225
|
|
226
226
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
227
227
|
|
228
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
229
|
-
* unpkg: https://unpkg.com/ccxt@4.2.
|
228
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.99/dist/ccxt.browser.js
|
229
|
+
* unpkg: https://unpkg.com/ccxt@4.2.99/dist/ccxt.browser.js
|
230
230
|
|
231
231
|
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.
|
232
232
|
|
233
233
|
```HTML
|
234
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
234
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.99/dist/ccxt.browser.js"></script>
|
235
235
|
```
|
236
236
|
|
237
237
|
Creates a global `ccxt` object:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|