ccxt 4.1.48__tar.gz → 4.1.49__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.
Potentially problematic release.
This version of ccxt might be problematic. Click here for more details.
- {ccxt-4.1.48/ccxt.egg-info → ccxt-4.1.49}/PKG-INFO +6 -6
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/__init__.py +1 -1
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinex.py +61 -18
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/mexc.py +21 -21
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/base/exchange.py +1 -1
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinex.py +61 -18
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/mexc.py +21 -21
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.1.48 → ccxt-4.1.49/ccxt.egg-info}/PKG-INFO +6 -6
- {ccxt-4.1.48 → ccxt-4.1.49}/package.json +1 -1
- {ccxt-4.1.48 → ccxt-4.1.49}/LICENSE.txt +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/MANIFEST.in +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/README.rst +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitforex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitstamp1.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bittrex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/btctradeua.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinbaseprime.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinfalcon.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/huobipro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/lbank2.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/mexc3.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/okex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/okex5.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/tidex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/ace.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/alpaca.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/ascendex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bingx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitforex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitstamp1.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bittrex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/btctradeua.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/bybit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinbaseprime.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinfalcon.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/gate.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/huobipro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/lbank2.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/mexc3.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/okex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/okex5.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/tidex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/base/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/base/errors.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/base/precise.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/base/types.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bequant.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bigone.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/binance.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/binanceus.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bingx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bit2c.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitbank.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitbay.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitbns.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitfinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitflyer.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitforex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitget.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bithumb.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitmart.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitmex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitopro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitpanda.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitrue.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitso.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitstamp.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitstamp1.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bittrex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bitvavo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bl3p.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/btcalpha.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/btcbox.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/btctradeua.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/btcturk.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/bybit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/cex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinbase.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinbaseprime.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coincheck.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinfalcon.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinlist.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinmate.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinone.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinsph.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/coinspot.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/cryptocom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/currencycom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/delta.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/deribit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/digifinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/exmo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/flowbtc.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/fmfwio.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/gate.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/gateio.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/gemini.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/hitbtc.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/hollaex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/htx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/huobi.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/huobijp.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/huobipro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/idex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/independentreserve.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/indodax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/kraken.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/kucoin.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/kuna.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/latoken.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/lbank.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/lbank2.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/luno.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/lykke.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/mercado.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/mexc3.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/ndax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/novadax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/oceanex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/okcoin.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/okex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/okex5.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/okx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/paymium.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/phemex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/poloniex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/binance.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bittrex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/cex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/coinbaseprime.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/gate.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/htx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/huobipro.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/idex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/luno.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/mexc3.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/okex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/okx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/phemex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/probit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/pro/woo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/probit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/test_async.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/test/test_sync.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/tidex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/timex.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/upbit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/wazirx.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/whitebit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/woo.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/yobit.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/zaif.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt/zonda.py +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/setup.cfg +0 -0
- {ccxt-4.1.48 → ccxt-4.1.49}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.1.
|
3
|
+
Version: 4.1.49
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -63,7 +63,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
63
63
|
| [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [](https://huobiapi.github.io/docs/spot/v1/en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) |
|
64
64
|
| [](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | kucoin | [KuCoin](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | [](https://docs.kucoin.com) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
65
65
|
| [](https://futures.kucoin.com/?rcode=E5wkqe) | kucoinfutures | [KuCoin Futures](https://futures.kucoin.com/?rcode=E5wkqe) | [](https://docs.kucoin.com/futures) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
66
|
-
| [](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | mexc | [MEXC Global](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | [](https://
|
66
|
+
| [](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | mexc | [MEXC Global](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | [](https://mexcdevelop.github.io/apidocs/spot_v3_en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
67
67
|
| [](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023) | okx | [OKX](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023) | [](https://www.okx.com/docs-v5/en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023) |
|
68
68
|
| [](https://wx.network) | wavesexchange | [Waves.Exchange](https://wx.network) | [](https://docs.wx.network) | [](https://github.com/ccxt/ccxt/wiki/Certification) | | |
|
69
69
|
| [](https://x.woo.org/register?ref=YWOWC96B) | woo | [WOO X](https://x.woo.org/register?ref=YWOWC96B) | [](https://docs.woo.org/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://x.woo.org/register?ref=YWOWC96B) |
|
@@ -150,7 +150,7 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
150
150
|
| [](https://www.luno.com/invite/44893A) | luno | [luno](https://www.luno.com/invite/44893A) | [](https://www.luno.com/en/api) | | [](https://ccxt.pro) |
|
151
151
|
| [](https://www.lykke.com) | lykke | [Lykke](https://www.lykke.com) | [](https://hft-apiv2.lykke.com/swagger/ui/index.html) | | |
|
152
152
|
| [](https://www.mercadobitcoin.com.br) | mercado | [Mercado Bitcoin](https://www.mercadobitcoin.com.br) | [](https://www.mercadobitcoin.com.br/api-doc) | | |
|
153
|
-
| [](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | mexc | [MEXC Global](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | [](https://
|
153
|
+
| [](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | mexc | [MEXC Global](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | [](https://mexcdevelop.github.io/apidocs/spot_v3_en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
154
154
|
| [](https://one.ndax.io/bfQiSL) | ndax | [NDAX](https://one.ndax.io/bfQiSL) | [](https://apidoc.ndax.io/) | | [](https://ccxt.pro) |
|
155
155
|
| [](https://www.novadax.com.br/?s=ccxt) | novadax | [NovaDAX](https://www.novadax.com.br/?s=ccxt) | [](https://doc.novadax.com/pt-BR/) | | |
|
156
156
|
| [](https://oceanex.pro/signup?referral=VE24QX) | oceanex | [OceanEx](https://oceanex.pro/signup?referral=VE24QX) | [](https://api.oceanex.pro/doc/v1) | | |
|
@@ -229,13 +229,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
229
229
|
|
230
230
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
231
231
|
|
232
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
233
|
-
* unpkg: https://unpkg.com/ccxt@4.1.
|
232
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.49/dist/ccxt.browser.js
|
233
|
+
* unpkg: https://unpkg.com/ccxt@4.1.49/dist/ccxt.browser.js
|
234
234
|
|
235
235
|
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.
|
236
236
|
|
237
237
|
```HTML
|
238
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
238
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.49/dist/ccxt.browser.js"></script>
|
239
239
|
```
|
240
240
|
|
241
241
|
Creates a global `ccxt` object:
|
@@ -297,6 +297,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
297
297
|
},
|
298
298
|
},
|
299
299
|
'options': {
|
300
|
+
'brokerId': 'x-167673045',
|
300
301
|
'createMarketBuyOrderRequiresPrice': True,
|
301
302
|
'defaultType': 'spot', # spot, swap, margin
|
302
303
|
'defaultSubType': 'linear', # linear, inverse
|
@@ -316,6 +317,26 @@ class coinex(Exchange, ImplicitAPI):
|
|
316
317
|
'ACM': 'Actinium',
|
317
318
|
},
|
318
319
|
'precisionMode': TICK_SIZE,
|
320
|
+
'exceptions': {
|
321
|
+
'exact': {
|
322
|
+
# https://github.com/coinexcom/coinex_exchange_api/wiki/013error_code
|
323
|
+
'23': PermissionDenied, # IP Prohibited
|
324
|
+
'24': AuthenticationError,
|
325
|
+
'25': AuthenticationError,
|
326
|
+
'34': AuthenticationError, # Access id is expires
|
327
|
+
'35': ExchangeNotAvailable, # Service unavailable
|
328
|
+
'36': RequestTimeout, # Service timeout
|
329
|
+
'213': RateLimitExceeded, # Too many requests
|
330
|
+
'107': InsufficientFunds,
|
331
|
+
'600': OrderNotFound,
|
332
|
+
'601': InvalidOrder,
|
333
|
+
'602': InvalidOrder,
|
334
|
+
'606': InvalidOrder,
|
335
|
+
},
|
336
|
+
'broad': {
|
337
|
+
'ip not allow visit': PermissionDenied,
|
338
|
+
},
|
339
|
+
},
|
319
340
|
})
|
320
341
|
|
321
342
|
async def fetch_currencies(self, params={}):
|
@@ -1500,6 +1521,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
1500
1521
|
# "status": "done",
|
1501
1522
|
# "taker_fee_rate": "0.0005",
|
1502
1523
|
# "type": "sell",
|
1524
|
+
# "client_id": "",
|
1503
1525
|
# }
|
1504
1526
|
#
|
1505
1527
|
# Spot and Margin createOrder, cancelOrder, fetchOrder
|
@@ -1527,6 +1549,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
1527
1549
|
# "stock_fee":"0",
|
1528
1550
|
# "taker_fee_rate":"0.002",
|
1529
1551
|
# "type":"buy"
|
1552
|
+
# "client_id": "",
|
1530
1553
|
# }
|
1531
1554
|
#
|
1532
1555
|
# Swap createOrder, cancelOrder, fetchOrder
|
@@ -1734,9 +1757,12 @@ class coinex(Exchange, ImplicitAPI):
|
|
1734
1757
|
type = 'market'
|
1735
1758
|
else:
|
1736
1759
|
type = rawType
|
1760
|
+
clientOrderId = self.safe_string(order, 'client_id')
|
1761
|
+
if clientOrderId == '':
|
1762
|
+
clientOrderId = None
|
1737
1763
|
return self.safe_order({
|
1738
1764
|
'id': self.safe_string_2(order, 'id', 'order_id'),
|
1739
|
-
'clientOrderId':
|
1765
|
+
'clientOrderId': clientOrderId,
|
1740
1766
|
'datetime': self.iso8601(timestamp),
|
1741
1767
|
'timestamp': timestamp,
|
1742
1768
|
'lastTradeTimestamp': self.safe_timestamp(order, 'update_time'),
|
@@ -1791,6 +1817,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
1791
1817
|
await self.load_markets()
|
1792
1818
|
market = self.market(symbol)
|
1793
1819
|
swap = market['swap']
|
1820
|
+
clientOrderId = self.safe_string_2(params, 'client_id', 'clientOrderId')
|
1794
1821
|
stopPrice = self.safe_value_2(params, 'stopPrice', 'triggerPrice')
|
1795
1822
|
stopLossPrice = self.safe_value(params, 'stopLossPrice')
|
1796
1823
|
takeProfitPrice = self.safe_value(params, 'takeProfitPrice')
|
@@ -1809,6 +1836,12 @@ class coinex(Exchange, ImplicitAPI):
|
|
1809
1836
|
request = {
|
1810
1837
|
'market': market['id'],
|
1811
1838
|
}
|
1839
|
+
if clientOrderId is None:
|
1840
|
+
defaultId = 'x-167673045'
|
1841
|
+
brokerId = self.safe_string(self.options, 'brokerId', defaultId)
|
1842
|
+
request['client_id'] = brokerId + '-' + self.uuid16()
|
1843
|
+
else:
|
1844
|
+
request['client_id'] = clientOrderId
|
1812
1845
|
if swap:
|
1813
1846
|
if stopLossPrice or takeProfitPrice:
|
1814
1847
|
request['stop_type'] = self.safe_integer(params, 'stop_type', 1) # 1: triggered by the latest transaction, 2: mark price, 3: index price
|
@@ -4499,6 +4532,29 @@ class coinex(Exchange, ImplicitAPI):
|
|
4499
4532
|
url = self.urls['api'][api] + '/' + self.version + '/' + path
|
4500
4533
|
query = self.omit(params, self.extract_params(path))
|
4501
4534
|
nonce = str(self.nonce())
|
4535
|
+
if method == 'POST':
|
4536
|
+
parts = path.split('/')
|
4537
|
+
firstPart = self.safe_string(parts, 0, '')
|
4538
|
+
numParts = len(parts)
|
4539
|
+
lastPart = self.safe_string(parts, numParts - 1, '')
|
4540
|
+
lastWords = lastPart.split('_')
|
4541
|
+
numWords = len(lastWords)
|
4542
|
+
lastWord = self.safe_string(lastWords, numWords - 1, '')
|
4543
|
+
if (firstPart == 'order') and (lastWord == 'limit' or lastWord == 'market'):
|
4544
|
+
# inject in implicit API calls
|
4545
|
+
# POST /order/limit - Place limit orders
|
4546
|
+
# POST /order/market - Place market orders
|
4547
|
+
# POST /order/stop/limit - Place stop limit orders
|
4548
|
+
# POST /order/stop/market - Place stop market orders
|
4549
|
+
# POST /perpetual/v1/order/put_limit - Place limit orders
|
4550
|
+
# POST /perpetual/v1/order/put_market - Place market orders
|
4551
|
+
# POST /perpetual/v1/order/put_stop_limit - Place stop limit orders
|
4552
|
+
# POST /perpetual/v1/order/put_stop_market - Place stop market orders
|
4553
|
+
clientOrderId = self.safe_string(params, 'client_id')
|
4554
|
+
if clientOrderId is None:
|
4555
|
+
defaultId = 'x-167673045'
|
4556
|
+
brokerId = self.safe_value(self.options, 'brokerId', defaultId)
|
4557
|
+
query['client_id'] = brokerId + '_' + self.uuid16()
|
4502
4558
|
if api == 'perpetualPrivate' or url == 'https://api.coinex.com/perpetual/v1/market/user_deals':
|
4503
4559
|
self.check_required_credentials()
|
4504
4560
|
query = self.extend({
|
@@ -4546,21 +4602,8 @@ class coinex(Exchange, ImplicitAPI):
|
|
4546
4602
|
data = self.safe_value(response, 'data')
|
4547
4603
|
message = self.safe_string(response, 'message')
|
4548
4604
|
if (code != '0') or ((message != 'Success') and (message != 'Succeeded') and (message != 'Ok') and not data):
|
4549
|
-
|
4550
|
-
|
4551
|
-
|
4552
|
-
|
4553
|
-
'25': AuthenticationError,
|
4554
|
-
'34': AuthenticationError, # Access id is expires
|
4555
|
-
'35': ExchangeNotAvailable, # Service unavailable
|
4556
|
-
'36': RequestTimeout, # Service timeout
|
4557
|
-
'213': RateLimitExceeded, # Too many requests
|
4558
|
-
'107': InsufficientFunds,
|
4559
|
-
'600': OrderNotFound,
|
4560
|
-
'601': InvalidOrder,
|
4561
|
-
'602': InvalidOrder,
|
4562
|
-
'606': InvalidOrder,
|
4563
|
-
}
|
4564
|
-
ErrorClass = self.safe_value(responseCodes, code, ExchangeError)
|
4565
|
-
raise ErrorClass(response['message'])
|
4605
|
+
feedback = self.id + ' ' + message
|
4606
|
+
self.throw_broadly_matched_exception(self.exceptions['broad'], message, feedback)
|
4607
|
+
self.throw_exactly_matched_exception(self.exceptions['exact'], code, feedback)
|
4608
|
+
raise ExchangeError(feedback)
|
4566
4609
|
return None
|
@@ -145,8 +145,8 @@ class mexc(Exchange, ImplicitAPI):
|
|
145
145
|
},
|
146
146
|
'www': 'https://www.mexc.com/',
|
147
147
|
'doc': [
|
148
|
-
'https://
|
149
|
-
'https://
|
148
|
+
'https://mexcdevelop.github.io/apidocs/spot_v3_en/',
|
149
|
+
'https://mexcdevelop.github.io/APIDoc/', # v1 & v2 : soon to be deprecated
|
150
150
|
],
|
151
151
|
'fees': [
|
152
152
|
'https://www.mexc.com/fee',
|
@@ -888,7 +888,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
888
888
|
async def fetch_currencies(self, params={}):
|
889
889
|
"""
|
890
890
|
fetches all available currencies on an exchange
|
891
|
-
:see: https://
|
891
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
|
892
892
|
:param dict [params]: extra parameters specific to the mexc3 api endpoint
|
893
893
|
:returns dict: an associative dictionary of currencies
|
894
894
|
"""
|
@@ -1271,8 +1271,8 @@ class mexc(Exchange, ImplicitAPI):
|
|
1271
1271
|
|
1272
1272
|
async def fetch_order_book(self, symbol: str, limit: Optional[int] = None, params={}) -> OrderBook:
|
1273
1273
|
"""
|
1274
|
-
:see: https://
|
1275
|
-
:see: https://
|
1274
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#order-book
|
1275
|
+
:see: https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-the-contract-s-depth-information
|
1276
1276
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
1277
1277
|
:param str symbol: unified symbol of the market to fetch the order book for
|
1278
1278
|
:param int [limit]: the maximum amount of order book entries to return
|
@@ -3332,9 +3332,9 @@ class mexc(Exchange, ImplicitAPI):
|
|
3332
3332
|
async def fetch_balance(self, params={}) -> Balances:
|
3333
3333
|
"""
|
3334
3334
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
3335
|
-
:see: https://
|
3336
|
-
:see: https://
|
3337
|
-
:see: https://
|
3335
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#account-information
|
3336
|
+
:see: https://mexcdevelop.github.io/apidocs/contract_v1_en/#get-all-informations-of-user-39-s-asset
|
3337
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#isolated-account
|
3338
3338
|
:param dict [params]: extra parameters specific to the mexc3 api endpoint
|
3339
3339
|
:param str [params.symbols]: # required for margin, market id's separated by commas
|
3340
3340
|
:returns dict: a `balance structure <https://github.com/ccxt/ccxt/wiki/Manual#balance-structure>`
|
@@ -3985,7 +3985,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
3985
3985
|
async def fetch_deposit_addresses_by_network(self, code: str, params={}):
|
3986
3986
|
"""
|
3987
3987
|
fetch a dictionary of addresses for a currency, indexed by network
|
3988
|
-
:see: https://
|
3988
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#deposit-address-supporting-network
|
3989
3989
|
:param str code: unified currency code of the currency for the deposit address
|
3990
3990
|
:param dict [params]: extra parameters specific to the mexc3 api endpoint
|
3991
3991
|
:returns dict: a dictionary of `address structures <https://github.com/ccxt/ccxt/wiki/Manual#address-structure>` indexed by the network
|
@@ -4020,7 +4020,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4020
4020
|
|
4021
4021
|
async def create_deposit_address(self, code: str, params={}):
|
4022
4022
|
"""
|
4023
|
-
:see: https://
|
4023
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#generate-deposit-address-supporting-network
|
4024
4024
|
create a currency deposit address
|
4025
4025
|
:param str code: unified currency code of the currency for the deposit address
|
4026
4026
|
:param dict [params]: extra parameters specific to the mexc3 api endpoint
|
@@ -4057,7 +4057,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4057
4057
|
async def fetch_deposit_address(self, code: str, params={}):
|
4058
4058
|
"""
|
4059
4059
|
fetch the deposit address for a currency associated with self account
|
4060
|
-
:see: https://
|
4060
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#deposit-address-supporting-network
|
4061
4061
|
:param str code: unified currency code
|
4062
4062
|
:param dict [params]: extra parameters specific to the mexc3 api endpoint
|
4063
4063
|
:returns dict: an `address structure <https://github.com/ccxt/ccxt/wiki/Manual#address-structure>`
|
@@ -4079,7 +4079,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4079
4079
|
async def fetch_deposits(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}) -> List[Transaction]:
|
4080
4080
|
"""
|
4081
4081
|
fetch all deposits made to an account
|
4082
|
-
:see: https://
|
4082
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#deposit-history-supporting-network
|
4083
4083
|
:param str code: unified currency code
|
4084
4084
|
:param int [since]: the earliest time in ms to fetch deposits for
|
4085
4085
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
@@ -4132,7 +4132,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4132
4132
|
async def fetch_withdrawals(self, code: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}) -> List[Transaction]:
|
4133
4133
|
"""
|
4134
4134
|
fetch all withdrawals made from an account
|
4135
|
-
:see: https://
|
4135
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#withdraw-history-supporting-network
|
4136
4136
|
:param str code: unified currency code
|
4137
4137
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
4138
4138
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
@@ -4526,7 +4526,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4526
4526
|
async def transfer(self, code: str, amount, fromAccount, toAccount, params={}):
|
4527
4527
|
"""
|
4528
4528
|
transfer currency internally between wallets on the same account
|
4529
|
-
:see: https://
|
4529
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#user-universal-transfer
|
4530
4530
|
:param str code: unified currency code
|
4531
4531
|
:param float amount: amount to transfer
|
4532
4532
|
:param str fromAccount: account to transfer from
|
@@ -4651,7 +4651,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4651
4651
|
async def withdraw(self, code: str, amount, address, tag=None, params={}):
|
4652
4652
|
"""
|
4653
4653
|
make a withdrawal
|
4654
|
-
:see: https://
|
4654
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#withdraw
|
4655
4655
|
:param str code: unified currency code
|
4656
4656
|
:param float amount: the amount to withdraw
|
4657
4657
|
:param str address: the address to withdraw to
|
@@ -4661,7 +4661,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4661
4661
|
"""
|
4662
4662
|
tag, params = self.handle_withdraw_tag_and_params(tag, params)
|
4663
4663
|
networks = self.safe_value(self.options, 'networks', {})
|
4664
|
-
network = self.
|
4664
|
+
network = self.safe_string_2(params, 'network', 'chain') # self line allows the user to specify either ERC20 or ETH
|
4665
4665
|
network = self.safe_string(networks, network, network) # handle ETH > ERC-20 alias
|
4666
4666
|
self.check_address(address)
|
4667
4667
|
await self.load_markets()
|
@@ -4675,7 +4675,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4675
4675
|
request['memo'] = tag
|
4676
4676
|
if network is not None:
|
4677
4677
|
request['network'] = network
|
4678
|
-
params = self.omit(params, 'network')
|
4678
|
+
params = self.omit(params, ['network', 'chain'])
|
4679
4679
|
response = await self.spotPrivatePostCapitalWithdrawApply(self.extend(request, params))
|
4680
4680
|
#
|
4681
4681
|
# {
|
@@ -4715,7 +4715,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4715
4715
|
async def borrow_margin(self, code: str, amount, symbol: Optional[str] = None, params={}):
|
4716
4716
|
"""
|
4717
4717
|
create a loan to borrow margin
|
4718
|
-
:see: https://
|
4718
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#loan
|
4719
4719
|
:param str code: unified currency code of the currency to borrow
|
4720
4720
|
:param float amount: the amount to borrow
|
4721
4721
|
:param str symbol: unified market symbol
|
@@ -4746,7 +4746,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4746
4746
|
async def repay_margin(self, code: str, amount, symbol: Optional[str] = None, params={}):
|
4747
4747
|
"""
|
4748
4748
|
repay borrowed margin and interest
|
4749
|
-
:see: https://
|
4749
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#repayment
|
4750
4750
|
:param str code: unified currency code of the currency to repay
|
4751
4751
|
:param float amount: the amount to repay
|
4752
4752
|
:param str symbol: unified market symbol
|
@@ -4782,7 +4782,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4782
4782
|
async def fetch_transaction_fees(self, codes=None, params={}):
|
4783
4783
|
"""
|
4784
4784
|
fetch deposit and withdrawal fees
|
4785
|
-
:see: https://
|
4785
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
|
4786
4786
|
:param str[]|None codes: returns fees for all currencies if None
|
4787
4787
|
:param dict [params]: extra parameters specific to the mexc3 api endpoint
|
4788
4788
|
:returns dict[]: a list of `fee structures <https://github.com/ccxt/ccxt/wiki/Manual#fee-structure>`
|
@@ -4875,7 +4875,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4875
4875
|
async def fetch_deposit_withdraw_fees(self, codes: Optional[List[str]] = None, params={}):
|
4876
4876
|
"""
|
4877
4877
|
fetch deposit and withdrawal fees
|
4878
|
-
:see: https://
|
4878
|
+
:see: https://mexcdevelop.github.io/apidocs/spot_v3_en/#query-the-currency-information
|
4879
4879
|
:param str[]|None codes: returns fees for all currencies if None
|
4880
4880
|
:param dict [params]: extra parameters specific to the mexc3 api endpoint
|
4881
4881
|
:returns dict[]: a list of `fee structures <https://github.com/ccxt/ccxt/wiki/Manual#fee-structure>`
|
@@ -296,6 +296,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
296
296
|
},
|
297
297
|
},
|
298
298
|
'options': {
|
299
|
+
'brokerId': 'x-167673045',
|
299
300
|
'createMarketBuyOrderRequiresPrice': True,
|
300
301
|
'defaultType': 'spot', # spot, swap, margin
|
301
302
|
'defaultSubType': 'linear', # linear, inverse
|
@@ -315,6 +316,26 @@ class coinex(Exchange, ImplicitAPI):
|
|
315
316
|
'ACM': 'Actinium',
|
316
317
|
},
|
317
318
|
'precisionMode': TICK_SIZE,
|
319
|
+
'exceptions': {
|
320
|
+
'exact': {
|
321
|
+
# https://github.com/coinexcom/coinex_exchange_api/wiki/013error_code
|
322
|
+
'23': PermissionDenied, # IP Prohibited
|
323
|
+
'24': AuthenticationError,
|
324
|
+
'25': AuthenticationError,
|
325
|
+
'34': AuthenticationError, # Access id is expires
|
326
|
+
'35': ExchangeNotAvailable, # Service unavailable
|
327
|
+
'36': RequestTimeout, # Service timeout
|
328
|
+
'213': RateLimitExceeded, # Too many requests
|
329
|
+
'107': InsufficientFunds,
|
330
|
+
'600': OrderNotFound,
|
331
|
+
'601': InvalidOrder,
|
332
|
+
'602': InvalidOrder,
|
333
|
+
'606': InvalidOrder,
|
334
|
+
},
|
335
|
+
'broad': {
|
336
|
+
'ip not allow visit': PermissionDenied,
|
337
|
+
},
|
338
|
+
},
|
318
339
|
})
|
319
340
|
|
320
341
|
def fetch_currencies(self, params={}):
|
@@ -1499,6 +1520,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
1499
1520
|
# "status": "done",
|
1500
1521
|
# "taker_fee_rate": "0.0005",
|
1501
1522
|
# "type": "sell",
|
1523
|
+
# "client_id": "",
|
1502
1524
|
# }
|
1503
1525
|
#
|
1504
1526
|
# Spot and Margin createOrder, cancelOrder, fetchOrder
|
@@ -1526,6 +1548,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
1526
1548
|
# "stock_fee":"0",
|
1527
1549
|
# "taker_fee_rate":"0.002",
|
1528
1550
|
# "type":"buy"
|
1551
|
+
# "client_id": "",
|
1529
1552
|
# }
|
1530
1553
|
#
|
1531
1554
|
# Swap createOrder, cancelOrder, fetchOrder
|
@@ -1733,9 +1756,12 @@ class coinex(Exchange, ImplicitAPI):
|
|
1733
1756
|
type = 'market'
|
1734
1757
|
else:
|
1735
1758
|
type = rawType
|
1759
|
+
clientOrderId = self.safe_string(order, 'client_id')
|
1760
|
+
if clientOrderId == '':
|
1761
|
+
clientOrderId = None
|
1736
1762
|
return self.safe_order({
|
1737
1763
|
'id': self.safe_string_2(order, 'id', 'order_id'),
|
1738
|
-
'clientOrderId':
|
1764
|
+
'clientOrderId': clientOrderId,
|
1739
1765
|
'datetime': self.iso8601(timestamp),
|
1740
1766
|
'timestamp': timestamp,
|
1741
1767
|
'lastTradeTimestamp': self.safe_timestamp(order, 'update_time'),
|
@@ -1790,6 +1816,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
1790
1816
|
self.load_markets()
|
1791
1817
|
market = self.market(symbol)
|
1792
1818
|
swap = market['swap']
|
1819
|
+
clientOrderId = self.safe_string_2(params, 'client_id', 'clientOrderId')
|
1793
1820
|
stopPrice = self.safe_value_2(params, 'stopPrice', 'triggerPrice')
|
1794
1821
|
stopLossPrice = self.safe_value(params, 'stopLossPrice')
|
1795
1822
|
takeProfitPrice = self.safe_value(params, 'takeProfitPrice')
|
@@ -1808,6 +1835,12 @@ class coinex(Exchange, ImplicitAPI):
|
|
1808
1835
|
request = {
|
1809
1836
|
'market': market['id'],
|
1810
1837
|
}
|
1838
|
+
if clientOrderId is None:
|
1839
|
+
defaultId = 'x-167673045'
|
1840
|
+
brokerId = self.safe_string(self.options, 'brokerId', defaultId)
|
1841
|
+
request['client_id'] = brokerId + '-' + self.uuid16()
|
1842
|
+
else:
|
1843
|
+
request['client_id'] = clientOrderId
|
1811
1844
|
if swap:
|
1812
1845
|
if stopLossPrice or takeProfitPrice:
|
1813
1846
|
request['stop_type'] = self.safe_integer(params, 'stop_type', 1) # 1: triggered by the latest transaction, 2: mark price, 3: index price
|
@@ -4498,6 +4531,29 @@ class coinex(Exchange, ImplicitAPI):
|
|
4498
4531
|
url = self.urls['api'][api] + '/' + self.version + '/' + path
|
4499
4532
|
query = self.omit(params, self.extract_params(path))
|
4500
4533
|
nonce = str(self.nonce())
|
4534
|
+
if method == 'POST':
|
4535
|
+
parts = path.split('/')
|
4536
|
+
firstPart = self.safe_string(parts, 0, '')
|
4537
|
+
numParts = len(parts)
|
4538
|
+
lastPart = self.safe_string(parts, numParts - 1, '')
|
4539
|
+
lastWords = lastPart.split('_')
|
4540
|
+
numWords = len(lastWords)
|
4541
|
+
lastWord = self.safe_string(lastWords, numWords - 1, '')
|
4542
|
+
if (firstPart == 'order') and (lastWord == 'limit' or lastWord == 'market'):
|
4543
|
+
# inject in implicit API calls
|
4544
|
+
# POST /order/limit - Place limit orders
|
4545
|
+
# POST /order/market - Place market orders
|
4546
|
+
# POST /order/stop/limit - Place stop limit orders
|
4547
|
+
# POST /order/stop/market - Place stop market orders
|
4548
|
+
# POST /perpetual/v1/order/put_limit - Place limit orders
|
4549
|
+
# POST /perpetual/v1/order/put_market - Place market orders
|
4550
|
+
# POST /perpetual/v1/order/put_stop_limit - Place stop limit orders
|
4551
|
+
# POST /perpetual/v1/order/put_stop_market - Place stop market orders
|
4552
|
+
clientOrderId = self.safe_string(params, 'client_id')
|
4553
|
+
if clientOrderId is None:
|
4554
|
+
defaultId = 'x-167673045'
|
4555
|
+
brokerId = self.safe_value(self.options, 'brokerId', defaultId)
|
4556
|
+
query['client_id'] = brokerId + '_' + self.uuid16()
|
4501
4557
|
if api == 'perpetualPrivate' or url == 'https://api.coinex.com/perpetual/v1/market/user_deals':
|
4502
4558
|
self.check_required_credentials()
|
4503
4559
|
query = self.extend({
|
@@ -4545,21 +4601,8 @@ class coinex(Exchange, ImplicitAPI):
|
|
4545
4601
|
data = self.safe_value(response, 'data')
|
4546
4602
|
message = self.safe_string(response, 'message')
|
4547
4603
|
if (code != '0') or ((message != 'Success') and (message != 'Succeeded') and (message != 'Ok') and not data):
|
4548
|
-
|
4549
|
-
|
4550
|
-
|
4551
|
-
|
4552
|
-
'25': AuthenticationError,
|
4553
|
-
'34': AuthenticationError, # Access id is expires
|
4554
|
-
'35': ExchangeNotAvailable, # Service unavailable
|
4555
|
-
'36': RequestTimeout, # Service timeout
|
4556
|
-
'213': RateLimitExceeded, # Too many requests
|
4557
|
-
'107': InsufficientFunds,
|
4558
|
-
'600': OrderNotFound,
|
4559
|
-
'601': InvalidOrder,
|
4560
|
-
'602': InvalidOrder,
|
4561
|
-
'606': InvalidOrder,
|
4562
|
-
}
|
4563
|
-
ErrorClass = self.safe_value(responseCodes, code, ExchangeError)
|
4564
|
-
raise ErrorClass(response['message'])
|
4604
|
+
feedback = self.id + ' ' + message
|
4605
|
+
self.throw_broadly_matched_exception(self.exceptions['broad'], message, feedback)
|
4606
|
+
self.throw_exactly_matched_exception(self.exceptions['exact'], code, feedback)
|
4607
|
+
raise ExchangeError(feedback)
|
4565
4608
|
return None
|