ccxt 4.4.90__tar.gz → 4.4.92__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.4.90/ccxt.egg-info → ccxt-4.4.92}/PKG-INFO +6 -7
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/__init__.py +1 -3
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/lbank.py +1 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/__init__.py +1 -3
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/exchange.py +6 -3
- ccxt-4.4.92/ccxt/async_support/base/ws/client.py +323 -0
- ccxt-4.4.92/ccxt/async_support/base/ws/future.py +42 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/binance.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitmart.py +7 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitmex.py +2 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitvavo.py +7 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/cex.py +61 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/cryptocom.py +17 -2
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/cryptomus.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/exmo.py +25 -10
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/gate.py +2 -2
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/htx.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/hyperliquid.py +104 -53
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/kraken.py +26 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/krakenfutures.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/lbank.py +113 -33
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/mexc.py +1 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/modetrade.py +2 -2
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/okx.py +2 -2
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/paradex.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/exchange.py +22 -23
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/types.py +1 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/binance.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitmart.py +7 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitmex.py +2 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitvavo.py +7 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/cex.py +61 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/cryptocom.py +17 -2
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/cryptomus.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/exmo.py +24 -10
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/gate.py +2 -2
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/htx.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/hyperliquid.py +104 -53
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/kraken.py +26 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/krakenfutures.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/lbank.py +113 -33
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/mexc.py +1 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/modetrade.py +2 -2
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/okx.py +2 -2
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/paradex.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitstamp.py +1 -1
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bybit.py +9 -140
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/kraken.py +246 -258
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/mexc.py +0 -1
- {ccxt-4.4.90 → ccxt-4.4.92/ccxt.egg-info}/PKG-INFO +6 -7
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt.egg-info/SOURCES.txt +0 -17
- {ccxt-4.4.90 → ccxt-4.4.92}/package.json +1 -1
- ccxt-4.4.90/ccxt/abstract/coinlist.py +0 -57
- ccxt-4.4.90/ccxt/async_support/base/ws/aiohttp_client.py +0 -147
- ccxt-4.4.90/ccxt/async_support/base/ws/client.py +0 -214
- ccxt-4.4.90/ccxt/async_support/base/ws/future.py +0 -69
- ccxt-4.4.90/ccxt/async_support/bitcoincom.py +0 -18
- ccxt-4.4.90/ccxt/async_support/bitfinex1.py +0 -1711
- ccxt-4.4.90/ccxt/async_support/bitpanda.py +0 -17
- ccxt-4.4.90/ccxt/async_support/coinlist.py +0 -2542
- ccxt-4.4.90/ccxt/async_support/poloniexfutures.py +0 -1875
- ccxt-4.4.90/ccxt/bitcoincom.py +0 -18
- ccxt-4.4.90/ccxt/bitfinex1.py +0 -1710
- ccxt-4.4.90/ccxt/bitpanda.py +0 -17
- ccxt-4.4.90/ccxt/coinlist.py +0 -2542
- ccxt-4.4.90/ccxt/poloniexfutures.py +0 -1875
- ccxt-4.4.90/ccxt/pro/bitcoincom.py +0 -35
- ccxt-4.4.90/ccxt/pro/bitfinex1.py +0 -635
- ccxt-4.4.90/ccxt/pro/bitpanda.py +0 -16
- ccxt-4.4.90/ccxt/pro/poloniexfutures.py +0 -1004
- ccxt-4.4.90/ccxt/pro/wazirx.py +0 -766
- {ccxt-4.4.90 → ccxt-4.4.92}/LICENSE.txt +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/MANIFEST.in +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/README.rst +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/apex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bittrade.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinbaseadvanced.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinbaseexchange.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinbaseinternational.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coincatch.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/cryptomus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/defx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/derive.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/ellipx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/hashkey.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/modetrade.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/myokx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/okxus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/oxfun.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/paradex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/vertex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/woofipro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/xt.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/alpaca.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/apex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/ascendex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/apex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bittrade.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/blofin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinbaseadvanced.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinbaseexchange.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinbaseinternational.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coincatch.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/defx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/derive.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/ellipx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/hashkey.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/myokx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/okxus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/oxfun.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/vertex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/woofipro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/xt.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/errors.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/base/precise.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bequant.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bigone.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/binanceus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bingx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bit2c.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitbank.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitbns.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitfinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitflyer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitget.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bithumb.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitopro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitrue.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitso.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitstamp.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bitteam.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bittrade.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/blofin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/btcalpha.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/btcbox.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/btcturk.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/bybit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinbase.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinbaseadvanced.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinbaseexchange.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinbaseinternational.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coincatch.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coincheck.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinmate.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinmetro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinone.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinsph.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/coinspot.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/defx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/delta.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/deribit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/derive.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/digifinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/ellipx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/fmfwio.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/gateio.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/gemini.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/hashkey.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/hitbtc.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/hollaex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/huobi.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/independentreserve.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/indodax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/kucoin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/latoken.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/luno.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/mercado.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/myokx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/ndax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/novadax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/oceanex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/okcoin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/okxus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/onetrading.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/oxfun.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/p2b.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/paymium.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/phemex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/poloniex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/apex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/binance.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bithumb.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bittrade.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/blofin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/cex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinbaseadvanced.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinbaseexchange.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinbaseinternational.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coincatch.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/defx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/derive.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/gate.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/hashkey.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/htx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/hyperliquid.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/luno.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/modetrade.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/myokx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/okx.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/okxus.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/oxfun.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/paradex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/probit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/tradeogre.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/vertex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/woo.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/woofipro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/pro/xt.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/probit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/common.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/exceptions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/grammar.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/indenter.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/lark.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/lexer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tree.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/lark/visitors.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/base.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/types.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/common.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/constants.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/__init__.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/tests_async.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/tests_helpers.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/tests_init.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/test/tests_sync.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/timex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/tradeogre.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/upbit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/vertex.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/whitebit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/woo.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/woofipro.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/xt.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/yobit.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/zaif.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt/zonda.py +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/setup.cfg +0 -0
- {ccxt-4.4.90 → ccxt-4.4.92}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.4.
|
3
|
+
Version: 4.4.92
|
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
|
@@ -38,7 +38,7 @@ License-File: LICENSE.txt
|
|
38
38
|
|
39
39
|
# CCXT – CryptoCurrency eXchange Trading Library
|
40
40
|
|
41
|
-
[](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [](https://x.com/ccxt_official)
|
42
42
|
|
43
43
|
A `JavaScript` / `Python` / `PHP` / `C#` / `Go` library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
|
44
44
|
|
@@ -91,7 +91,7 @@ Current feature list:
|
|
91
91
|
| [](https://dex.woo.org/en/trade?ref=CCXT) | woofipro | [WOOFI PRO](https://dex.woo.org/en/trade?ref=CCXT) | [](https://orderly.network/docs/build-on-evm/building-on-evm) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://dex.woo.org/en/trade?ref=CCXT) |
|
92
92
|
|
93
93
|
## Supported Cryptocurrency Exchanges
|
94
|
-
<!--- init list -->The CCXT library currently supports the following
|
94
|
+
<!--- init list -->The CCXT library currently supports the following 102 cryptocurrency exchange markets and trading APIs:
|
95
95
|
|
96
96
|
|logo |id |name |ver |type |certified |pro |
|
97
97
|
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
|
@@ -135,7 +135,6 @@ Current feature list:
|
|
135
135
|
| [](https://partner.coincatch.cc/bg/92hy70391729607848548) | coincatch | [CoinCatch](https://partner.coincatch.cc/bg/92hy70391729607848548) | [](https://coincatch.github.io/github.io/en/) |  | | [](https://ccxt.pro) |
|
136
136
|
| [](https://coincheck.com) | coincheck | [coincheck](https://coincheck.com) | [](https://coincheck.com/documents/exchange/api) |  | | |
|
137
137
|
| [](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [](https://docs.coinex.com/api/v2) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
138
|
-
| [](https://coinlist.co) | coinlist | [Coinlist](https://coinlist.co) | [](https://trade-docs.coinlist.co) |  | | |
|
139
138
|
| [](https://coinmate.io?referral=YTFkM1RsOWFObVpmY1ZjMGREQmpTRnBsWjJJNVp3PT0) | coinmate | [CoinMate](https://coinmate.io?referral=YTFkM1RsOWFObVpmY1ZjMGREQmpTRnBsWjJJNVp3PT0) | [](https://coinmate.docs.apiary.io) |  | | |
|
140
139
|
| [](https://go.coinmetro.com/?ref=crypto24) | coinmetro | [Coinmetro](https://go.coinmetro.com/?ref=crypto24) | [](https://documenter.getpostman.com/view/3653795/SVfWN6KS) |  | | |
|
141
140
|
| [](https://coinone.co.kr) | coinone | [CoinOne](https://coinone.co.kr) | [](https://doc.coinone.co.kr) |  | | |
|
@@ -259,13 +258,13 @@ console.log(version, Object.keys(exchanges));
|
|
259
258
|
|
260
259
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
261
260
|
|
262
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
263
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
261
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.92/dist/ccxt.browser.min.js
|
262
|
+
* unpkg: https://unpkg.com/ccxt@4.4.92/dist/ccxt.browser.min.js
|
264
263
|
|
265
264
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
266
265
|
|
267
266
|
```HTML
|
268
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
267
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.92/dist/ccxt.browser.min.js"></script>
|
269
268
|
```
|
270
269
|
|
271
270
|
Creates a global `ccxt` object:
|
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
# ----------------------------------------------------------------------------
|
24
24
|
|
25
|
-
__version__ = '4.4.
|
25
|
+
__version__ = '4.4.92'
|
26
26
|
|
27
27
|
# ----------------------------------------------------------------------------
|
28
28
|
|
@@ -124,7 +124,6 @@ from ccxt.coinbaseinternational import coinbaseinternational # noqa: F4
|
|
124
124
|
from ccxt.coincatch import coincatch # noqa: F401
|
125
125
|
from ccxt.coincheck import coincheck # noqa: F401
|
126
126
|
from ccxt.coinex import coinex # noqa: F401
|
127
|
-
from ccxt.coinlist import coinlist # noqa: F401
|
128
127
|
from ccxt.coinmate import coinmate # noqa: F401
|
129
128
|
from ccxt.coinmetro import coinmetro # noqa: F401
|
130
129
|
from ccxt.coinone import coinone # noqa: F401
|
@@ -232,7 +231,6 @@ exchanges = [
|
|
232
231
|
'coincatch',
|
233
232
|
'coincheck',
|
234
233
|
'coinex',
|
235
|
-
'coinlist',
|
236
234
|
'coinmate',
|
237
235
|
'coinmetro',
|
238
236
|
'coinone',
|
@@ -5,6 +5,7 @@ class ImplicitAPI:
|
|
5
5
|
spot_public_get_currencypairs = spotPublicGetCurrencyPairs = Entry('currencyPairs', ['spot', 'public'], 'GET', {'cost': 2.5})
|
6
6
|
spot_public_get_accuracy = spotPublicGetAccuracy = Entry('accuracy', ['spot', 'public'], 'GET', {'cost': 2.5})
|
7
7
|
spot_public_get_usdtocny = spotPublicGetUsdToCny = Entry('usdToCny', ['spot', 'public'], 'GET', {'cost': 2.5})
|
8
|
+
spot_public_get_assetconfigs = spotPublicGetAssetConfigs = Entry('assetConfigs', ['spot', 'public'], 'GET', {'cost': 2.5})
|
8
9
|
spot_public_get_withdrawconfigs = spotPublicGetWithdrawConfigs = Entry('withdrawConfigs', ['spot', 'public'], 'GET', {'cost': 2.5})
|
9
10
|
spot_public_get_timestamp = spotPublicGetTimestamp = Entry('timestamp', ['spot', 'public'], 'GET', {'cost': 2.5})
|
10
11
|
spot_public_get_ticker_24hr = spotPublicGetTicker24hr = Entry('ticker/24hr', ['spot', 'public'], 'GET', {'cost': 2.5})
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.4.
|
7
|
+
__version__ = '4.4.92'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -104,7 +104,6 @@ from ccxt.async_support.coinbaseinternational import coinbaseinternational
|
|
104
104
|
from ccxt.async_support.coincatch import coincatch # noqa: F401
|
105
105
|
from ccxt.async_support.coincheck import coincheck # noqa: F401
|
106
106
|
from ccxt.async_support.coinex import coinex # noqa: F401
|
107
|
-
from ccxt.async_support.coinlist import coinlist # noqa: F401
|
108
107
|
from ccxt.async_support.coinmate import coinmate # noqa: F401
|
109
108
|
from ccxt.async_support.coinmetro import coinmetro # noqa: F401
|
110
109
|
from ccxt.async_support.coinone import coinone # noqa: F401
|
@@ -212,7 +211,6 @@ exchanges = [
|
|
212
211
|
'coincatch',
|
213
212
|
'coincheck',
|
214
213
|
'coinex',
|
215
|
-
'coinlist',
|
216
214
|
'coinmate',
|
217
215
|
'coinmetro',
|
218
216
|
'coinone',
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.4.
|
5
|
+
__version__ = '4.4.92'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -34,7 +34,7 @@ from ccxt.base.exchange import Exchange as BaseExchange, ArgumentsRequired
|
|
34
34
|
# -----------------------------------------------------------------------------
|
35
35
|
|
36
36
|
from ccxt.async_support.base.ws.functions import inflate, inflate64, gunzip
|
37
|
-
from ccxt.async_support.base.ws.
|
37
|
+
from ccxt.async_support.base.ws.client import Client
|
38
38
|
from ccxt.async_support.base.ws.future import Future
|
39
39
|
from ccxt.async_support.base.ws.order_book import OrderBook, IndexedOrderBook, CountedOrderBook
|
40
40
|
|
@@ -419,7 +419,7 @@ class Exchange(BaseExchange):
|
|
419
419
|
}, ws_options)
|
420
420
|
# we use aiohttp instead of fastClient now because of this
|
421
421
|
# https://github.com/ccxt/ccxt/pull/25995
|
422
|
-
self.clients[url] =
|
422
|
+
self.clients[url] = Client(url, on_message, on_error, on_close, on_connected, options)
|
423
423
|
# set http/s proxy (socks proxy should be set in other place)
|
424
424
|
httpProxy, httpsProxy, socksProxy = self.check_ws_proxy_settings()
|
425
425
|
if (httpProxy or httpsProxy):
|
@@ -638,6 +638,9 @@ class Exchange(BaseExchange):
|
|
638
638
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}):
|
639
639
|
raise NotSupported(self.id + ' watchTrades() is not supported yet')
|
640
640
|
|
641
|
+
async def un_watch_orders(self, symbol: Str = None, params={}):
|
642
|
+
raise NotSupported(self.id + ' unWatchOrders() is not supported yet')
|
643
|
+
|
641
644
|
async def un_watch_trades(self, symbol: str, params={}):
|
642
645
|
raise NotSupported(self.id + ' unWatchTrades() is not supported yet')
|
643
646
|
|
@@ -0,0 +1,323 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
orjson = None
|
4
|
+
try:
|
5
|
+
import orjson as orjson
|
6
|
+
except ImportError:
|
7
|
+
pass
|
8
|
+
|
9
|
+
import json
|
10
|
+
|
11
|
+
from asyncio import sleep, ensure_future, wait_for, TimeoutError, BaseEventLoop, Future as asyncioFuture
|
12
|
+
from .functions import milliseconds, iso8601, deep_extend, is_json_encoded_object
|
13
|
+
from ccxt import NetworkError, RequestTimeout
|
14
|
+
from ccxt.async_support.base.ws.future import Future
|
15
|
+
from ccxt.async_support.base.ws.functions import gunzip, inflate
|
16
|
+
from typing import Dict
|
17
|
+
|
18
|
+
from aiohttp import WSMsgType
|
19
|
+
|
20
|
+
|
21
|
+
class Client(object):
|
22
|
+
|
23
|
+
url = None
|
24
|
+
ws = None
|
25
|
+
futures: Dict[str, Future] = {}
|
26
|
+
options = {} # ws-specific options
|
27
|
+
subscriptions = {}
|
28
|
+
rejections = {}
|
29
|
+
on_message_callback = None
|
30
|
+
on_error_callback = None
|
31
|
+
on_close_callback = None
|
32
|
+
on_connected_callback = None
|
33
|
+
connectionStarted = None
|
34
|
+
connectionEstablished = None
|
35
|
+
isConnected = False
|
36
|
+
connectionTimeout = 10000 # ms, false to disable
|
37
|
+
connection = None
|
38
|
+
error = None # low-level networking exception, if any
|
39
|
+
connected = None # connection-related Future
|
40
|
+
keepAlive = 5000
|
41
|
+
heartbeat = True
|
42
|
+
maxPingPongMisses = 2.0 # how many missed pongs to raise a timeout
|
43
|
+
lastPong = None
|
44
|
+
ping = None # ping-function if defined
|
45
|
+
proxy = None
|
46
|
+
verbose = False # verbose output
|
47
|
+
gunzip = False
|
48
|
+
inflate = False
|
49
|
+
throttle = None
|
50
|
+
connecting = False
|
51
|
+
asyncio_loop: BaseEventLoop = None
|
52
|
+
ping_looper = None
|
53
|
+
|
54
|
+
def __init__(self, url, on_message_callback, on_error_callback, on_close_callback, on_connected_callback, config={}):
|
55
|
+
defaults = {
|
56
|
+
'url': url,
|
57
|
+
'futures': {},
|
58
|
+
'subscriptions': {},
|
59
|
+
'rejections': {},
|
60
|
+
'on_message_callback': on_message_callback,
|
61
|
+
'on_error_callback': on_error_callback,
|
62
|
+
'on_close_callback': on_close_callback,
|
63
|
+
'on_connected_callback': on_connected_callback,
|
64
|
+
}
|
65
|
+
settings = {}
|
66
|
+
settings.update(defaults)
|
67
|
+
settings.update(config)
|
68
|
+
for key in settings:
|
69
|
+
if hasattr(self, key) and isinstance(getattr(self, key), dict):
|
70
|
+
setattr(self, key, deep_extend(getattr(self, key), settings[key]))
|
71
|
+
else:
|
72
|
+
setattr(self, key, settings[key])
|
73
|
+
# connection-related Future
|
74
|
+
self.connected = Future()
|
75
|
+
|
76
|
+
def future(self, message_hash):
|
77
|
+
if message_hash not in self.futures or self.futures[message_hash].cancelled():
|
78
|
+
self.futures[message_hash] = Future()
|
79
|
+
future = self.futures[message_hash]
|
80
|
+
if message_hash in self.rejections:
|
81
|
+
future.reject(self.rejections[message_hash])
|
82
|
+
del self.rejections[message_hash]
|
83
|
+
return future
|
84
|
+
|
85
|
+
def resolve(self, result, message_hash):
|
86
|
+
if self.verbose and message_hash is None:
|
87
|
+
self.log(iso8601(milliseconds()), 'resolve received None messageHash')
|
88
|
+
if message_hash in self.futures:
|
89
|
+
future = self.futures[message_hash]
|
90
|
+
future.resolve(result)
|
91
|
+
del self.futures[message_hash]
|
92
|
+
return result
|
93
|
+
|
94
|
+
def reject(self, result, message_hash=None):
|
95
|
+
if message_hash is not None:
|
96
|
+
if message_hash in self.futures:
|
97
|
+
future = self.futures[message_hash]
|
98
|
+
future.reject(result)
|
99
|
+
del self.futures[message_hash]
|
100
|
+
else:
|
101
|
+
self.rejections[message_hash] = result
|
102
|
+
else:
|
103
|
+
message_hashes = list(self.futures.keys())
|
104
|
+
for message_hash in message_hashes:
|
105
|
+
self.reject(result, message_hash)
|
106
|
+
return result
|
107
|
+
|
108
|
+
def receive_loop(self):
|
109
|
+
if self.verbose:
|
110
|
+
self.log(iso8601(milliseconds()), 'receive loop')
|
111
|
+
if not self.closed():
|
112
|
+
# let's drain the aiohttp buffer to avoid latency
|
113
|
+
if len(self.buffer) > 1:
|
114
|
+
size_delta = 0
|
115
|
+
while len(self.buffer) > 1:
|
116
|
+
message, size = self.buffer.popleft()
|
117
|
+
size_delta += size
|
118
|
+
self.handle_message(message)
|
119
|
+
# we must update the size of the last message inside WebSocketDataQueue
|
120
|
+
# self.receive() calls WebSocketDataQueue.read() that calls WebSocketDataQueue._read_from_buffer()
|
121
|
+
# which updates the size of the buffer, the _size will overflow and pause the transport
|
122
|
+
# make sure to set the enviroment variable AIOHTTP_NO_EXTENSIONS=Y to check
|
123
|
+
# print(self.connection._conn.protocol._payload._size)
|
124
|
+
self.buffer[0] = (self.buffer[0][0], self.buffer[0][1] + size_delta)
|
125
|
+
|
126
|
+
task = self.asyncio_loop.create_task(self.receive())
|
127
|
+
|
128
|
+
def after_interrupt(resolved: asyncioFuture):
|
129
|
+
exception = resolved.exception()
|
130
|
+
if exception is None:
|
131
|
+
self.handle_message(resolved.result())
|
132
|
+
self.asyncio_loop.call_soon(self.receive_loop)
|
133
|
+
else:
|
134
|
+
error = NetworkError(str(exception))
|
135
|
+
if self.verbose:
|
136
|
+
self.log(iso8601(milliseconds()), 'receive_loop', 'Exception', error)
|
137
|
+
self.reject(error)
|
138
|
+
|
139
|
+
task.add_done_callback(after_interrupt)
|
140
|
+
|
141
|
+
async def open(self, session, backoff_delay=0):
|
142
|
+
# exponential backoff for consequent connections if necessary
|
143
|
+
if backoff_delay:
|
144
|
+
await sleep(backoff_delay)
|
145
|
+
if self.verbose:
|
146
|
+
self.log(iso8601(milliseconds()), 'connecting to', self.url, 'with timeout', self.connectionTimeout, 'ms')
|
147
|
+
self.connectionStarted = milliseconds()
|
148
|
+
try:
|
149
|
+
coroutine = self.create_connection(session)
|
150
|
+
self.connection = await wait_for(coroutine, timeout=int(self.connectionTimeout / 1000))
|
151
|
+
self.connecting = False
|
152
|
+
self.connectionEstablished = milliseconds()
|
153
|
+
self.isConnected = True
|
154
|
+
if self.verbose:
|
155
|
+
self.log(iso8601(milliseconds()), 'connected')
|
156
|
+
self.connected.resolve(self.url)
|
157
|
+
self.on_connected_callback(self)
|
158
|
+
# run both loops forever
|
159
|
+
self.ping_looper = ensure_future(self.ping_loop(), loop=self.asyncio_loop)
|
160
|
+
self.asyncio_loop.call_soon(self.receive_loop)
|
161
|
+
except TimeoutError:
|
162
|
+
# connection timeout
|
163
|
+
error = RequestTimeout('Connection timeout')
|
164
|
+
if self.verbose:
|
165
|
+
self.log(iso8601(milliseconds()), 'RequestTimeout', error)
|
166
|
+
self.on_error(error)
|
167
|
+
except Exception as e:
|
168
|
+
# connection failed or rejected (ConnectionRefusedError, ClientConnectorError)
|
169
|
+
error = NetworkError(e)
|
170
|
+
if self.verbose:
|
171
|
+
self.log(iso8601(milliseconds()), 'NetworkError', error)
|
172
|
+
self.on_error(error)
|
173
|
+
|
174
|
+
@property
|
175
|
+
def buffer(self):
|
176
|
+
# looks like they exposed it in C
|
177
|
+
# this means we can bypass it
|
178
|
+
# https://github.com/aio-libs/aiohttp/blob/master/aiohttp/_websocket/reader_c.pxd#L53C24-L53C31
|
179
|
+
return self.connection._conn.protocol._payload._buffer
|
180
|
+
|
181
|
+
def connect(self, session, backoff_delay=0):
|
182
|
+
if not self.connection and not self.connecting:
|
183
|
+
self.connecting = True
|
184
|
+
ensure_future(self.open(session, backoff_delay), loop=self.asyncio_loop)
|
185
|
+
return self.connected
|
186
|
+
|
187
|
+
def on_error(self, error):
|
188
|
+
if self.verbose:
|
189
|
+
self.log(iso8601(milliseconds()), 'on_error', error)
|
190
|
+
self.error = error
|
191
|
+
self.reject(error)
|
192
|
+
self.on_error_callback(self, error)
|
193
|
+
if not self.closed():
|
194
|
+
ensure_future(self.close(1006), loop=self.asyncio_loop)
|
195
|
+
|
196
|
+
def on_close(self, code):
|
197
|
+
if self.verbose:
|
198
|
+
self.log(iso8601(milliseconds()), 'on_close', code)
|
199
|
+
if not self.error:
|
200
|
+
self.reject(NetworkError('Connection closed by remote server, closing code ' + str(code)))
|
201
|
+
self.on_close_callback(self, code)
|
202
|
+
ensure_future(self.aiohttp_close(), loop=self.asyncio_loop)
|
203
|
+
|
204
|
+
def log(self, *args):
|
205
|
+
print(*args)
|
206
|
+
|
207
|
+
def closed(self):
|
208
|
+
return (self.connection is None) or self.connection.closed
|
209
|
+
|
210
|
+
def receive(self):
|
211
|
+
return self.connection.receive()
|
212
|
+
|
213
|
+
# helper method for binary and text messages
|
214
|
+
def handle_text_or_binary_message(self, data):
|
215
|
+
if self.verbose:
|
216
|
+
self.log(iso8601(milliseconds()), 'message', data)
|
217
|
+
if isinstance(data, bytes):
|
218
|
+
data = data.decode()
|
219
|
+
# decoded = json.loads(data) if is_json_encoded_object(data) else data
|
220
|
+
decode = None
|
221
|
+
if is_json_encoded_object(data):
|
222
|
+
if orjson is None:
|
223
|
+
decode = json.loads(data)
|
224
|
+
else:
|
225
|
+
decode = orjson.loads(data)
|
226
|
+
else:
|
227
|
+
decode = data
|
228
|
+
self.on_message_callback(self, decode)
|
229
|
+
|
230
|
+
def handle_message(self, message):
|
231
|
+
# self.log(iso8601(milliseconds()), message)
|
232
|
+
if message.type == WSMsgType.TEXT:
|
233
|
+
self.handle_text_or_binary_message(message.data)
|
234
|
+
elif message.type == WSMsgType.BINARY:
|
235
|
+
data = message.data
|
236
|
+
if self.gunzip:
|
237
|
+
data = gunzip(data)
|
238
|
+
elif self.inflate:
|
239
|
+
data = inflate(data)
|
240
|
+
self.handle_text_or_binary_message(data)
|
241
|
+
# autoping is responsible for automatically replying with pong
|
242
|
+
# to a ping incoming from a server, we have to disable autoping
|
243
|
+
# with aiohttp's websockets and respond with pong manually
|
244
|
+
# otherwise aiohttp's websockets client won't trigger WSMsgType.PONG
|
245
|
+
elif message.type == WSMsgType.PING:
|
246
|
+
if self.verbose:
|
247
|
+
self.log(iso8601(milliseconds()), 'ping', message)
|
248
|
+
ensure_future(self.connection.pong(message.data), loop=self.asyncio_loop)
|
249
|
+
elif message.type == WSMsgType.PONG:
|
250
|
+
self.lastPong = milliseconds()
|
251
|
+
if self.verbose:
|
252
|
+
self.log(iso8601(milliseconds()), 'pong', message)
|
253
|
+
pass
|
254
|
+
elif message.type == WSMsgType.CLOSE:
|
255
|
+
if self.verbose:
|
256
|
+
self.log(iso8601(milliseconds()), 'close', self.closed(), message)
|
257
|
+
self.on_close(message.data)
|
258
|
+
elif message.type == WSMsgType.ERROR:
|
259
|
+
if self.verbose:
|
260
|
+
self.log(iso8601(milliseconds()), 'error', message)
|
261
|
+
error = NetworkError(str(message))
|
262
|
+
self.on_error(error)
|
263
|
+
|
264
|
+
def create_connection(self, session):
|
265
|
+
# autoping is responsible for automatically replying with pong
|
266
|
+
# to a ping incoming from a server, we have to disable autoping
|
267
|
+
# with aiohttp's websockets and respond with pong manually
|
268
|
+
# otherwise aiohttp's websockets client won't trigger WSMsgType.PONG
|
269
|
+
# call aenter here to simulate async with otherwise we get the error "await not called with future"
|
270
|
+
# if connecting to a non-existent endpoint
|
271
|
+
if (self.proxy):
|
272
|
+
return session.ws_connect(self.url, autoping=False, autoclose=False, headers=self.options.get('headers'), proxy=self.proxy, max_msg_size=10485760).__aenter__()
|
273
|
+
return session.ws_connect(self.url, autoping=False, autoclose=False, headers=self.options.get('headers'), max_msg_size=10485760).__aenter__()
|
274
|
+
|
275
|
+
async def send(self, message):
|
276
|
+
if self.verbose:
|
277
|
+
self.log(iso8601(milliseconds()), 'sending', message)
|
278
|
+
send_msg = None
|
279
|
+
if isinstance(message, str):
|
280
|
+
send_msg = message
|
281
|
+
else:
|
282
|
+
if orjson is None:
|
283
|
+
send_msg = json.dumps(message, separators=(',', ':'))
|
284
|
+
else:
|
285
|
+
send_msg = orjson.dumps(message).decode('utf-8')
|
286
|
+
return await self.connection.send_str(send_msg)
|
287
|
+
|
288
|
+
async def close(self, code=1000):
|
289
|
+
if self.verbose:
|
290
|
+
self.log(iso8601(milliseconds()), 'closing', code)
|
291
|
+
for future in self.futures.values():
|
292
|
+
future.cancel()
|
293
|
+
await self.aiohttp_close()
|
294
|
+
|
295
|
+
async def aiohttp_close(self):
|
296
|
+
if not self.closed():
|
297
|
+
await self.connection.close()
|
298
|
+
# these will end automatically once self.closed() = True
|
299
|
+
# so we don't need to cancel them
|
300
|
+
if self.ping_looper:
|
301
|
+
self.ping_looper.cancel()
|
302
|
+
|
303
|
+
async def ping_loop(self):
|
304
|
+
if self.verbose:
|
305
|
+
self.log(iso8601(milliseconds()), 'ping loop')
|
306
|
+
while self.keepAlive and not self.closed():
|
307
|
+
now = milliseconds()
|
308
|
+
self.lastPong = now if self.lastPong is None else self.lastPong
|
309
|
+
if (self.lastPong + self.keepAlive * self.maxPingPongMisses) < now:
|
310
|
+
self.on_error(RequestTimeout('Connection to ' + self.url + ' timed out due to a ping-pong keepalive missing on time'))
|
311
|
+
# the following ping-clause is not necessary with aiohttp's built-in ws
|
312
|
+
# since it has a heartbeat option (see create_connection above)
|
313
|
+
# however some exchanges require a text-type ping message
|
314
|
+
# therefore we need this clause anyway
|
315
|
+
else:
|
316
|
+
if self.ping:
|
317
|
+
try:
|
318
|
+
await self.send(self.ping(self))
|
319
|
+
except Exception as e:
|
320
|
+
self.on_error(e)
|
321
|
+
else:
|
322
|
+
await self.connection.ping()
|
323
|
+
await sleep(self.keepAlive / 1000)
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import asyncio
|
2
|
+
|
3
|
+
|
4
|
+
class Future(asyncio.Future):
|
5
|
+
|
6
|
+
def resolve(self, result=None):
|
7
|
+
if not self.done():
|
8
|
+
self.set_result(result)
|
9
|
+
|
10
|
+
def reject(self, error=None):
|
11
|
+
if not self.done():
|
12
|
+
self.set_exception(error)
|
13
|
+
|
14
|
+
@classmethod
|
15
|
+
def race(cls, futures):
|
16
|
+
future = Future()
|
17
|
+
coro = asyncio.wait(futures, return_when=asyncio.FIRST_COMPLETED)
|
18
|
+
task = asyncio.create_task(coro)
|
19
|
+
|
20
|
+
def callback(done):
|
21
|
+
complete, _ = done.result()
|
22
|
+
# check for exceptions
|
23
|
+
exceptions = []
|
24
|
+
cancelled = False
|
25
|
+
for f in complete:
|
26
|
+
if f.cancelled():
|
27
|
+
cancelled = True
|
28
|
+
else:
|
29
|
+
err = f.exception()
|
30
|
+
if err:
|
31
|
+
exceptions.append(err)
|
32
|
+
# if any exceptions return with first exception
|
33
|
+
if len(exceptions) > 0:
|
34
|
+
future.set_exception(exceptions[0])
|
35
|
+
# else return first result
|
36
|
+
elif cancelled:
|
37
|
+
future.cancel()
|
38
|
+
else:
|
39
|
+
first_result = list(complete)[0].result()
|
40
|
+
future.set_result(first_result)
|
41
|
+
task.add_done_callback(callback)
|
42
|
+
return future
|
@@ -3904,7 +3904,7 @@ class binance(Exchange, ImplicitAPI):
|
|
3904
3904
|
#
|
3905
3905
|
# {
|
3906
3906
|
# "symbol": "BTCUSDT",
|
3907
|
-
# "markPrice": "11793.
|
3907
|
+
# "markPrice": "11793.63104561", # mark price
|
3908
3908
|
# "indexPrice": "11781.80495970", # index price
|
3909
3909
|
# "estimatedSettlePrice": "11781.16138815", # Estimated Settle Price, only useful in the last hour before the settlement starts
|
3910
3910
|
# "lastFundingRate": "0.00038246", # This is the lastest estimated funding rate
|
@@ -2160,6 +2160,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
2160
2160
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2161
2161
|
:param int [params.until]: the latest time in ms to fetch trades for
|
2162
2162
|
:param boolean [params.marginMode]: *spot* whether to fetch trades for margin orders or spot orders, defaults to spot orders(only isolated margin orders are supported)
|
2163
|
+
:param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
|
2163
2164
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
2164
2165
|
"""
|
2165
2166
|
await self.load_markets()
|
@@ -2264,6 +2265,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
2264
2265
|
:param int [since]: the earliest time in ms to fetch trades for
|
2265
2266
|
:param int [limit]: the maximum number of trades to retrieve
|
2266
2267
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2268
|
+
:param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
|
2267
2269
|
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
2268
2270
|
"""
|
2269
2271
|
await self.load_markets()
|
@@ -2706,6 +2708,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
2706
2708
|
:param str [params.stopLossPrice]: *swap only* the price to trigger a stop-loss order
|
2707
2709
|
:param str [params.takeProfitPrice]: *swap only* the price to trigger a take-profit order
|
2708
2710
|
:param int [params.plan_category]: *swap tp/sl only* 1: tp/sl, 2: position tp/sl, default is 1
|
2711
|
+
:param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
|
2709
2712
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2710
2713
|
"""
|
2711
2714
|
await self.load_markets()
|
@@ -2768,6 +2771,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
2768
2771
|
|
2769
2772
|
:param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
|
2770
2773
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2774
|
+
:param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
|
2771
2775
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2772
2776
|
"""
|
2773
2777
|
await self.load_markets()
|
@@ -3270,6 +3274,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3270
3274
|
:param str [params.orderType]: *swap only* 'limit', 'market', or 'trailing'
|
3271
3275
|
:param boolean [params.trailing]: *swap only* set to True if you want to fetch trailing orders
|
3272
3276
|
:param boolean [params.trigger]: *swap only* set to True if you want to fetch trigger orders
|
3277
|
+
:param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
|
3273
3278
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
3274
3279
|
"""
|
3275
3280
|
await self.load_markets()
|
@@ -3383,6 +3388,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3383
3388
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
3384
3389
|
:param int [params.until]: timestamp in ms of the latest entry
|
3385
3390
|
:param str [params.marginMode]: *spot only* 'cross' or 'isolated', for margin trading
|
3391
|
+
:param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
|
3386
3392
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
3387
3393
|
"""
|
3388
3394
|
await self.load_markets()
|
@@ -3441,6 +3447,7 @@ class bitmart(Exchange, ImplicitAPI):
|
|
3441
3447
|
:param str [params.clientOrderId]: *spot* fetch the order by client order id instead of order id
|
3442
3448
|
:param str [params.orderType]: *swap only* 'limit', 'market', 'liquidate', 'bankruptcy', 'adl' or 'trailing'
|
3443
3449
|
:param boolean [params.trailing]: *swap only* set to True if you want to fetch a trailing order
|
3450
|
+
:param str [params.stpMode]: self-trade prevention only for spot, defaults to none, ['none', 'cancel_maker', 'cancel_taker', 'cancel_both']
|
3444
3451
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
3445
3452
|
"""
|
3446
3453
|
await self.load_markets()
|
@@ -101,6 +101,7 @@ class bitmex(Exchange, ImplicitAPI):
|
|
101
101
|
'fetchTransactions': 'emulated',
|
102
102
|
'fetchTransfer': False,
|
103
103
|
'fetchTransfers': False,
|
104
|
+
'index': True,
|
104
105
|
'reduceMargin': None,
|
105
106
|
'sandbox': True,
|
106
107
|
'setLeverage': True,
|
@@ -427,8 +428,8 @@ class bitmex(Exchange, ImplicitAPI):
|
|
427
428
|
# # "mediumPrecision": "8",
|
428
429
|
# # "shorterPrecision": "4",
|
429
430
|
# # "symbol": "₿",
|
430
|
-
# # "weight": "1",
|
431
431
|
# # "tickLog": "0",
|
432
|
+
# # "weight": "1",
|
432
433
|
# "enabled": True,
|
433
434
|
# "isMarginCurrency": True,
|
434
435
|
# "minDepositAmount": "10000",
|
@@ -666,7 +666,7 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
666
666
|
},
|
667
667
|
})
|
668
668
|
# set currencies here to avoid calling publicGetAssets twice
|
669
|
-
self.currencies = self.deep_extend(self.currencies, result)
|
669
|
+
self.currencies = self.map_to_safe_map(self.deep_extend(self.currencies, result))
|
670
670
|
return result
|
671
671
|
|
672
672
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
@@ -1207,6 +1207,8 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
1207
1207
|
operatorId, params = self.handle_option_and_params(params, 'createOrder', 'operatorId')
|
1208
1208
|
if operatorId is not None:
|
1209
1209
|
request['operatorId'] = self.parse_to_int(operatorId)
|
1210
|
+
else:
|
1211
|
+
raise ArgumentsRequired(self.id + ' createOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
|
1210
1212
|
return self.extend(request, params)
|
1211
1213
|
|
1212
1214
|
async def create_order(self, symbol: Str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
@@ -1304,6 +1306,8 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
1304
1306
|
operatorId, params = self.handle_option_and_params(params, 'editOrder', 'operatorId')
|
1305
1307
|
if operatorId is not None:
|
1306
1308
|
request['operatorId'] = self.parse_to_int(operatorId)
|
1309
|
+
else:
|
1310
|
+
raise ArgumentsRequired(self.id + ' editOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
|
1307
1311
|
request['market'] = market['id']
|
1308
1312
|
return request
|
1309
1313
|
|
@@ -1342,6 +1346,8 @@ class bitvavo(Exchange, ImplicitAPI):
|
|
1342
1346
|
operatorId, params = self.handle_option_and_params(params, 'cancelOrder', 'operatorId')
|
1343
1347
|
if operatorId is not None:
|
1344
1348
|
request['operatorId'] = self.parse_to_int(operatorId)
|
1349
|
+
else:
|
1350
|
+
raise ArgumentsRequired(self.id + ' cancelOrder() requires an operatorId in params or options, eg: exchange.options[\'operatorId\'] = 1234567890')
|
1345
1351
|
return self.extend(request, params)
|
1346
1352
|
|
1347
1353
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|