ccxt 4.1.66__tar.gz → 4.1.68__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.66/ccxt.egg-info → ccxt-4.1.68}/PKG-INFO +4 -4
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/__init__.py +1 -1
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/__init__.py +1 -1
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/exchange.py +2 -2
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bingx.py +1 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bybit.py +2 -2
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinbase.py +1 -1
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/gate.py +199 -2
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/base/exchange.py +12 -5
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/base/types.py +1 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bingx.py +1 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bybit.py +2 -2
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinbase.py +1 -1
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/gate.py +199 -2
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/__init__.py +1 -1
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/binance.py +1 -1
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/phemex.py +1 -1
- {ccxt-4.1.66 → ccxt-4.1.68/ccxt.egg-info}/PKG-INFO +4 -4
- {ccxt-4.1.66 → ccxt-4.1.68}/package.json +1 -1
- {ccxt-4.1.66 → ccxt-4.1.68}/LICENSE.txt +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/MANIFEST.in +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/README.rst +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/ace.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/alpaca.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/ascendex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bequant.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bigone.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/binance.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/binancecoinm.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/binanceus.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/binanceusdm.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bingx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bit2c.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitbank.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitbay.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitbns.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitcoincom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitfinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitfinex2.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitflyer.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitforex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitget.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bithumb.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitmart.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitmex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitopro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitpanda.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitrue.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitso.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitstamp.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bittrex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bitvavo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bl3p.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/blockchaincom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/btcalpha.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/btcbox.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/btcmarkets.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/btcturk.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/bybit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/cex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinbase.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinbaseprime.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinbasepro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coincheck.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinlist.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinmate.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinone.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinsph.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/coinspot.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/cryptocom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/currencycom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/delta.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/deribit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/digifinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/exmo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/fmfwio.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/gate.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/gateio.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/gemini.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/hitbtc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/hitbtc3.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/hollaex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/htx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/huobi.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/huobijp.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/idex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/independentreserve.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/indodax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/kraken.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/krakenfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/kucoin.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/kucoinfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/kuna.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/latoken.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/lbank.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/luno.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/lykke.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/mercado.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/mexc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/ndax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/novadax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/oceanex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/okcoin.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/okx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/p2b.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/paymium.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/phemex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/poloniex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/poloniexfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/probit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/tidex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/timex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/tokocrypto.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/upbit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/wavesexchange.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/wazirx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/whitebit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/woo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/yobit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/zaif.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/abstract/zonda.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/ace.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/alpaca.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/ascendex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/ace.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/alpaca.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/ascendex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/throttler.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/aiohttp_client.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/cache.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/client.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/fast_client.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/functions.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/future.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/order_book.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bequant.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bigone.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/binance.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/binancecoinm.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/binanceus.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/binanceusdm.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bit2c.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitbank.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitbay.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitbns.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitcoincom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitfinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitfinex2.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitflyer.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitforex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitget.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bithumb.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitmart.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitmex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitopro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitpanda.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitrue.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitso.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitstamp.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bittrex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bitvavo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/bl3p.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/blockchaincom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/btcalpha.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/btcbox.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/btcmarkets.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/btcturk.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/cex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinbaseprime.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinbasepro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coincheck.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinlist.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinmate.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinone.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinsph.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/coinspot.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/cryptocom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/currencycom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/delta.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/deribit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/digifinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/exmo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/flowbtc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/fmfwio.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/gateio.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/gemini.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/hitbtc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/hitbtc3.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/hollaex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/htx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/huobi.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/huobijp.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/huobipro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/idex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/independentreserve.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/indodax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/kraken.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/krakenfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/kucoin.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/kucoinfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/kuna.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/latoken.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/lbank.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/luno.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/lykke.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/mercado.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/mexc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/mexc3.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/ndax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/novadax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/oceanex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/okcoin.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/okex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/okex5.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/okx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/p2b.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/paymium.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/phemex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/poloniex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/poloniexfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/probit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/tidex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/timex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/tokocrypto.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/upbit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/wavesexchange.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/wazirx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/whitebit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/woo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/yobit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/zaif.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/async_support/zonda.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/base/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/base/decimal_to_precision.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/base/errors.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/base/precise.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bequant.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bigone.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/binance.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/binancecoinm.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/binanceus.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/binanceusdm.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bit2c.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitbank.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitbay.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitbns.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitcoincom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitfinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitfinex2.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitflyer.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitforex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitget.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bithumb.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitmart.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitmex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitopro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitpanda.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitrue.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitso.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitstamp.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bittrex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bitvavo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/bl3p.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/blockchaincom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/btcalpha.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/btcbox.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/btcmarkets.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/btcturk.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/cex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinbaseprime.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinbasepro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coincheck.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinlist.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinmate.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinone.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinsph.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/coinspot.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/cryptocom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/currencycom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/delta.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/deribit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/digifinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/exmo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/flowbtc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/fmfwio.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/gateio.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/gemini.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/hitbtc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/hitbtc3.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/hollaex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/htx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/huobi.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/huobijp.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/huobipro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/idex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/independentreserve.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/indodax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/kraken.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/krakenfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/kucoin.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/kucoinfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/kuna.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/latoken.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/lbank.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/luno.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/lykke.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/mercado.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/mexc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/mexc3.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/ndax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/novadax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/oceanex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/okcoin.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/okex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/okex5.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/okx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/p2b.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/paymium.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/phemex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/poloniex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/poloniexfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/alpaca.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/ascendex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bequant.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/binancecoinm.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/binanceus.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/binanceusdm.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bingx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitcoincom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitfinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitfinex2.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitget.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitmart.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitmex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitopro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitpanda.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitrue.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitstamp.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bittrex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bitvavo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/blockchaincom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/bybit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/cex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/coinbase.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/coinbaseprime.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/coinbasepro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/coinex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/cryptocom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/currencycom.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/deribit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/exmo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/gate.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/gateio.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/gemini.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/hitbtc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/hollaex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/htx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/huobi.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/huobijp.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/huobipro.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/idex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/independentreserve.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/kraken.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/krakenfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/kucoin.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/kucoinfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/luno.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/mexc.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/mexc3.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/ndax.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/okcoin.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/okex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/okx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/poloniex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/poloniexfutures.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/probit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/upbit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/wazirx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/whitebit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/pro/woo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/probit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/__init__.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_account.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_balance.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_borrow_interest.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_borrow_rate.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_calculate_fee.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_crypto.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_currency.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_datetime.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_decimal_to_precision.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_deep_extend.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_deposit_withdrawal.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_exchange_datetime_functions.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_funding_rate_history.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_ledger_entry.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_ledger_item.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_leverage_tier.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_margin_modification.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_market.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_number.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_ohlcv.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_open_interest.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_order.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_order_book.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_position.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_shared_methods.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_status.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_throttle.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_ticker.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_trade.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_trading_fee.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/base/test_transaction.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/test_async.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/test/test_sync.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/tidex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/timex.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/tokocrypto.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/upbit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/wavesexchange.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/wazirx.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/whitebit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/woo.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/yobit.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/zaif.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt/zonda.py +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt.egg-info/SOURCES.txt +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt.egg-info/dependency_links.txt +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt.egg-info/requires.txt +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/ccxt.egg-info/top_level.txt +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/setup.cfg +0 -0
- {ccxt-4.1.66 → ccxt-4.1.68}/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.68
|
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
|
@@ -224,13 +224,13 @@ Description: # CCXT – CryptoCurrency eXchange Trading Library
|
|
224
224
|
|
225
225
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
226
226
|
|
227
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
228
|
-
* unpkg: https://unpkg.com/ccxt@4.1.
|
227
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.68/dist/ccxt.browser.js
|
228
|
+
* unpkg: https://unpkg.com/ccxt@4.1.68/dist/ccxt.browser.js
|
229
229
|
|
230
230
|
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.
|
231
231
|
|
232
232
|
```HTML
|
233
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.
|
233
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.68/dist/ccxt.browser.js"></script>
|
234
234
|
```
|
235
235
|
|
236
236
|
Creates a global `ccxt` object:
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.1.
|
5
|
+
__version__ = '4.1.68'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -746,7 +746,7 @@ class Exchange(BaseExchange):
|
|
746
746
|
raise NotSupported(self.id + ' watchPositions() is not supported yet')
|
747
747
|
|
748
748
|
async def watch_position_for_symbols(self, symbols: List[str] = None, since: Int = None, limit: Int = None, params={}):
|
749
|
-
return self.watchPositions(symbols, since, limit, params)
|
749
|
+
return await self.watchPositions(symbols, since, limit, params)
|
750
750
|
|
751
751
|
async def fetch_positions_for_symbol(self, symbol: str, params={}):
|
752
752
|
"""
|
@@ -89,6 +89,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
89
89
|
'user': 'https://open-api.{hostname}/openApi',
|
90
90
|
'subAccount': 'https://open-api.{hostname}/openApi',
|
91
91
|
'account': 'https://open-api.{hostname}/openApi',
|
92
|
+
'copyTrading': 'https://open-api.{hostname}/openApi',
|
92
93
|
},
|
93
94
|
'www': 'https://bingx.com/',
|
94
95
|
'doc': 'https://bingx-api.github.io/docs/',
|
@@ -2057,8 +2057,8 @@ class bybit(Exchange, ImplicitAPI):
|
|
2057
2057
|
parsedSymbols.append(market['symbol'])
|
2058
2058
|
request = {
|
2059
2059
|
# 'symbol': market['id'],
|
2060
|
-
# 'baseCoin': '', Base coin. For option only
|
2061
|
-
# 'expDate': '', Expiry date. e.g., 25DEC22. For option only
|
2060
|
+
# 'baseCoin': '', # Base coin. For option only
|
2061
|
+
# 'expDate': '', # Expiry date. e.g., 25DEC22. For option only
|
2062
2062
|
}
|
2063
2063
|
type = None
|
2064
2064
|
type, params = self.handle_market_type_and_params('fetchTickers', market, params)
|
@@ -572,8 +572,6 @@ class gate(Exchange, ImplicitAPI):
|
|
572
572
|
'AXIS': 'Axis DeFi',
|
573
573
|
'BIFI': 'Bitcoin File',
|
574
574
|
'BOX': 'DefiBox',
|
575
|
-
'BTCBEAR': 'BEAR',
|
576
|
-
'BTCBULL': 'BULL',
|
577
575
|
'BYN': 'BeyondFi',
|
578
576
|
'EGG': 'Goose Finance',
|
579
577
|
'GTC': 'Game.com', # conflict with Gitcoin and Gastrocoin
|
@@ -869,6 +867,7 @@ class gate(Exchange, ImplicitAPI):
|
|
869
867
|
'AUTO_TRIGGER_PRICE_LESS_LAST': InvalidOrder, # {"label":"AUTO_TRIGGER_PRICE_LESS_LAST","message":"invalid argument: Trigger.Price must < last_price"}
|
870
868
|
'AUTO_TRIGGER_PRICE_GREATE_LAST': InvalidOrder, # {"label":"AUTO_TRIGGER_PRICE_GREATE_LAST","message":"invalid argument: Trigger.Price must > last_price"}
|
871
869
|
'POSITION_HOLDING': BadRequest,
|
870
|
+
'USER_LOAN_EXCEEDED': BadRequest, # {"label":"USER_LOAN_EXCEEDED","message":"Max loan amount per user would be exceeded"}
|
872
871
|
},
|
873
872
|
'broad': {},
|
874
873
|
},
|
@@ -5265,6 +5264,204 @@ class gate(Exchange, ImplicitAPI):
|
|
5265
5264
|
floor = cap
|
5266
5265
|
return tiers
|
5267
5266
|
|
5267
|
+
async def repay_margin(self, code: str, amount, symbol: Str = None, params={}):
|
5268
|
+
"""
|
5269
|
+
repay borrowed margin and interest
|
5270
|
+
:see: https://www.gate.io/docs/apiv4/en/#repay-cross-margin-loan
|
5271
|
+
:see: https://www.gate.io/docs/apiv4/en/#repay-a-loan
|
5272
|
+
:param str code: unified currency code of the currency to repay
|
5273
|
+
:param float amount: the amount to repay
|
5274
|
+
:param str symbol: unified market symbol, required for isolated margin
|
5275
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
5276
|
+
:param str [params.mode]: 'all' or 'partial' payment mode, extra parameter required for isolated margin
|
5277
|
+
:param str [params.id]: '34267567' loan id, extra parameter required for isolated margin
|
5278
|
+
:returns dict: a `margin loan structure <https://docs.ccxt.com/#/?id=margin-loan-structure>`
|
5279
|
+
"""
|
5280
|
+
marginMode = None
|
5281
|
+
marginMode, params = self.handle_option_and_params(params, 'repayMargin', 'marginMode')
|
5282
|
+
self.check_required_argument('repayMargin', marginMode, 'marginMode', ['cross', 'isolated'])
|
5283
|
+
self.check_required_margin_argument('repayMargin', symbol, marginMode)
|
5284
|
+
await self.load_markets()
|
5285
|
+
currency = self.currency(code)
|
5286
|
+
request = {
|
5287
|
+
'currency': currency['id'].upper(),
|
5288
|
+
'amount': self.currency_to_precision(code, amount),
|
5289
|
+
}
|
5290
|
+
response = None
|
5291
|
+
if (marginMode == 'cross') and (symbol is None):
|
5292
|
+
response = await self.privateMarginPostCrossRepayments(self.extend(request, params))
|
5293
|
+
elif (marginMode == 'isolated') or (symbol is not None):
|
5294
|
+
if symbol is None:
|
5295
|
+
raise BadRequest(self.id + ' repayMargin() requires a symbol argument for isolated margin')
|
5296
|
+
market = self.market(symbol)
|
5297
|
+
request['currency_pair'] = market['id']
|
5298
|
+
request['type'] = 'repay'
|
5299
|
+
response = await self.privateMarginPostUniLoans(self.extend(request, params))
|
5300
|
+
#
|
5301
|
+
# Cross
|
5302
|
+
#
|
5303
|
+
# [
|
5304
|
+
# {
|
5305
|
+
# "id": "17",
|
5306
|
+
# "create_time": 1620381696159,
|
5307
|
+
# "update_time": 1620381696159,
|
5308
|
+
# "currency": "EOS",
|
5309
|
+
# "amount": "110.553635",
|
5310
|
+
# "text": "web",
|
5311
|
+
# "status": 2,
|
5312
|
+
# "repaid": "110.506649705159",
|
5313
|
+
# "repaid_interest": "0.046985294841",
|
5314
|
+
# "unpaid_interest": "0.0000074393366667"
|
5315
|
+
# }
|
5316
|
+
# ]
|
5317
|
+
#
|
5318
|
+
# Isolated
|
5319
|
+
#
|
5320
|
+
# {
|
5321
|
+
# "id": "34267567",
|
5322
|
+
# "create_time": "1656394778",
|
5323
|
+
# "expire_time": "1657258778",
|
5324
|
+
# "status": "finished",
|
5325
|
+
# "side": "borrow",
|
5326
|
+
# "currency": "USDT",
|
5327
|
+
# "rate": "0.0002",
|
5328
|
+
# "amount": "100",
|
5329
|
+
# "days": 10,
|
5330
|
+
# "auto_renew": False,
|
5331
|
+
# "currency_pair": "LTC_USDT",
|
5332
|
+
# "left": "0",
|
5333
|
+
# "repaid": "100",
|
5334
|
+
# "paid_interest": "0.003333333333",
|
5335
|
+
# "unpaid_interest": "0"
|
5336
|
+
# }
|
5337
|
+
#
|
5338
|
+
if marginMode == 'cross':
|
5339
|
+
response = response[0]
|
5340
|
+
return self.parse_margin_loan(response, currency)
|
5341
|
+
|
5342
|
+
async def borrow_margin(self, code: str, amount, symbol: Str = None, params={}):
|
5343
|
+
"""
|
5344
|
+
create a loan to borrow margin
|
5345
|
+
:see: https://www.gate.io/docs/apiv4/en/#create-a-cross-margin-borrow-loan
|
5346
|
+
:see: https://www.gate.io/docs/developers/apiv4/en/#marginuni
|
5347
|
+
:param str code: unified currency code of the currency to borrow
|
5348
|
+
:param float amount: the amount to borrow
|
5349
|
+
:param str symbol: unified market symbol, required for isolated margin
|
5350
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
5351
|
+
:param str [params.rate]: '0.0002' or '0.002' extra parameter required for isolated margin
|
5352
|
+
:returns dict: a `margin loan structure <https://docs.ccxt.com/#/?id=margin-loan-structure>`
|
5353
|
+
"""
|
5354
|
+
marginMode = None
|
5355
|
+
marginMode, params = self.handle_option_and_params(params, 'borrowMargin', 'marginMode')
|
5356
|
+
self.check_required_argument('borrowMargin', marginMode, 'marginMode', ['cross', 'isolated'])
|
5357
|
+
self.check_required_margin_argument('borrowMargin', symbol, marginMode)
|
5358
|
+
await self.load_markets()
|
5359
|
+
currency = self.currency(code)
|
5360
|
+
request = {
|
5361
|
+
'currency': currency['id'].upper(),
|
5362
|
+
'amount': self.currency_to_precision(code, amount),
|
5363
|
+
}
|
5364
|
+
response = None
|
5365
|
+
if (marginMode == 'cross') and (symbol is None):
|
5366
|
+
response = await self.privateMarginPostCrossLoans(self.extend(request, params))
|
5367
|
+
elif (marginMode == 'isolated') or (symbol is not None):
|
5368
|
+
if symbol is None:
|
5369
|
+
raise BadRequest(self.id + ' borrowMargin() requires a symbol argument for isolated margin')
|
5370
|
+
market = self.market(symbol)
|
5371
|
+
request['currency_pair'] = market['id']
|
5372
|
+
request['type'] = 'borrow'
|
5373
|
+
response = await self.privateMarginPostUniLoans(self.extend(request, params))
|
5374
|
+
#
|
5375
|
+
# Cross
|
5376
|
+
#
|
5377
|
+
# {
|
5378
|
+
# "id": "17",
|
5379
|
+
# "create_time": 1620381696159,
|
5380
|
+
# "update_time": 1620381696159,
|
5381
|
+
# "currency": "EOS",
|
5382
|
+
# "amount": "110.553635",
|
5383
|
+
# "text": "web",
|
5384
|
+
# "status": 2,
|
5385
|
+
# "repaid": "110.506649705159",
|
5386
|
+
# "repaid_interest": "0.046985294841",
|
5387
|
+
# "unpaid_interest": "0.0000074393366667"
|
5388
|
+
# }
|
5389
|
+
#
|
5390
|
+
# Isolated
|
5391
|
+
#
|
5392
|
+
# {
|
5393
|
+
# "id": "34267567",
|
5394
|
+
# "create_time": "1656394778",
|
5395
|
+
# "expire_time": "1657258778",
|
5396
|
+
# "status": "loaned",
|
5397
|
+
# "side": "borrow",
|
5398
|
+
# "currency": "USDT",
|
5399
|
+
# "rate": "0.0002",
|
5400
|
+
# "amount": "100",
|
5401
|
+
# "days": 10,
|
5402
|
+
# "auto_renew": False,
|
5403
|
+
# "currency_pair": "LTC_USDT",
|
5404
|
+
# "left": "0",
|
5405
|
+
# "repaid": "0",
|
5406
|
+
# "paid_interest": "0",
|
5407
|
+
# "unpaid_interest": "0.003333333333"
|
5408
|
+
# }
|
5409
|
+
#
|
5410
|
+
return self.parse_margin_loan(response, currency)
|
5411
|
+
|
5412
|
+
def parse_margin_loan(self, info, currency: Currency = None):
|
5413
|
+
#
|
5414
|
+
# Cross
|
5415
|
+
#
|
5416
|
+
# {
|
5417
|
+
# "id": "17",
|
5418
|
+
# "create_time": 1620381696159,
|
5419
|
+
# "update_time": 1620381696159,
|
5420
|
+
# "currency": "EOS",
|
5421
|
+
# "amount": "110.553635",
|
5422
|
+
# "text": "web",
|
5423
|
+
# "status": 2,
|
5424
|
+
# "repaid": "110.506649705159",
|
5425
|
+
# "repaid_interest": "0.046985294841",
|
5426
|
+
# "unpaid_interest": "0.0000074393366667"
|
5427
|
+
# }
|
5428
|
+
#
|
5429
|
+
# Isolated
|
5430
|
+
#
|
5431
|
+
# {
|
5432
|
+
# "id": "34267567",
|
5433
|
+
# "create_time": "1656394778",
|
5434
|
+
# "expire_time": "1657258778",
|
5435
|
+
# "status": "loaned",
|
5436
|
+
# "side": "borrow",
|
5437
|
+
# "currency": "USDT",
|
5438
|
+
# "rate": "0.0002",
|
5439
|
+
# "amount": "100",
|
5440
|
+
# "days": 10,
|
5441
|
+
# "auto_renew": False,
|
5442
|
+
# "currency_pair": "LTC_USDT",
|
5443
|
+
# "left": "0",
|
5444
|
+
# "repaid": "0",
|
5445
|
+
# "paid_interest": "0",
|
5446
|
+
# "unpaid_interest": "0.003333333333"
|
5447
|
+
# }
|
5448
|
+
#
|
5449
|
+
marginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode', 'cross')
|
5450
|
+
timestamp = self.safe_integer(info, 'create_time')
|
5451
|
+
if marginMode == 'isolated':
|
5452
|
+
timestamp = self.safe_timestamp(info, 'create_time')
|
5453
|
+
currencyId = self.safe_string(info, 'currency')
|
5454
|
+
marketId = self.safe_string(info, 'currency_pair')
|
5455
|
+
return {
|
5456
|
+
'id': self.safe_integer(info, 'id'),
|
5457
|
+
'currency': self.safe_currency_code(currencyId, currency),
|
5458
|
+
'amount': self.safe_number(info, 'amount'),
|
5459
|
+
'symbol': self.safe_symbol(marketId, None, '_', 'margin'),
|
5460
|
+
'timestamp': timestamp,
|
5461
|
+
'datetime': self.iso8601(timestamp),
|
5462
|
+
'info': info,
|
5463
|
+
}
|
5464
|
+
|
5268
5465
|
def sign(self, path, api=[], method='GET', params={}, headers=None, body=None):
|
5269
5466
|
authentication = api[0] # public, private
|
5270
5467
|
type = api[1] # spot, margin, future, delivery
|
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.1.
|
7
|
+
__version__ = '4.1.68'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -564,7 +564,7 @@ class Exchange(object):
|
|
564
564
|
proxies['http'] = socksProxy
|
565
565
|
proxies['https'] = socksProxy
|
566
566
|
proxyAgentSet = proxies is not None
|
567
|
-
self.
|
567
|
+
self.check_conflicting_proxies(proxyAgentSet, proxyUrl)
|
568
568
|
# specifically for async-python, there is ".proxies" property maintained
|
569
569
|
if (self.proxies is not None):
|
570
570
|
if (proxyAgentSet or proxyUrl):
|
@@ -1989,7 +1989,7 @@ class Exchange(object):
|
|
1989
1989
|
def parse_markets(self, markets):
|
1990
1990
|
result = []
|
1991
1991
|
for i in range(0, len(markets)):
|
1992
|
-
result.append(self.
|
1992
|
+
result.append(self.parse_market(markets[i]))
|
1993
1993
|
return result
|
1994
1994
|
|
1995
1995
|
def parse_ticker(self, ticker: object, market: Market = None):
|
@@ -2192,6 +2192,7 @@ class Exchange(object):
|
|
2192
2192
|
'contract': None,
|
2193
2193
|
'linear': None,
|
2194
2194
|
'inverse': None,
|
2195
|
+
'subType': None,
|
2195
2196
|
'taker': None,
|
2196
2197
|
'maker': None,
|
2197
2198
|
'contractSize': None,
|
@@ -2260,6 +2261,12 @@ class Exchange(object):
|
|
2260
2261
|
'precision': self.precision,
|
2261
2262
|
'limits': self.limits,
|
2262
2263
|
}, self.fees['trading'], value)
|
2264
|
+
if market['linear']:
|
2265
|
+
market['subType'] = 'linear'
|
2266
|
+
elif market['inverse']:
|
2267
|
+
market['subType'] = 'inverse'
|
2268
|
+
else:
|
2269
|
+
market['subType'] = None
|
2263
2270
|
values.append(market)
|
2264
2271
|
self.markets = self.index_by(values, 'symbol')
|
2265
2272
|
marketsSortedBySymbol = self.keysort(self.markets)
|
@@ -2825,7 +2832,7 @@ class Exchange(object):
|
|
2825
2832
|
'bidVolume': self.safe_number(ticker, 'bidVolume'),
|
2826
2833
|
'ask': self.parse_number(self.omit_zero(self.safe_number(ticker, 'ask'))),
|
2827
2834
|
'askVolume': self.safe_number(ticker, 'askVolume'),
|
2828
|
-
'high': self.parse_number(self.omit_zero(self.safe_string(ticker, 'high
|
2835
|
+
'high': self.parse_number(self.omit_zero(self.safe_string(ticker, 'high'))),
|
2829
2836
|
'low': self.parse_number(self.omit_zero(self.safe_number(ticker, 'low'))),
|
2830
2837
|
'open': self.parse_number(self.omit_zero(self.parse_number(open))),
|
2831
2838
|
'close': self.parse_number(self.omit_zero(self.parse_number(close))),
|
@@ -4331,7 +4338,7 @@ class Exchange(object):
|
|
4331
4338
|
message += ', one of ' + '(' + messageOptions + ')'
|
4332
4339
|
raise ArgumentsRequired(message)
|
4333
4340
|
|
4334
|
-
def check_required_margin_argument(self, methodName: str, symbol:
|
4341
|
+
def check_required_margin_argument(self, methodName: str, symbol: Str, marginMode: str):
|
4335
4342
|
"""
|
4336
4343
|
* @ignore
|
4337
4344
|
:param str symbol: unified symbol of the market
|
@@ -88,6 +88,7 @@ class bingx(Exchange, ImplicitAPI):
|
|
88
88
|
'user': 'https://open-api.{hostname}/openApi',
|
89
89
|
'subAccount': 'https://open-api.{hostname}/openApi',
|
90
90
|
'account': 'https://open-api.{hostname}/openApi',
|
91
|
+
'copyTrading': 'https://open-api.{hostname}/openApi',
|
91
92
|
},
|
92
93
|
'www': 'https://bingx.com/',
|
93
94
|
'doc': 'https://bingx-api.github.io/docs/',
|
@@ -2056,8 +2056,8 @@ class bybit(Exchange, ImplicitAPI):
|
|
2056
2056
|
parsedSymbols.append(market['symbol'])
|
2057
2057
|
request = {
|
2058
2058
|
# 'symbol': market['id'],
|
2059
|
-
# 'baseCoin': '', Base coin. For option only
|
2060
|
-
# 'expDate': '', Expiry date. e.g., 25DEC22. For option only
|
2059
|
+
# 'baseCoin': '', # Base coin. For option only
|
2060
|
+
# 'expDate': '', # Expiry date. e.g., 25DEC22. For option only
|
2061
2061
|
}
|
2062
2062
|
type = None
|
2063
2063
|
type, params = self.handle_market_type_and_params('fetchTickers', market, params)
|
@@ -571,8 +571,6 @@ class gate(Exchange, ImplicitAPI):
|
|
571
571
|
'AXIS': 'Axis DeFi',
|
572
572
|
'BIFI': 'Bitcoin File',
|
573
573
|
'BOX': 'DefiBox',
|
574
|
-
'BTCBEAR': 'BEAR',
|
575
|
-
'BTCBULL': 'BULL',
|
576
574
|
'BYN': 'BeyondFi',
|
577
575
|
'EGG': 'Goose Finance',
|
578
576
|
'GTC': 'Game.com', # conflict with Gitcoin and Gastrocoin
|
@@ -868,6 +866,7 @@ class gate(Exchange, ImplicitAPI):
|
|
868
866
|
'AUTO_TRIGGER_PRICE_LESS_LAST': InvalidOrder, # {"label":"AUTO_TRIGGER_PRICE_LESS_LAST","message":"invalid argument: Trigger.Price must < last_price"}
|
869
867
|
'AUTO_TRIGGER_PRICE_GREATE_LAST': InvalidOrder, # {"label":"AUTO_TRIGGER_PRICE_GREATE_LAST","message":"invalid argument: Trigger.Price must > last_price"}
|
870
868
|
'POSITION_HOLDING': BadRequest,
|
869
|
+
'USER_LOAN_EXCEEDED': BadRequest, # {"label":"USER_LOAN_EXCEEDED","message":"Max loan amount per user would be exceeded"}
|
871
870
|
},
|
872
871
|
'broad': {},
|
873
872
|
},
|
@@ -5264,6 +5263,204 @@ class gate(Exchange, ImplicitAPI):
|
|
5264
5263
|
floor = cap
|
5265
5264
|
return tiers
|
5266
5265
|
|
5266
|
+
def repay_margin(self, code: str, amount, symbol: Str = None, params={}):
|
5267
|
+
"""
|
5268
|
+
repay borrowed margin and interest
|
5269
|
+
:see: https://www.gate.io/docs/apiv4/en/#repay-cross-margin-loan
|
5270
|
+
:see: https://www.gate.io/docs/apiv4/en/#repay-a-loan
|
5271
|
+
:param str code: unified currency code of the currency to repay
|
5272
|
+
:param float amount: the amount to repay
|
5273
|
+
:param str symbol: unified market symbol, required for isolated margin
|
5274
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
5275
|
+
:param str [params.mode]: 'all' or 'partial' payment mode, extra parameter required for isolated margin
|
5276
|
+
:param str [params.id]: '34267567' loan id, extra parameter required for isolated margin
|
5277
|
+
:returns dict: a `margin loan structure <https://docs.ccxt.com/#/?id=margin-loan-structure>`
|
5278
|
+
"""
|
5279
|
+
marginMode = None
|
5280
|
+
marginMode, params = self.handle_option_and_params(params, 'repayMargin', 'marginMode')
|
5281
|
+
self.check_required_argument('repayMargin', marginMode, 'marginMode', ['cross', 'isolated'])
|
5282
|
+
self.check_required_margin_argument('repayMargin', symbol, marginMode)
|
5283
|
+
self.load_markets()
|
5284
|
+
currency = self.currency(code)
|
5285
|
+
request = {
|
5286
|
+
'currency': currency['id'].upper(),
|
5287
|
+
'amount': self.currency_to_precision(code, amount),
|
5288
|
+
}
|
5289
|
+
response = None
|
5290
|
+
if (marginMode == 'cross') and (symbol is None):
|
5291
|
+
response = self.privateMarginPostCrossRepayments(self.extend(request, params))
|
5292
|
+
elif (marginMode == 'isolated') or (symbol is not None):
|
5293
|
+
if symbol is None:
|
5294
|
+
raise BadRequest(self.id + ' repayMargin() requires a symbol argument for isolated margin')
|
5295
|
+
market = self.market(symbol)
|
5296
|
+
request['currency_pair'] = market['id']
|
5297
|
+
request['type'] = 'repay'
|
5298
|
+
response = self.privateMarginPostUniLoans(self.extend(request, params))
|
5299
|
+
#
|
5300
|
+
# Cross
|
5301
|
+
#
|
5302
|
+
# [
|
5303
|
+
# {
|
5304
|
+
# "id": "17",
|
5305
|
+
# "create_time": 1620381696159,
|
5306
|
+
# "update_time": 1620381696159,
|
5307
|
+
# "currency": "EOS",
|
5308
|
+
# "amount": "110.553635",
|
5309
|
+
# "text": "web",
|
5310
|
+
# "status": 2,
|
5311
|
+
# "repaid": "110.506649705159",
|
5312
|
+
# "repaid_interest": "0.046985294841",
|
5313
|
+
# "unpaid_interest": "0.0000074393366667"
|
5314
|
+
# }
|
5315
|
+
# ]
|
5316
|
+
#
|
5317
|
+
# Isolated
|
5318
|
+
#
|
5319
|
+
# {
|
5320
|
+
# "id": "34267567",
|
5321
|
+
# "create_time": "1656394778",
|
5322
|
+
# "expire_time": "1657258778",
|
5323
|
+
# "status": "finished",
|
5324
|
+
# "side": "borrow",
|
5325
|
+
# "currency": "USDT",
|
5326
|
+
# "rate": "0.0002",
|
5327
|
+
# "amount": "100",
|
5328
|
+
# "days": 10,
|
5329
|
+
# "auto_renew": False,
|
5330
|
+
# "currency_pair": "LTC_USDT",
|
5331
|
+
# "left": "0",
|
5332
|
+
# "repaid": "100",
|
5333
|
+
# "paid_interest": "0.003333333333",
|
5334
|
+
# "unpaid_interest": "0"
|
5335
|
+
# }
|
5336
|
+
#
|
5337
|
+
if marginMode == 'cross':
|
5338
|
+
response = response[0]
|
5339
|
+
return self.parse_margin_loan(response, currency)
|
5340
|
+
|
5341
|
+
def borrow_margin(self, code: str, amount, symbol: Str = None, params={}):
|
5342
|
+
"""
|
5343
|
+
create a loan to borrow margin
|
5344
|
+
:see: https://www.gate.io/docs/apiv4/en/#create-a-cross-margin-borrow-loan
|
5345
|
+
:see: https://www.gate.io/docs/developers/apiv4/en/#marginuni
|
5346
|
+
:param str code: unified currency code of the currency to borrow
|
5347
|
+
:param float amount: the amount to borrow
|
5348
|
+
:param str symbol: unified market symbol, required for isolated margin
|
5349
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
5350
|
+
:param str [params.rate]: '0.0002' or '0.002' extra parameter required for isolated margin
|
5351
|
+
:returns dict: a `margin loan structure <https://docs.ccxt.com/#/?id=margin-loan-structure>`
|
5352
|
+
"""
|
5353
|
+
marginMode = None
|
5354
|
+
marginMode, params = self.handle_option_and_params(params, 'borrowMargin', 'marginMode')
|
5355
|
+
self.check_required_argument('borrowMargin', marginMode, 'marginMode', ['cross', 'isolated'])
|
5356
|
+
self.check_required_margin_argument('borrowMargin', symbol, marginMode)
|
5357
|
+
self.load_markets()
|
5358
|
+
currency = self.currency(code)
|
5359
|
+
request = {
|
5360
|
+
'currency': currency['id'].upper(),
|
5361
|
+
'amount': self.currency_to_precision(code, amount),
|
5362
|
+
}
|
5363
|
+
response = None
|
5364
|
+
if (marginMode == 'cross') and (symbol is None):
|
5365
|
+
response = self.privateMarginPostCrossLoans(self.extend(request, params))
|
5366
|
+
elif (marginMode == 'isolated') or (symbol is not None):
|
5367
|
+
if symbol is None:
|
5368
|
+
raise BadRequest(self.id + ' borrowMargin() requires a symbol argument for isolated margin')
|
5369
|
+
market = self.market(symbol)
|
5370
|
+
request['currency_pair'] = market['id']
|
5371
|
+
request['type'] = 'borrow'
|
5372
|
+
response = self.privateMarginPostUniLoans(self.extend(request, params))
|
5373
|
+
#
|
5374
|
+
# Cross
|
5375
|
+
#
|
5376
|
+
# {
|
5377
|
+
# "id": "17",
|
5378
|
+
# "create_time": 1620381696159,
|
5379
|
+
# "update_time": 1620381696159,
|
5380
|
+
# "currency": "EOS",
|
5381
|
+
# "amount": "110.553635",
|
5382
|
+
# "text": "web",
|
5383
|
+
# "status": 2,
|
5384
|
+
# "repaid": "110.506649705159",
|
5385
|
+
# "repaid_interest": "0.046985294841",
|
5386
|
+
# "unpaid_interest": "0.0000074393366667"
|
5387
|
+
# }
|
5388
|
+
#
|
5389
|
+
# Isolated
|
5390
|
+
#
|
5391
|
+
# {
|
5392
|
+
# "id": "34267567",
|
5393
|
+
# "create_time": "1656394778",
|
5394
|
+
# "expire_time": "1657258778",
|
5395
|
+
# "status": "loaned",
|
5396
|
+
# "side": "borrow",
|
5397
|
+
# "currency": "USDT",
|
5398
|
+
# "rate": "0.0002",
|
5399
|
+
# "amount": "100",
|
5400
|
+
# "days": 10,
|
5401
|
+
# "auto_renew": False,
|
5402
|
+
# "currency_pair": "LTC_USDT",
|
5403
|
+
# "left": "0",
|
5404
|
+
# "repaid": "0",
|
5405
|
+
# "paid_interest": "0",
|
5406
|
+
# "unpaid_interest": "0.003333333333"
|
5407
|
+
# }
|
5408
|
+
#
|
5409
|
+
return self.parse_margin_loan(response, currency)
|
5410
|
+
|
5411
|
+
def parse_margin_loan(self, info, currency: Currency = None):
|
5412
|
+
#
|
5413
|
+
# Cross
|
5414
|
+
#
|
5415
|
+
# {
|
5416
|
+
# "id": "17",
|
5417
|
+
# "create_time": 1620381696159,
|
5418
|
+
# "update_time": 1620381696159,
|
5419
|
+
# "currency": "EOS",
|
5420
|
+
# "amount": "110.553635",
|
5421
|
+
# "text": "web",
|
5422
|
+
# "status": 2,
|
5423
|
+
# "repaid": "110.506649705159",
|
5424
|
+
# "repaid_interest": "0.046985294841",
|
5425
|
+
# "unpaid_interest": "0.0000074393366667"
|
5426
|
+
# }
|
5427
|
+
#
|
5428
|
+
# Isolated
|
5429
|
+
#
|
5430
|
+
# {
|
5431
|
+
# "id": "34267567",
|
5432
|
+
# "create_time": "1656394778",
|
5433
|
+
# "expire_time": "1657258778",
|
5434
|
+
# "status": "loaned",
|
5435
|
+
# "side": "borrow",
|
5436
|
+
# "currency": "USDT",
|
5437
|
+
# "rate": "0.0002",
|
5438
|
+
# "amount": "100",
|
5439
|
+
# "days": 10,
|
5440
|
+
# "auto_renew": False,
|
5441
|
+
# "currency_pair": "LTC_USDT",
|
5442
|
+
# "left": "0",
|
5443
|
+
# "repaid": "0",
|
5444
|
+
# "paid_interest": "0",
|
5445
|
+
# "unpaid_interest": "0.003333333333"
|
5446
|
+
# }
|
5447
|
+
#
|
5448
|
+
marginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode', 'cross')
|
5449
|
+
timestamp = self.safe_integer(info, 'create_time')
|
5450
|
+
if marginMode == 'isolated':
|
5451
|
+
timestamp = self.safe_timestamp(info, 'create_time')
|
5452
|
+
currencyId = self.safe_string(info, 'currency')
|
5453
|
+
marketId = self.safe_string(info, 'currency_pair')
|
5454
|
+
return {
|
5455
|
+
'id': self.safe_integer(info, 'id'),
|
5456
|
+
'currency': self.safe_currency_code(currencyId, currency),
|
5457
|
+
'amount': self.safe_number(info, 'amount'),
|
5458
|
+
'symbol': self.safe_symbol(marketId, None, '_', 'margin'),
|
5459
|
+
'timestamp': timestamp,
|
5460
|
+
'datetime': self.iso8601(timestamp),
|
5461
|
+
'info': info,
|
5462
|
+
}
|
5463
|
+
|
5267
5464
|
def sign(self, path, api=[], method='GET', params={}, headers=None, body=None):
|
5268
5465
|
authentication = api[0] # public, private
|
5269
5466
|
type = api[1] # spot, margin, future, delivery
|