ccxt 3.0.97__tar.gz → 3.0.98__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-3.0.97/ccxt.egg-info → ccxt-3.0.98}/PKG-INFO +4 -4
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/__init__.py +1 -1
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/__init__.py +1 -1
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/exchange.py +1 -1
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinex.py +10 -1
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/huobi.py +116 -66
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/phemex.py +2 -2
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/base/exchange.py +1 -1
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinex.py +10 -1
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/huobi.py +116 -66
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/phemex.py +2 -2
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/__init__.py +1 -1
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitfinex2.py +8 -4
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/test_async.py +3 -5
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/test_sync.py +3 -5
- {ccxt-3.0.97 → ccxt-3.0.98/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-3.0.97 → ccxt-3.0.98}/package.json +1 -1
- {ccxt-3.0.97 → ccxt-3.0.98}/LICENSE.txt +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/MANIFEST.in +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/README.rst +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/ace.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bequant.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bigone.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/binance.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitforex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitget.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitso.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitstamp1.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bittrex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bkex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/btcex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/btctradeua.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/bybit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/cex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinbaseprime.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinfalcon.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinone.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/delta.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/deribit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/exmo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/gate.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/gateio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/gemini.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/huobi.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/huobipro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/idex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/indodax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/kraken.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/kuna.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/latoken.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/lbank.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/lbank2.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/luno.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/lykke.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/mercado.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/mexc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/mexc3.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/ndax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/novadax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/okex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/okex5.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/okx.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/paymium.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/phemex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/probit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/stex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/tidex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/timex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/upbit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/woo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/xt.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/yobit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/zaif.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/abstract/zonda.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/ace.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/alpaca.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/ascendex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/ace.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bequant.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bigone.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/binance.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitforex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitget.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitso.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitstamp1.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bittrex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bkex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/btcex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/btctradeua.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/buda.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/bybit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/cex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinbase.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinbaseprime.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinfalcon.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinone.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/delta.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/deribit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/exmo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/gate.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/gateio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/gemini.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/huobipro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/idex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/indodax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/itbit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/kraken.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/kuna.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/latoken.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/lbank.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/lbank2.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/luno.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/lykke.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/mercado.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/mexc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/mexc3.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/ndax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/novadax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/okex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/okex5.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/okx.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/paymium.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/probit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/ripio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/stex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/tidex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/timex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/upbit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/woo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/xt.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/yobit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/zaif.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/zb.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/async_support/zonda.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/base/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/base/errors.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/base/precise.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/base/types.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bequant.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bigone.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/binance.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/binancecoinm.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/binanceus.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/binanceusdm.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bit2c.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitbank.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitbay.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitbns.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitcoincom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitfinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitfinex2.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitflyer.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitforex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitget.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bithumb.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitmart.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitmex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitopro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitpanda.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitrue.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitso.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitstamp.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitstamp1.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bittrex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bitvavo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bkex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bl3p.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/blockchaincom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/btcalpha.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/btcbox.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/btcex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/btcmarkets.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/btctradeua.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/btcturk.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/buda.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/bybit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/cex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinbase.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinbaseprime.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinbasepro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coincheck.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinfalcon.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinmate.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinone.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinsph.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/coinspot.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/cryptocom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/currencycom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/delta.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/deribit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/digifinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/exmo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/flowbtc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/fmfwio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/gate.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/gateio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/gemini.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/hitbtc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/hitbtc3.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/hollaex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/huobijp.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/huobipro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/idex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/independentreserve.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/indodax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/itbit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/kraken.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/krakenfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/kucoin.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/kucoinfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/kuna.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/latoken.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/lbank.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/lbank2.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/luno.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/lykke.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/mercado.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/mexc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/mexc3.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/ndax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/novadax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/oceanex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/okcoin.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/okex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/okex5.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/okx.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/paymium.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/poloniex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/poloniexfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/alpaca.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/ascendex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bequant.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/binance.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/binanceus.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitget.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitmart.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitmex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitopro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitrue.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bittrex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/btcex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/bybit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/cex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/coinbaseprime.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/coinex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/currencycom.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/deribit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/exmo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/gate.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/gateio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/gemini.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/hollaex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/huobi.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/huobijp.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/huobipro.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/idex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/kraken.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/kucoin.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/luno.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/mexc.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/mexc3.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/ndax.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/okcoin.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/okex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/okx.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/phemex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/probit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/ripio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/upbit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/wazirx.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/whitebit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/woo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/pro/zb.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/probit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/ripio.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/stex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/__init__.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_account.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_market.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_number.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_order.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_position.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_status.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/tidex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/timex.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/tokocrypto.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/upbit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/wavesexchange.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/wazirx.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/whitebit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/woo.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/xt.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/yobit.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/zaif.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/zb.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt/zonda.py +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/setup.cfg +0 -0
- {ccxt-3.0.97 → ccxt-3.0.98}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 3.0.
|
3
|
+
Version: 3.0.98
|
4
4
|
Summary: A JavaScript / Python / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -231,13 +231,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
231
231
|
|
232
232
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
233
233
|
|
234
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@3.0.
|
235
|
-
* unpkg: https://unpkg.com/ccxt@3.0.
|
234
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@3.0.98/dist/ccxt.browser.js
|
235
|
+
* unpkg: https://unpkg.com/ccxt@3.0.98/dist/ccxt.browser.js
|
236
236
|
|
237
237
|
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.
|
238
238
|
|
239
239
|
```HTML
|
240
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@3.0.
|
240
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@3.0.98/dist/ccxt.browser.js"></script>
|
241
241
|
```
|
242
242
|
|
243
243
|
Creates a global `ccxt` object:
|
@@ -1679,6 +1679,12 @@ class coinex(Exchange, ImplicitAPI):
|
|
1679
1679
|
async def create_order(self, symbol: str, type, side: OrderSide, amount, price=None, params={}):
|
1680
1680
|
"""
|
1681
1681
|
create a trade order
|
1682
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http017_put_limit
|
1683
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http018_put_market
|
1684
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http019_put_limit_stop
|
1685
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http020_put_market_stop
|
1686
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http031_market_close
|
1687
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http030_limit_close
|
1682
1688
|
:param str symbol: unified symbol of the market to create an order in
|
1683
1689
|
:param str type: 'market' or 'limit'
|
1684
1690
|
:param str side: 'buy' or 'sell'
|
@@ -1692,6 +1698,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
1692
1698
|
:param str params['timeInForce']: "GTC", "IOC", "FOK", "PO"
|
1693
1699
|
:param bool params.postOnly:
|
1694
1700
|
:param bool params.reduceOnly:
|
1701
|
+
:param bool|None params['position_id']: *required for reduce only orders* the position id to reduce
|
1695
1702
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1696
1703
|
"""
|
1697
1704
|
await self.load_markets()
|
@@ -1706,9 +1713,11 @@ class coinex(Exchange, ImplicitAPI):
|
|
1706
1713
|
positionId = self.safe_integer_2(params, 'position_id', 'positionId') # Required for closing swap positions
|
1707
1714
|
timeInForceRaw = self.safe_string(params, 'timeInForce') # Spot: IOC, FOK, PO, GTC, ... NORMAL(default), MAKER_ONLY
|
1708
1715
|
reduceOnly = self.safe_value(params, 'reduceOnly')
|
1709
|
-
if reduceOnly
|
1716
|
+
if reduceOnly:
|
1710
1717
|
if market['type'] != 'swap':
|
1711
1718
|
raise InvalidOrder(self.id + ' createOrder() does not support reduceOnly for ' + market['type'] + ' orders, reduceOnly orders are supported for swap markets only')
|
1719
|
+
if positionId is None:
|
1720
|
+
raise ArgumentsRequired(self.id + ' createOrder() requires a position_id/positionId parameter for reduceOnly orders')
|
1712
1721
|
method = None
|
1713
1722
|
request = {
|
1714
1723
|
'market': market['id'],
|
@@ -2309,8 +2309,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
2309
2309
|
# request['end-time'] = self.sum(since, 172800000) # 48 hours window
|
2310
2310
|
method = 'spotPrivateGetV1OrderMatchresults'
|
2311
2311
|
else:
|
2312
|
-
|
2313
|
-
raise ArgumentsRequired(self.id + ' fetchMyTrades() requires a symbol for ' + marketType + ' orders')
|
2312
|
+
self.check_required_symbol('fetchMyTrades', symbol)
|
2314
2313
|
request['contract'] = market['id']
|
2315
2314
|
request['trade_type'] = 0 # 0 all, 1 open long, 2 open short, 3 close short, 4 close long, 5 liquidate long positions, 6 liquidate short positions
|
2316
2315
|
if since is not None:
|
@@ -3095,8 +3094,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
3095
3094
|
else:
|
3096
3095
|
request['order-id'] = id
|
3097
3096
|
else:
|
3098
|
-
|
3099
|
-
raise ArgumentsRequired(self.id + ' fetchOrder() requires a symbol for ' + marketType + ' orders')
|
3097
|
+
self.check_required_symbol('fetchOrder', symbol)
|
3100
3098
|
request['contract_code'] = market['id']
|
3101
3099
|
if market['linear']:
|
3102
3100
|
marginMode = None
|
@@ -3266,8 +3264,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
3266
3264
|
async def fetch_spot_orders_by_states(self, states, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
3267
3265
|
method = self.safe_string(self.options, 'fetchOrdersByStatesMethod', 'spot_private_get_v1_order_orders') # spot_private_get_v1_order_history
|
3268
3266
|
if method == 'spot_private_get_v1_order_orders':
|
3269
|
-
|
3270
|
-
raise ArgumentsRequired(self.id + ' fetchOrders() requires a symbol argument')
|
3267
|
+
self.check_required_symbol('fetchOrders', symbol)
|
3271
3268
|
await self.load_markets()
|
3272
3269
|
market = None
|
3273
3270
|
request = {
|
@@ -3332,8 +3329,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
3332
3329
|
return await self.fetch_spot_orders_by_states('filled,partial-canceled,canceled', symbol, since, limit, params)
|
3333
3330
|
|
3334
3331
|
async def fetch_contract_orders(self, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
3335
|
-
|
3336
|
-
raise ArgumentsRequired(self.id + ' fetchContractOrders() requires a symbol argument')
|
3332
|
+
self.check_required_symbol('fetchContractOrders', symbol)
|
3337
3333
|
await self.load_markets()
|
3338
3334
|
market = self.market(symbol)
|
3339
3335
|
request = {
|
@@ -3640,8 +3636,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
3640
3636
|
params = self.omit(params, 'account-id')
|
3641
3637
|
response = await self.spotPrivateGetV1OrderOpenOrders(self.extend(request, params))
|
3642
3638
|
else:
|
3643
|
-
|
3644
|
-
raise ArgumentsRequired(self.id + ' fetchOpenOrders() requires a symbol for ' + marketType + ' orders')
|
3639
|
+
self.check_required_symbol('fetchOpenOrders', symbol)
|
3645
3640
|
if limit is not None:
|
3646
3641
|
request['page_size'] = limit
|
3647
3642
|
request['contract_code'] = market['id']
|
@@ -4518,8 +4513,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
4518
4513
|
params = self.omit(params, ['client-order-id', 'clientOrderId'])
|
4519
4514
|
response = await self.spotPrivatePostV1OrderOrdersSubmitCancelClientOrder(self.extend(request, params))
|
4520
4515
|
else:
|
4521
|
-
|
4522
|
-
raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol for ' + marketType + ' orders')
|
4516
|
+
self.check_required_symbol('cancelOrder', symbol)
|
4523
4517
|
clientOrderId = self.safe_string_2(params, 'client_order_id', 'clientOrderId')
|
4524
4518
|
if clientOrderId is None:
|
4525
4519
|
request['order_id'] = id
|
@@ -4598,6 +4592,8 @@ class huobi(Exchange, ImplicitAPI):
|
|
4598
4592
|
:param [str] ids: order ids
|
4599
4593
|
:param str|None symbol: unified market symbol, default is None
|
4600
4594
|
:param dict params: extra parameters specific to the huobi api endpoint
|
4595
|
+
:param bool|None params['stop']: *contract only* if the orders are stop trigger orders or not
|
4596
|
+
:param bool|None params['stopLossTakeProfit']: *contract only* if the orders are stop-loss or take-profit orders
|
4601
4597
|
:returns dict: an list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
4602
4598
|
"""
|
4603
4599
|
await self.load_markets()
|
@@ -4608,7 +4604,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
4608
4604
|
marketType, params = self.handle_market_type_and_params('cancelOrders', market, params)
|
4609
4605
|
request = {
|
4610
4606
|
# spot -----------------------------------------------------------
|
4611
|
-
# 'order-ids':
|
4607
|
+
# 'order-ids': ','.join(ids), # max 50
|
4612
4608
|
# 'client-order-ids': ','.join(ids), # max 50
|
4613
4609
|
# contracts ------------------------------------------------------
|
4614
4610
|
# 'order_id': id, # comma separated, max 10
|
@@ -4616,43 +4612,24 @@ class huobi(Exchange, ImplicitAPI):
|
|
4616
4612
|
# 'contract_code': market['id'],
|
4617
4613
|
# 'symbol': market['settleId'],
|
4618
4614
|
}
|
4619
|
-
|
4615
|
+
response = None
|
4620
4616
|
if marketType == 'spot':
|
4621
4617
|
clientOrderIds = self.safe_value_2(params, 'client-order-id', 'clientOrderId')
|
4622
4618
|
clientOrderIds = self.safe_value_2(params, 'client-order-ids', 'clientOrderIds', clientOrderIds)
|
4623
4619
|
if clientOrderIds is None:
|
4624
4620
|
if isinstance(clientOrderIds, str):
|
4625
|
-
request['order-ids'] = ids
|
4621
|
+
request['order-ids'] = [ids]
|
4626
4622
|
else:
|
4627
|
-
request['order-ids'] =
|
4623
|
+
request['order-ids'] = ids
|
4628
4624
|
else:
|
4629
4625
|
if isinstance(clientOrderIds, str):
|
4630
|
-
request['client-order-ids'] = clientOrderIds
|
4626
|
+
request['client-order-ids'] = [clientOrderIds]
|
4631
4627
|
else:
|
4632
|
-
request['client-order-ids'] =
|
4628
|
+
request['client-order-ids'] = clientOrderIds
|
4633
4629
|
params = self.omit(params, ['client-order-id', 'client-order-ids', 'clientOrderId', 'clientOrderIds'])
|
4634
|
-
|
4630
|
+
response = await self.spotPrivatePostV1OrderOrdersBatchcancel(self.extend(request, params))
|
4635
4631
|
else:
|
4636
|
-
|
4637
|
-
raise ArgumentsRequired(self.id + ' cancelOrders() requires a symbol for ' + marketType + ' orders')
|
4638
|
-
marketInner = self.market(symbol)
|
4639
|
-
request['contract_code'] = marketInner['id']
|
4640
|
-
if marketInner['linear']:
|
4641
|
-
marginMode = None
|
4642
|
-
marginMode, params = self.handle_margin_mode_and_params('cancelOrders', params)
|
4643
|
-
marginMode = 'cross' if (marginMode is None) else marginMode
|
4644
|
-
if marginMode == 'isolated':
|
4645
|
-
method = 'contractPrivatePostLinearSwapApiV1SwapCancel'
|
4646
|
-
elif marginMode == 'cross':
|
4647
|
-
method = 'contractPrivatePostLinearSwapApiV1SwapCrossCancel'
|
4648
|
-
elif marketInner['inverse']:
|
4649
|
-
if marketInner['future']:
|
4650
|
-
method = 'contractPrivatePostApiV1ContractCancel'
|
4651
|
-
request['symbol'] = marketInner['settleId']
|
4652
|
-
elif marketInner['swap']:
|
4653
|
-
method = 'contractPrivatePostSwapApiV1SwapCancel'
|
4654
|
-
else:
|
4655
|
-
raise NotSupported(self.id + ' cancelOrders() does not support ' + marketType + ' markets')
|
4632
|
+
self.check_required_symbol('cancelOrders', symbol)
|
4656
4633
|
clientOrderIds = self.safe_string_2(params, 'client_order_id', 'clientOrderId')
|
4657
4634
|
clientOrderIds = self.safe_string_2(params, 'client_order_ids', 'clientOrderIds', clientOrderIds)
|
4658
4635
|
if clientOrderIds is None:
|
@@ -4660,7 +4637,48 @@ class huobi(Exchange, ImplicitAPI):
|
|
4660
4637
|
else:
|
4661
4638
|
request['client_order_id'] = clientOrderIds
|
4662
4639
|
params = self.omit(params, ['client_order_id', 'client_order_ids', 'clientOrderId', 'clientOrderIds'])
|
4663
|
-
|
4640
|
+
if market['future']:
|
4641
|
+
request['symbol'] = market['settleId']
|
4642
|
+
else:
|
4643
|
+
request['contract_code'] = market['id']
|
4644
|
+
stop = self.safe_value(params, 'stop')
|
4645
|
+
stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
|
4646
|
+
params = self.omit(params, ['stop', 'stopLossTakeProfit'])
|
4647
|
+
if market['linear']:
|
4648
|
+
marginMode = None
|
4649
|
+
marginMode, params = self.handle_margin_mode_and_params('cancelOrders', params)
|
4650
|
+
marginMode = 'cross' if (marginMode is None) else marginMode
|
4651
|
+
if marginMode == 'isolated':
|
4652
|
+
if stop:
|
4653
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapTriggerCancel(self.extend(request, params))
|
4654
|
+
elif stopLossTakeProfit:
|
4655
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapTpslCancel(self.extend(request, params))
|
4656
|
+
else:
|
4657
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapCancel(self.extend(request, params))
|
4658
|
+
elif marginMode == 'cross':
|
4659
|
+
if stop:
|
4660
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapCrossTriggerCancel(self.extend(request, params))
|
4661
|
+
elif stopLossTakeProfit:
|
4662
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapCrossTpslCancel(self.extend(request, params))
|
4663
|
+
else:
|
4664
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapCrossCancel(self.extend(request, params))
|
4665
|
+
elif market['inverse']:
|
4666
|
+
if market['swap']:
|
4667
|
+
if stop:
|
4668
|
+
response = await self.contractPrivatePostSwapApiV1SwapTriggerCancel(self.extend(request, params))
|
4669
|
+
elif stopLossTakeProfit:
|
4670
|
+
response = await self.contractPrivatePostSwapApiV1SwapTpslCancel(self.extend(request, params))
|
4671
|
+
else:
|
4672
|
+
response = await self.contractPrivatePostSwapApiV1SwapCancel(self.extend(request, params))
|
4673
|
+
elif market['future']:
|
4674
|
+
if stop:
|
4675
|
+
response = await self.contractPrivatePostApiV1ContractTriggerCancel(self.extend(request, params))
|
4676
|
+
elif stopLossTakeProfit:
|
4677
|
+
response = await self.contractPrivatePostApiV1ContractTpslCancel(self.extend(request, params))
|
4678
|
+
else:
|
4679
|
+
response = await self.contractPrivatePostApiV1ContractCancel(self.extend(request, params))
|
4680
|
+
else:
|
4681
|
+
raise NotSupported(self.id + ' cancelOrders() does not support ' + marketType + ' markets')
|
4664
4682
|
#
|
4665
4683
|
# spot
|
4666
4684
|
#
|
@@ -4695,7 +4713,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
4695
4713
|
# }
|
4696
4714
|
# }
|
4697
4715
|
#
|
4698
|
-
#
|
4716
|
+
# future and swap
|
4699
4717
|
#
|
4700
4718
|
# {
|
4701
4719
|
# "status": "ok",
|
@@ -4719,6 +4737,8 @@ class huobi(Exchange, ImplicitAPI):
|
|
4719
4737
|
cancel all open orders
|
4720
4738
|
:param str|None symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
|
4721
4739
|
:param dict params: extra parameters specific to the huobi api endpoint
|
4740
|
+
:param bool|None params['stop']: *contract only* if the orders are stop trigger orders or not
|
4741
|
+
:param bool|None params['stopLossTakeProfit']: *contract only* if the orders are stop-loss or take-profit orders
|
4722
4742
|
:returns [dict]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
4723
4743
|
"""
|
4724
4744
|
await self.load_markets()
|
@@ -4741,34 +4761,56 @@ class huobi(Exchange, ImplicitAPI):
|
|
4741
4761
|
# 'direction': 'buy': # buy, sell
|
4742
4762
|
# 'offset': 'open', # open, close
|
4743
4763
|
}
|
4744
|
-
|
4764
|
+
response = None
|
4745
4765
|
if marketType == 'spot':
|
4746
4766
|
if symbol is not None:
|
4747
|
-
market = self.market(symbol)
|
4748
4767
|
request['symbol'] = market['id']
|
4749
|
-
|
4768
|
+
response = await self.spotPrivatePostV1OrderOrdersBatchCancelOpenOrders(self.extend(request, params))
|
4750
4769
|
else:
|
4751
|
-
|
4752
|
-
|
4753
|
-
|
4754
|
-
request['contract_code'] =
|
4755
|
-
|
4770
|
+
self.check_required_symbol('cancelAllOrders', symbol)
|
4771
|
+
if market['future']:
|
4772
|
+
request['symbol'] = market['settleId']
|
4773
|
+
request['contract_code'] = market['id']
|
4774
|
+
stop = self.safe_value(params, 'stop')
|
4775
|
+
stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
|
4776
|
+
params = self.omit(params, ['stop', 'stopLossTakeProfit'])
|
4777
|
+
if market['linear']:
|
4756
4778
|
marginMode = None
|
4757
4779
|
marginMode, params = self.handle_margin_mode_and_params('cancelAllOrders', params)
|
4758
4780
|
marginMode = 'cross' if (marginMode is None) else marginMode
|
4759
4781
|
if marginMode == 'isolated':
|
4760
|
-
|
4782
|
+
if stop:
|
4783
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapTriggerCancelall(self.extend(request, params))
|
4784
|
+
elif stopLossTakeProfit:
|
4785
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapTpslCancelall(self.extend(request, params))
|
4786
|
+
else:
|
4787
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapCancelall(self.extend(request, params))
|
4761
4788
|
elif marginMode == 'cross':
|
4762
|
-
|
4763
|
-
|
4764
|
-
|
4765
|
-
|
4766
|
-
|
4767
|
-
|
4768
|
-
|
4769
|
-
|
4770
|
-
|
4771
|
-
|
4789
|
+
if stop:
|
4790
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapCrossTriggerCancelall(self.extend(request, params))
|
4791
|
+
elif stopLossTakeProfit:
|
4792
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapCrossTpslCancelall(self.extend(request, params))
|
4793
|
+
else:
|
4794
|
+
response = await self.contractPrivatePostLinearSwapApiV1SwapCrossCancelall(self.extend(request, params))
|
4795
|
+
elif market['inverse']:
|
4796
|
+
if market['swap']:
|
4797
|
+
if stop:
|
4798
|
+
response = await self.contractPrivatePostSwapApiV1SwapTriggerCancelall(self.extend(request, params))
|
4799
|
+
elif stopLossTakeProfit:
|
4800
|
+
response = await self.contractPrivatePostSwapApiV1SwapTpslCancelall(self.extend(request, params))
|
4801
|
+
else:
|
4802
|
+
response = await self.contractPrivatePostSwapApiV1SwapCancelall(self.extend(request, params))
|
4803
|
+
elif market['future']:
|
4804
|
+
if stop:
|
4805
|
+
response = await self.contractPrivatePostApiV1ContractTriggerCancelall(self.extend(request, params))
|
4806
|
+
elif stopLossTakeProfit:
|
4807
|
+
response = await self.contractPrivatePostApiV1ContractTpslCancelall(self.extend(request, params))
|
4808
|
+
else:
|
4809
|
+
response = await self.contractPrivatePostApiV1ContractCancelall(self.extend(request, params))
|
4810
|
+
else:
|
4811
|
+
raise NotSupported(self.id + ' cancelAllOrders() does not support ' + marketType + ' markets')
|
4812
|
+
#
|
4813
|
+
# spot
|
4772
4814
|
#
|
4773
4815
|
# {
|
4774
4816
|
# code: 200,
|
@@ -4779,6 +4821,17 @@ class huobi(Exchange, ImplicitAPI):
|
|
4779
4821
|
# }
|
4780
4822
|
# }
|
4781
4823
|
#
|
4824
|
+
# future and swap
|
4825
|
+
#
|
4826
|
+
# {
|
4827
|
+
# status: "ok",
|
4828
|
+
# data: {
|
4829
|
+
# errors: [],
|
4830
|
+
# successes: "1104754904426696704"
|
4831
|
+
# },
|
4832
|
+
# ts: "1683435723755"
|
4833
|
+
# }
|
4834
|
+
#
|
4782
4835
|
return response
|
4783
4836
|
|
4784
4837
|
def parse_deposit_address(self, depositAddress, currency=None):
|
@@ -5380,8 +5433,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
5380
5433
|
:param dict params: extra parameters specific to the huobi api endpoint
|
5381
5434
|
:returns [dict]: a list of `funding rate structures <https://docs.ccxt.com/en/latest/manual.html?#funding-rate-history-structure>`
|
5382
5435
|
"""
|
5383
|
-
|
5384
|
-
raise ArgumentsRequired(self.id + ' fetchFundingRateHistory() requires a symbol argument')
|
5436
|
+
self.check_required_symbol('fetchFundingRateHistory', symbol)
|
5385
5437
|
await self.load_markets()
|
5386
5438
|
market = self.market(symbol)
|
5387
5439
|
request = {
|
@@ -5885,8 +5937,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
5885
5937
|
:param dict params: extra parameters specific to the huobi api endpoint
|
5886
5938
|
:returns dict: response from the exchange
|
5887
5939
|
"""
|
5888
|
-
|
5889
|
-
raise ArgumentsRequired(self.id + ' setLeverage() requires a symbol argument')
|
5940
|
+
self.check_required_symbol('setLeverage', symbol)
|
5890
5941
|
await self.load_markets()
|
5891
5942
|
market = self.market(symbol)
|
5892
5943
|
marketType, query = self.handle_market_type_and_params('setLeverage', market, params)
|
@@ -6965,8 +7016,7 @@ class huobi(Exchange, ImplicitAPI):
|
|
6965
7016
|
marginMode = 'cross' if (marginMode is None) else marginMode
|
6966
7017
|
method = None
|
6967
7018
|
if marginMode == 'isolated':
|
6968
|
-
|
6969
|
-
raise ArgumentsRequired(self.id + ' borrowMargin() requires a symbol argument for isolated margin')
|
7019
|
+
self.check_required_symbol('borrowMargin', symbol)
|
6970
7020
|
market = self.market(symbol)
|
6971
7021
|
request['symbol'] = market['id']
|
6972
7022
|
method = 'privatePostMarginOrders'
|
@@ -2399,7 +2399,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
2399
2399
|
:param float amount: how much of currency you want to trade in units of base currency
|
2400
2400
|
:param float|None price: the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
|
2401
2401
|
:param dict params: extra parameters specific to the phemex api endpoint
|
2402
|
-
:param str|None params['posSide']: either '
|
2402
|
+
:param str|None params['posSide']: either 'Merged' or 'Long' or 'Short'
|
2403
2403
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2404
2404
|
"""
|
2405
2405
|
if symbol is None:
|
@@ -2457,7 +2457,7 @@ class phemex(Exchange, ImplicitAPI):
|
|
2457
2457
|
:param str id: order id
|
2458
2458
|
:param str symbol: unified symbol of the market the order was made in
|
2459
2459
|
:param dict params: extra parameters specific to the phemex api endpoint
|
2460
|
-
:param str|None params['posSide']: either '
|
2460
|
+
:param str|None params['posSide']: either 'Merged' or 'Long' or 'Short'
|
2461
2461
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2462
2462
|
"""
|
2463
2463
|
if symbol is None:
|
@@ -1678,6 +1678,12 @@ class coinex(Exchange, ImplicitAPI):
|
|
1678
1678
|
def create_order(self, symbol: str, type, side: OrderSide, amount, price=None, params={}):
|
1679
1679
|
"""
|
1680
1680
|
create a trade order
|
1681
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http017_put_limit
|
1682
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http018_put_market
|
1683
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http019_put_limit_stop
|
1684
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http020_put_market_stop
|
1685
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http031_market_close
|
1686
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http030_limit_close
|
1681
1687
|
:param str symbol: unified symbol of the market to create an order in
|
1682
1688
|
:param str type: 'market' or 'limit'
|
1683
1689
|
:param str side: 'buy' or 'sell'
|
@@ -1691,6 +1697,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
1691
1697
|
:param str params['timeInForce']: "GTC", "IOC", "FOK", "PO"
|
1692
1698
|
:param bool params.postOnly:
|
1693
1699
|
:param bool params.reduceOnly:
|
1700
|
+
:param bool|None params['position_id']: *required for reduce only orders* the position id to reduce
|
1694
1701
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1695
1702
|
"""
|
1696
1703
|
self.load_markets()
|
@@ -1705,9 +1712,11 @@ class coinex(Exchange, ImplicitAPI):
|
|
1705
1712
|
positionId = self.safe_integer_2(params, 'position_id', 'positionId') # Required for closing swap positions
|
1706
1713
|
timeInForceRaw = self.safe_string(params, 'timeInForce') # Spot: IOC, FOK, PO, GTC, ... NORMAL(default), MAKER_ONLY
|
1707
1714
|
reduceOnly = self.safe_value(params, 'reduceOnly')
|
1708
|
-
if reduceOnly
|
1715
|
+
if reduceOnly:
|
1709
1716
|
if market['type'] != 'swap':
|
1710
1717
|
raise InvalidOrder(self.id + ' createOrder() does not support reduceOnly for ' + market['type'] + ' orders, reduceOnly orders are supported for swap markets only')
|
1718
|
+
if positionId is None:
|
1719
|
+
raise ArgumentsRequired(self.id + ' createOrder() requires a position_id/positionId parameter for reduceOnly orders')
|
1711
1720
|
method = None
|
1712
1721
|
request = {
|
1713
1722
|
'market': market['id'],
|