ccxt 4.4.59__tar.gz → 4.4.60__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.59/ccxt.egg-info → ccxt-4.4.60}/PKG-INFO +4 -4
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/__init__.py +1 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/alpaca.py +8 -3
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/alpaca.py +8 -3
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/exchange.py +4 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/binance.py +81 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitget.py +2 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bybit.py +5 -2
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/hollaex.py +1 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/oxfun.py +1 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/xt.py +12 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/base/exchange.py +5 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/binance.py +81 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitget.py +2 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bybit.py +5 -2
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/hollaex.py +1 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/oxfun.py +1 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/xt.py +109 -3
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/test/tests_async.py +11 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/test/tests_sync.py +11 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/xt.py +12 -0
- {ccxt-4.4.59 → ccxt-4.4.60/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.4.59 → ccxt-4.4.60}/package.json +1 -1
- {ccxt-4.4.59 → ccxt-4.4.60}/LICENSE.txt +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/MANIFEST.in +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/README.rst +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitfinex1.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitteam.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/blofin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinbaseadvanced.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinbaseexchange.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinbaseinternational.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coincatch.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinmetro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/defx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/ellipx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/hashkey.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/hyperliquid.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/myokx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/onetrading.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/oxfun.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/paradex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/tradeogre.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/vertex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/woofipro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/xt.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/ace.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/ascendex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitfinex1.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitteam.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/blofin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinbaseadvanced.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinbaseexchange.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinbaseinternational.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coincatch.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinmetro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/defx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/ellipx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/hashkey.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/hyperliquid.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/myokx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/onetrading.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/paradex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/tradeogre.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/vertex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/woofipro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/base/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/base/errors.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/base/precise.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/base/types.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bequant.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bigone.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/binanceus.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bingx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bit2c.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitbank.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitbns.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitfinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitfinex1.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitflyer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bithumb.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitmart.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitmex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitopro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitpanda.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitrue.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitso.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitstamp.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitteam.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bitvavo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/bl3p.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/blofin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/btcalpha.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/btcbox.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/btcturk.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/cex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinbase.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinbaseadvanced.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinbaseexchange.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinbaseinternational.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coincatch.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coincheck.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinlist.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinmate.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinmetro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinone.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinsph.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/coinspot.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/cryptocom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/currencycom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/defx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/delta.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/deribit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/digifinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/ellipx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/exmo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/fmfwio.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/gate.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/gateio.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/gemini.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/hashkey.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/hitbtc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/htx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/huobi.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/huobijp.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/hyperliquid.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/idex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/independentreserve.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/indodax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/kraken.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/kucoin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/kuna.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/latoken.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/lbank.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/luno.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/mercado.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/mexc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/myokx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/ndax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/novadax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/oceanex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/okcoin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/okx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/onetrading.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/p2b.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/paradex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/paymium.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/phemex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/poloniex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/binance.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitfinex1.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bithumb.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/blofin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/cex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/coinbaseadvanced.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/coinbaseexchange.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/coinbaseinternational.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/coincatch.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/coincheck.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/coinone.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/defx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/gate.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/hashkey.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/htx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/hyperliquid.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/idex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/lbank.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/luno.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/myokx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/okx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/onetrading.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/oxfun.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/p2b.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/paradex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/probit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/vertex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/woo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/pro/woofipro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/probit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/ast_utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/common.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/exceptions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/grammar.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/indenter.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/lark.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/lexer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/load_grammar.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/reconstruct.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/tree.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/tree_templates.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/lark/visitors.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/base.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/fields.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/schema.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/types.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/validate.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/common.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/constants.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/hash/address.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starkware/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/sympy/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/_version.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/toolz/utils.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/test/__init__.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/test/tests_helpers.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/test/tests_init.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/timex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/tradeogre.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/upbit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/vertex.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/whitebit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/woo.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/woofipro.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/yobit.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/zaif.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt/zonda.py +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/setup.cfg +0 -0
- {ccxt-4.4.59 → ccxt-4.4.60}/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.60
|
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
|
@@ -266,13 +266,13 @@ console.log(version, Object.keys(exchanges));
|
|
266
266
|
|
267
267
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
268
268
|
|
269
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
270
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
269
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.60/dist/ccxt.browser.min.js
|
270
|
+
* unpkg: https://unpkg.com/ccxt@4.4.60/dist/ccxt.browser.min.js
|
271
271
|
|
272
272
|
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.
|
273
273
|
|
274
274
|
```HTML
|
275
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
275
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.60/dist/ccxt.browser.min.js"></script>
|
276
276
|
```
|
277
277
|
|
278
278
|
Creates a global `ccxt` object:
|
@@ -1138,9 +1138,9 @@ class alpaca(Exchange, ImplicitAPI):
|
|
1138
1138
|
until = self.safe_integer(params, 'until')
|
1139
1139
|
if until is not None:
|
1140
1140
|
params = self.omit(params, 'until')
|
1141
|
-
request['endTime'] = until
|
1141
|
+
request['endTime'] = self.iso8601(until)
|
1142
1142
|
if since is not None:
|
1143
|
-
request['after'] = since
|
1143
|
+
request['after'] = self.iso8601(since)
|
1144
1144
|
if limit is not None:
|
1145
1145
|
request['limit'] = limit
|
1146
1146
|
response = self.traderPrivateGetV2Orders(self.extend(request, params))
|
@@ -1374,6 +1374,7 @@ class alpaca(Exchange, ImplicitAPI):
|
|
1374
1374
|
:param int [limit]: the maximum number of trade structures to retrieve
|
1375
1375
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1376
1376
|
:param int [params.until]: the latest time in ms to fetch trades for
|
1377
|
+
:param str [params.page_token]: page_token - used for paging
|
1377
1378
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
1378
1379
|
"""
|
1379
1380
|
self.load_markets()
|
@@ -1383,8 +1384,12 @@ class alpaca(Exchange, ImplicitAPI):
|
|
1383
1384
|
}
|
1384
1385
|
if symbol is not None:
|
1385
1386
|
market = self.market(symbol)
|
1387
|
+
until = self.safe_integer(params, 'until')
|
1388
|
+
if until is not None:
|
1389
|
+
params = self.omit(params, 'until')
|
1390
|
+
request['until'] = self.iso8601(until)
|
1386
1391
|
if since is not None:
|
1387
|
-
request['after'] = since
|
1392
|
+
request['after'] = self.iso8601(since)
|
1388
1393
|
if limit is not None:
|
1389
1394
|
request['page_size'] = limit
|
1390
1395
|
request, params = self.handle_until_option('until', request, params)
|
@@ -1138,9 +1138,9 @@ class alpaca(Exchange, ImplicitAPI):
|
|
1138
1138
|
until = self.safe_integer(params, 'until')
|
1139
1139
|
if until is not None:
|
1140
1140
|
params = self.omit(params, 'until')
|
1141
|
-
request['endTime'] = until
|
1141
|
+
request['endTime'] = self.iso8601(until)
|
1142
1142
|
if since is not None:
|
1143
|
-
request['after'] = since
|
1143
|
+
request['after'] = self.iso8601(since)
|
1144
1144
|
if limit is not None:
|
1145
1145
|
request['limit'] = limit
|
1146
1146
|
response = await self.traderPrivateGetV2Orders(self.extend(request, params))
|
@@ -1374,6 +1374,7 @@ class alpaca(Exchange, ImplicitAPI):
|
|
1374
1374
|
:param int [limit]: the maximum number of trade structures to retrieve
|
1375
1375
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1376
1376
|
:param int [params.until]: the latest time in ms to fetch trades for
|
1377
|
+
:param str [params.page_token]: page_token - used for paging
|
1377
1378
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
1378
1379
|
"""
|
1379
1380
|
await self.load_markets()
|
@@ -1383,8 +1384,12 @@ class alpaca(Exchange, ImplicitAPI):
|
|
1383
1384
|
}
|
1384
1385
|
if symbol is not None:
|
1385
1386
|
market = self.market(symbol)
|
1387
|
+
until = self.safe_integer(params, 'until')
|
1388
|
+
if until is not None:
|
1389
|
+
params = self.omit(params, 'until')
|
1390
|
+
request['until'] = self.iso8601(until)
|
1386
1391
|
if since is not None:
|
1387
|
-
request['after'] = since
|
1392
|
+
request['after'] = self.iso8601(since)
|
1388
1393
|
if limit is not None:
|
1389
1394
|
request['page_size'] = limit
|
1390
1395
|
request, params = self.handle_until_option('until', request, params)
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.4.
|
5
|
+
__version__ = '4.4.60'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -1440,6 +1440,9 @@ class Exchange(BaseExchange):
|
|
1440
1440
|
async def create_orders(self, orders: List[OrderRequest], params={}):
|
1441
1441
|
raise NotSupported(self.id + ' createOrders() is not supported yet')
|
1442
1442
|
|
1443
|
+
async def edit_orders(self, orders: List[OrderRequest], params={}):
|
1444
|
+
raise NotSupported(self.id + ' editOrders() is not supported yet')
|
1445
|
+
|
1443
1446
|
async def create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
1444
1447
|
raise NotSupported(self.id + ' createOrderWs() is not supported yet')
|
1445
1448
|
|
@@ -86,6 +86,7 @@ class binance(Exchange, ImplicitAPI):
|
|
86
86
|
'createTrailingPercentOrder': True,
|
87
87
|
'createTriggerOrder': True,
|
88
88
|
'editOrder': True,
|
89
|
+
'editOrders': True,
|
89
90
|
'fetchAccounts': None,
|
90
91
|
'fetchBalance': True,
|
91
92
|
'fetchBidsAsks': True,
|
@@ -5393,6 +5394,85 @@ class binance(Exchange, ImplicitAPI):
|
|
5393
5394
|
else:
|
5394
5395
|
return await self.edit_contract_order(id, symbol, type, side, amount, price, params)
|
5395
5396
|
|
5397
|
+
async def edit_orders(self, orders: List[OrderRequest], params={}):
|
5398
|
+
"""
|
5399
|
+
edit a list of trade orders
|
5400
|
+
|
5401
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Multiple-Orders
|
5402
|
+
https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Modify-Multiple-Orders
|
5403
|
+
|
5404
|
+
: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
|
5405
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
5406
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
5407
|
+
"""
|
5408
|
+
await self.load_markets()
|
5409
|
+
ordersRequests = []
|
5410
|
+
orderSymbols = []
|
5411
|
+
for i in range(0, len(orders)):
|
5412
|
+
rawOrder = orders[i]
|
5413
|
+
marketId = self.safe_string(rawOrder, 'symbol')
|
5414
|
+
orderSymbols.append(marketId)
|
5415
|
+
id = self.safe_string(rawOrder, 'id')
|
5416
|
+
type = self.safe_string(rawOrder, 'type')
|
5417
|
+
side = self.safe_string(rawOrder, 'side')
|
5418
|
+
amount = self.safe_value(rawOrder, 'amount')
|
5419
|
+
price = self.safe_value(rawOrder, 'price')
|
5420
|
+
orderParams = self.safe_dict(rawOrder, 'params', {})
|
5421
|
+
isPortfolioMargin = None
|
5422
|
+
isPortfolioMargin, orderParams = self.handle_option_and_params_2(orderParams, 'editOrders', 'papi', 'portfolioMargin', False)
|
5423
|
+
if isPortfolioMargin:
|
5424
|
+
raise NotSupported(self.id + ' editOrders() does not support portfolio margin orders')
|
5425
|
+
orderRequest = self.edit_contract_order_request(id, marketId, type, side, amount, price, orderParams)
|
5426
|
+
ordersRequests.append(orderRequest)
|
5427
|
+
orderSymbols = self.market_symbols(orderSymbols, None, False, True, True)
|
5428
|
+
market = self.market(orderSymbols[0])
|
5429
|
+
if market['spot'] or market['option']:
|
5430
|
+
raise NotSupported(self.id + ' editOrders() does not support ' + market['type'] + ' orders')
|
5431
|
+
response = None
|
5432
|
+
request: dict = {
|
5433
|
+
'batchOrders': ordersRequests,
|
5434
|
+
}
|
5435
|
+
request = self.extend(request, params)
|
5436
|
+
if market['linear']:
|
5437
|
+
response = await self.fapiPrivatePutBatchOrders(request)
|
5438
|
+
elif market['inverse']:
|
5439
|
+
response = await self.dapiPrivatePutBatchOrders(request)
|
5440
|
+
#
|
5441
|
+
# [
|
5442
|
+
# {
|
5443
|
+
# "code": -4005,
|
5444
|
+
# "msg": "Quantity greater than max quantity."
|
5445
|
+
# },
|
5446
|
+
# {
|
5447
|
+
# "orderId": 650640530,
|
5448
|
+
# "symbol": "LTCUSDT",
|
5449
|
+
# "status": "NEW",
|
5450
|
+
# "clientOrderId": "x-xcKtGhcu32184eb13585491289bbaf",
|
5451
|
+
# "price": "54.00",
|
5452
|
+
# "avgPrice": "0.00",
|
5453
|
+
# "origQty": "0.100",
|
5454
|
+
# "executedQty": "0.000",
|
5455
|
+
# "cumQty": "0.000",
|
5456
|
+
# "cumQuote": "0.00000",
|
5457
|
+
# "timeInForce": "GTC",
|
5458
|
+
# "type": "LIMIT",
|
5459
|
+
# "reduceOnly": False,
|
5460
|
+
# "closePosition": False,
|
5461
|
+
# "side": "BUY",
|
5462
|
+
# "positionSide": "BOTH",
|
5463
|
+
# "stopPrice": "0.00",
|
5464
|
+
# "workingType": "CONTRACT_PRICE",
|
5465
|
+
# "priceProtect": False,
|
5466
|
+
# "origType": "LIMIT",
|
5467
|
+
# "priceMatch": "NONE",
|
5468
|
+
# "selfTradePreventionMode": "NONE",
|
5469
|
+
# "goodTillDate": 0,
|
5470
|
+
# "updateTime": 1698073926929
|
5471
|
+
# }
|
5472
|
+
# ]
|
5473
|
+
#
|
5474
|
+
return self.parse_orders(response)
|
5475
|
+
|
5396
5476
|
def parse_order_status(self, status: Str):
|
5397
5477
|
statuses: dict = {
|
5398
5478
|
'NEW': 'open',
|
@@ -11243,7 +11323,7 @@ class binance(Exchange, ImplicitAPI):
|
|
11243
11323
|
params['newClientOrderId'] = brokerId + self.uuid22()
|
11244
11324
|
query = None
|
11245
11325
|
# handle batchOrders
|
11246
|
-
if (path == 'batchOrders') and (method == 'POST'):
|
11326
|
+
if (path == 'batchOrders') and ((method == 'POST') or (method == 'PUT')):
|
11247
11327
|
batchOrders = self.safe_value(params, 'batchOrders')
|
11248
11328
|
queryBatch = (self.json(batchOrders))
|
11249
11329
|
params['batchOrders'] = queryBatch
|
@@ -8856,7 +8856,8 @@ class bitget(Exchange, ImplicitAPI):
|
|
8856
8856
|
if method == 'POST':
|
8857
8857
|
headers['Content-Type'] = 'application/json'
|
8858
8858
|
sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
|
8859
|
-
if sandboxMode:
|
8859
|
+
if sandboxMode and (path != 'v2/public/time'):
|
8860
|
+
# https://github.com/ccxt/ccxt/issues/25252#issuecomment-2662742336
|
8860
8861
|
if headers is None:
|
8861
8862
|
headers = {}
|
8862
8863
|
headers['PAPTRADING'] = '1'
|
@@ -6525,10 +6525,13 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
6525
6525
|
# }
|
6526
6526
|
#
|
6527
6527
|
timestamp = self.safe_integer(interest, 'timestamp')
|
6528
|
-
|
6528
|
+
openInterest = self.safe_number_2(interest, 'open_interest', 'openInterest')
|
6529
|
+
# the openInterest is in the base asset for linear and quote asset for inverse
|
6530
|
+
amount = openInterest if market['linear'] else None
|
6531
|
+
value = openInterest if market['inverse'] else None
|
6529
6532
|
return self.safe_open_interest({
|
6530
6533
|
'symbol': market['symbol'],
|
6531
|
-
'openInterestAmount':
|
6534
|
+
'openInterestAmount': amount,
|
6532
6535
|
'openInterestValue': value,
|
6533
6536
|
'timestamp': timestamp,
|
6534
6537
|
'datetime': self.iso8601(timestamp),
|
@@ -1882,7 +1882,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1882
1882
|
# "network":"https://api.hollaex.network"
|
1883
1883
|
# }
|
1884
1884
|
#
|
1885
|
-
coins = self.
|
1885
|
+
coins = self.safe_dict(response, 'coins', {})
|
1886
1886
|
return self.parse_deposit_withdraw_fees(coins, codes, 'symbol')
|
1887
1887
|
|
1888
1888
|
def normalize_number_if_needed(self, number):
|
@@ -2885,7 +2885,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
2885
2885
|
'AccessKey': self.apiKey,
|
2886
2886
|
'Timestamp': datetime,
|
2887
2887
|
'Signature': signature,
|
2888
|
-
'Nonce': nonce,
|
2888
|
+
'Nonce': str(nonce),
|
2889
2889
|
}
|
2890
2890
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
2891
2891
|
|
@@ -1394,9 +1394,15 @@ class xt(Exchange, ImplicitAPI):
|
|
1394
1394
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
1395
1395
|
:param int [limit]: the maximum amount of candles to fetch
|
1396
1396
|
:param dict params: extra parameters specific to the xt api endpoint
|
1397
|
+
:param int [params.until]: timestamp in ms of the latest candle to fetch
|
1398
|
+
:param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
1397
1399
|
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
1398
1400
|
"""
|
1399
1401
|
await self.load_markets()
|
1402
|
+
paginate = False
|
1403
|
+
paginate, params = self.handle_option_and_params(params, 'fetchOHLCV', 'paginate', False)
|
1404
|
+
if paginate:
|
1405
|
+
return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 1000)
|
1400
1406
|
market = self.market(symbol)
|
1401
1407
|
request = {
|
1402
1408
|
'symbol': market['id'],
|
@@ -1406,6 +1412,12 @@ class xt(Exchange, ImplicitAPI):
|
|
1406
1412
|
request['startTime'] = since
|
1407
1413
|
if limit is not None:
|
1408
1414
|
request['limit'] = limit
|
1415
|
+
else:
|
1416
|
+
request['limit'] = 1000
|
1417
|
+
until = self.safe_integer(params, 'until')
|
1418
|
+
params = self.omit(params, ['until'])
|
1419
|
+
if until is not None:
|
1420
|
+
request['endTime'] = until
|
1409
1421
|
response = None
|
1410
1422
|
if market['linear']:
|
1411
1423
|
response = await self.publicLinearGetFutureMarketV1PublicQKline(self.extend(request, params))
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.4.
|
7
|
+
__version__ = '4.4.60'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -1871,6 +1871,7 @@ class Exchange(object):
|
|
1871
1871
|
'createTriggerOrderWs': None,
|
1872
1872
|
'deposit': None,
|
1873
1873
|
'editOrder': 'emulated',
|
1874
|
+
'editOrders': None,
|
1874
1875
|
'editOrderWs': None,
|
1875
1876
|
'fetchAccounts': None,
|
1876
1877
|
'fetchBalance': True,
|
@@ -5178,6 +5179,9 @@ class Exchange(object):
|
|
5178
5179
|
def create_orders(self, orders: List[OrderRequest], params={}):
|
5179
5180
|
raise NotSupported(self.id + ' createOrders() is not supported yet')
|
5180
5181
|
|
5182
|
+
def edit_orders(self, orders: List[OrderRequest], params={}):
|
5183
|
+
raise NotSupported(self.id + ' editOrders() is not supported yet')
|
5184
|
+
|
5181
5185
|
def create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
5182
5186
|
raise NotSupported(self.id + ' createOrderWs() is not supported yet')
|
5183
5187
|
|
@@ -85,6 +85,7 @@ class binance(Exchange, ImplicitAPI):
|
|
85
85
|
'createTrailingPercentOrder': True,
|
86
86
|
'createTriggerOrder': True,
|
87
87
|
'editOrder': True,
|
88
|
+
'editOrders': True,
|
88
89
|
'fetchAccounts': None,
|
89
90
|
'fetchBalance': True,
|
90
91
|
'fetchBidsAsks': True,
|
@@ -5392,6 +5393,85 @@ class binance(Exchange, ImplicitAPI):
|
|
5392
5393
|
else:
|
5393
5394
|
return self.edit_contract_order(id, symbol, type, side, amount, price, params)
|
5394
5395
|
|
5396
|
+
def edit_orders(self, orders: List[OrderRequest], params={}):
|
5397
|
+
"""
|
5398
|
+
edit a list of trade orders
|
5399
|
+
|
5400
|
+
https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Multiple-Orders
|
5401
|
+
https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Modify-Multiple-Orders
|
5402
|
+
|
5403
|
+
: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
|
5404
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
5405
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
5406
|
+
"""
|
5407
|
+
self.load_markets()
|
5408
|
+
ordersRequests = []
|
5409
|
+
orderSymbols = []
|
5410
|
+
for i in range(0, len(orders)):
|
5411
|
+
rawOrder = orders[i]
|
5412
|
+
marketId = self.safe_string(rawOrder, 'symbol')
|
5413
|
+
orderSymbols.append(marketId)
|
5414
|
+
id = self.safe_string(rawOrder, 'id')
|
5415
|
+
type = self.safe_string(rawOrder, 'type')
|
5416
|
+
side = self.safe_string(rawOrder, 'side')
|
5417
|
+
amount = self.safe_value(rawOrder, 'amount')
|
5418
|
+
price = self.safe_value(rawOrder, 'price')
|
5419
|
+
orderParams = self.safe_dict(rawOrder, 'params', {})
|
5420
|
+
isPortfolioMargin = None
|
5421
|
+
isPortfolioMargin, orderParams = self.handle_option_and_params_2(orderParams, 'editOrders', 'papi', 'portfolioMargin', False)
|
5422
|
+
if isPortfolioMargin:
|
5423
|
+
raise NotSupported(self.id + ' editOrders() does not support portfolio margin orders')
|
5424
|
+
orderRequest = self.edit_contract_order_request(id, marketId, type, side, amount, price, orderParams)
|
5425
|
+
ordersRequests.append(orderRequest)
|
5426
|
+
orderSymbols = self.market_symbols(orderSymbols, None, False, True, True)
|
5427
|
+
market = self.market(orderSymbols[0])
|
5428
|
+
if market['spot'] or market['option']:
|
5429
|
+
raise NotSupported(self.id + ' editOrders() does not support ' + market['type'] + ' orders')
|
5430
|
+
response = None
|
5431
|
+
request: dict = {
|
5432
|
+
'batchOrders': ordersRequests,
|
5433
|
+
}
|
5434
|
+
request = self.extend(request, params)
|
5435
|
+
if market['linear']:
|
5436
|
+
response = self.fapiPrivatePutBatchOrders(request)
|
5437
|
+
elif market['inverse']:
|
5438
|
+
response = self.dapiPrivatePutBatchOrders(request)
|
5439
|
+
#
|
5440
|
+
# [
|
5441
|
+
# {
|
5442
|
+
# "code": -4005,
|
5443
|
+
# "msg": "Quantity greater than max quantity."
|
5444
|
+
# },
|
5445
|
+
# {
|
5446
|
+
# "orderId": 650640530,
|
5447
|
+
# "symbol": "LTCUSDT",
|
5448
|
+
# "status": "NEW",
|
5449
|
+
# "clientOrderId": "x-xcKtGhcu32184eb13585491289bbaf",
|
5450
|
+
# "price": "54.00",
|
5451
|
+
# "avgPrice": "0.00",
|
5452
|
+
# "origQty": "0.100",
|
5453
|
+
# "executedQty": "0.000",
|
5454
|
+
# "cumQty": "0.000",
|
5455
|
+
# "cumQuote": "0.00000",
|
5456
|
+
# "timeInForce": "GTC",
|
5457
|
+
# "type": "LIMIT",
|
5458
|
+
# "reduceOnly": False,
|
5459
|
+
# "closePosition": False,
|
5460
|
+
# "side": "BUY",
|
5461
|
+
# "positionSide": "BOTH",
|
5462
|
+
# "stopPrice": "0.00",
|
5463
|
+
# "workingType": "CONTRACT_PRICE",
|
5464
|
+
# "priceProtect": False,
|
5465
|
+
# "origType": "LIMIT",
|
5466
|
+
# "priceMatch": "NONE",
|
5467
|
+
# "selfTradePreventionMode": "NONE",
|
5468
|
+
# "goodTillDate": 0,
|
5469
|
+
# "updateTime": 1698073926929
|
5470
|
+
# }
|
5471
|
+
# ]
|
5472
|
+
#
|
5473
|
+
return self.parse_orders(response)
|
5474
|
+
|
5395
5475
|
def parse_order_status(self, status: Str):
|
5396
5476
|
statuses: dict = {
|
5397
5477
|
'NEW': 'open',
|
@@ -11242,7 +11322,7 @@ class binance(Exchange, ImplicitAPI):
|
|
11242
11322
|
params['newClientOrderId'] = brokerId + self.uuid22()
|
11243
11323
|
query = None
|
11244
11324
|
# handle batchOrders
|
11245
|
-
if (path == 'batchOrders') and (method == 'POST'):
|
11325
|
+
if (path == 'batchOrders') and ((method == 'POST') or (method == 'PUT')):
|
11246
11326
|
batchOrders = self.safe_value(params, 'batchOrders')
|
11247
11327
|
queryBatch = (self.json(batchOrders))
|
11248
11328
|
params['batchOrders'] = queryBatch
|
@@ -8855,7 +8855,8 @@ class bitget(Exchange, ImplicitAPI):
|
|
8855
8855
|
if method == 'POST':
|
8856
8856
|
headers['Content-Type'] = 'application/json'
|
8857
8857
|
sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
|
8858
|
-
if sandboxMode:
|
8858
|
+
if sandboxMode and (path != 'v2/public/time'):
|
8859
|
+
# https://github.com/ccxt/ccxt/issues/25252#issuecomment-2662742336
|
8859
8860
|
if headers is None:
|
8860
8861
|
headers = {}
|
8861
8862
|
headers['PAPTRADING'] = '1'
|
@@ -6524,10 +6524,13 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
6524
6524
|
# }
|
6525
6525
|
#
|
6526
6526
|
timestamp = self.safe_integer(interest, 'timestamp')
|
6527
|
-
|
6527
|
+
openInterest = self.safe_number_2(interest, 'open_interest', 'openInterest')
|
6528
|
+
# the openInterest is in the base asset for linear and quote asset for inverse
|
6529
|
+
amount = openInterest if market['linear'] else None
|
6530
|
+
value = openInterest if market['inverse'] else None
|
6528
6531
|
return self.safe_open_interest({
|
6529
6532
|
'symbol': market['symbol'],
|
6530
|
-
'openInterestAmount':
|
6533
|
+
'openInterestAmount': amount,
|
6531
6534
|
'openInterestValue': value,
|
6532
6535
|
'timestamp': timestamp,
|
6533
6536
|
'datetime': self.iso8601(timestamp),
|
@@ -1882,7 +1882,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1882
1882
|
# "network":"https://api.hollaex.network"
|
1883
1883
|
# }
|
1884
1884
|
#
|
1885
|
-
coins = self.
|
1885
|
+
coins = self.safe_dict(response, 'coins', {})
|
1886
1886
|
return self.parse_deposit_withdraw_fees(coins, codes, 'symbol')
|
1887
1887
|
|
1888
1888
|
def normalize_number_if_needed(self, number):
|
@@ -2884,7 +2884,7 @@ class oxfun(Exchange, ImplicitAPI):
|
|
2884
2884
|
'AccessKey': self.apiKey,
|
2885
2885
|
'Timestamp': datetime,
|
2886
2886
|
'Signature': signature,
|
2887
|
-
'Nonce': nonce,
|
2887
|
+
'Nonce': str(nonce),
|
2888
2888
|
}
|
2889
2889
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
2890
2890
|
|
@@ -4,8 +4,8 @@
|
|
4
4
|
# https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
|
-
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
|
8
|
-
from ccxt.base.types import Any, Balances, Int, Market, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
7
|
+
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
|
8
|
+
from ccxt.base.types import Any, Balances, Int, Market, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
|
@@ -25,7 +25,7 @@ class xt(ccxt.async_support.xt):
|
|
25
25
|
'watchBalance': True,
|
26
26
|
'watchOrders': True,
|
27
27
|
'watchMyTrades': True,
|
28
|
-
'watchPositions':
|
28
|
+
'watchPositions': True,
|
29
29
|
},
|
30
30
|
'urls': {
|
31
31
|
'api': {
|
@@ -45,6 +45,11 @@ class xt(ccxt.async_support.xt):
|
|
45
45
|
'watchTickers': {
|
46
46
|
'method': 'tickers', # agg_tickers(contract only)
|
47
47
|
},
|
48
|
+
'watchPositions': {
|
49
|
+
'type': 'swap',
|
50
|
+
'fetchPositionsSnapshot': True,
|
51
|
+
'awaitPositionsSnapshot': True,
|
52
|
+
},
|
48
53
|
},
|
49
54
|
'streaming': {
|
50
55
|
'keepAlive': 20000,
|
@@ -352,6 +357,106 @@ class xt(ccxt.async_support.xt):
|
|
352
357
|
name = 'balance'
|
353
358
|
return await self.subscribe(name, 'private', 'watchBalance', None, None, params)
|
354
359
|
|
360
|
+
async def watch_positions(self, symbols: Strings = None, since: Int = None, limit: Int = None, params={}) -> List[Position]:
|
361
|
+
"""
|
362
|
+
|
363
|
+
https://doc.xt.com/#futures_user_websocket_v2position
|
364
|
+
|
365
|
+
watch all open positions
|
366
|
+
:param str[]|None symbols: list of unified market symbols
|
367
|
+
:param number [since]: since timestamp
|
368
|
+
:param number [limit]: limit
|
369
|
+
:param dict params: extra parameters specific to the exchange API endpoint
|
370
|
+
:returns dict[]: a list of `position structure <https://docs.ccxt.com/en/latest/manual.html#position-structure>`
|
371
|
+
"""
|
372
|
+
await self.load_markets()
|
373
|
+
url = self.urls['api']['ws']['contract'] + '/' + 'user'
|
374
|
+
client = self.client(url)
|
375
|
+
self.set_positions_cache(client)
|
376
|
+
fetchPositionsSnapshot = self.handle_option('watchPositions', 'fetchPositionsSnapshot', True)
|
377
|
+
awaitPositionsSnapshot = self.handle_option('watchPositions', 'awaitPositionsSnapshot', True)
|
378
|
+
cache = self.positions
|
379
|
+
if fetchPositionsSnapshot and awaitPositionsSnapshot and self.is_empty(cache):
|
380
|
+
snapshot = await client.future('fetchPositionsSnapshot')
|
381
|
+
return self.filter_by_symbols_since_limit(snapshot, symbols, since, limit, True)
|
382
|
+
name = 'position'
|
383
|
+
newPositions = await self.subscribe(name, 'private', 'watchPositions', None, None, params)
|
384
|
+
if self.newUpdates:
|
385
|
+
return newPositions
|
386
|
+
return self.filter_by_symbols_since_limit(cache, symbols, since, limit, True)
|
387
|
+
|
388
|
+
def set_positions_cache(self, client: Client):
|
389
|
+
if self.positions is None:
|
390
|
+
self.positions = ArrayCacheBySymbolBySide()
|
391
|
+
fetchPositionsSnapshot = self.handle_option('watchPositions', 'fetchPositionsSnapshot')
|
392
|
+
if fetchPositionsSnapshot:
|
393
|
+
messageHash = 'fetchPositionsSnapshot'
|
394
|
+
if not (messageHash in client.futures):
|
395
|
+
client.future(messageHash)
|
396
|
+
self.spawn(self.load_positions_snapshot, client, messageHash)
|
397
|
+
|
398
|
+
async def load_positions_snapshot(self, client, messageHash):
|
399
|
+
positions = await self.fetch_positions(None)
|
400
|
+
self.positions = ArrayCacheBySymbolBySide()
|
401
|
+
cache = self.positions
|
402
|
+
for i in range(0, len(positions)):
|
403
|
+
position = positions[i]
|
404
|
+
contracts = self.safe_number(position, 'contracts', 0)
|
405
|
+
if contracts > 0:
|
406
|
+
cache.append(position)
|
407
|
+
# don't remove the future from the .futures cache
|
408
|
+
future = client.futures[messageHash]
|
409
|
+
future.resolve(cache)
|
410
|
+
client.resolve(cache, 'position::contract')
|
411
|
+
|
412
|
+
def handle_position(self, client, message):
|
413
|
+
#
|
414
|
+
# {
|
415
|
+
# topic: 'position',
|
416
|
+
# event: 'position',
|
417
|
+
# data: {
|
418
|
+
# accountId: 245296,
|
419
|
+
# accountType: 0,
|
420
|
+
# symbol: 'eth_usdt',
|
421
|
+
# contractType: 'PERPETUAL',
|
422
|
+
# positionType: 'CROSSED',
|
423
|
+
# positionSide: 'LONG',
|
424
|
+
# positionSize: '1',
|
425
|
+
# closeOrderSize: '0',
|
426
|
+
# availableCloseSize: '1',
|
427
|
+
# realizedProfit: '-0.0121',
|
428
|
+
# entryPrice: '2637.87',
|
429
|
+
# openOrderSize: '1',
|
430
|
+
# isolatedMargin: '2.63787',
|
431
|
+
# openOrderMarginFrozen: '2.78832014',
|
432
|
+
# underlyingType: 'U_BASED',
|
433
|
+
# leverage: 10,
|
434
|
+
# welfareAccount: False,
|
435
|
+
# profitFixedLatest: {},
|
436
|
+
# closeProfit: '0.0000',
|
437
|
+
# totalFee: '-0.0158',
|
438
|
+
# totalFundFee: '0.0037',
|
439
|
+
# markPrice: '2690.96'
|
440
|
+
# }
|
441
|
+
# }
|
442
|
+
#
|
443
|
+
if self.positions is None:
|
444
|
+
self.positions = ArrayCacheBySymbolBySide()
|
445
|
+
cache = self.positions
|
446
|
+
data = self.safe_dict(message, 'data', {})
|
447
|
+
position = self.parse_position(data)
|
448
|
+
cache.append(position)
|
449
|
+
messageHashes = self.find_message_hashes(client, 'position::contract')
|
450
|
+
for i in range(0, len(messageHashes)):
|
451
|
+
messageHash = messageHashes[i]
|
452
|
+
parts = messageHash.split('::')
|
453
|
+
symbolsString = parts[1]
|
454
|
+
symbols = symbolsString.split(',')
|
455
|
+
positions = self.filter_by_array([position], 'symbol', symbols, False)
|
456
|
+
if not self.is_empty(positions):
|
457
|
+
client.resolve(positions, messageHash)
|
458
|
+
client.resolve([position], 'position::contract')
|
459
|
+
|
355
460
|
def handle_ticker(self, client: Client, message: dict):
|
356
461
|
#
|
357
462
|
# spot
|
@@ -1036,6 +1141,7 @@ class xt(ccxt.async_support.xt):
|
|
1036
1141
|
'agg_tickers': self.handle_tickers,
|
1037
1142
|
'balance': self.handle_balance,
|
1038
1143
|
'order': self.handle_order,
|
1144
|
+
'position': self.handle_position,
|
1039
1145
|
}
|
1040
1146
|
method = self.safe_value(methods, topic)
|
1041
1147
|
if topic == 'trade':
|