ccxt-ir 4.3.46.0.3__py2.py3-none-any.whl → 4.5.0__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +39 -35
- ccxt/abantether.py +8 -8
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/apex.py +31 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +106 -48
- ccxt/abstract/binancecoinm.py +106 -48
- ccxt/abstract/binanceus.py +141 -83
- ccxt/abstract/binanceusdm.py +106 -48
- ccxt/abstract/bingx.py +50 -1
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +67 -0
- ccxt/abstract/bitmart.py +19 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitrue.py +68 -68
- ccxt/abstract/bitstamp.py +1 -0
- ccxt/abstract/blofin.py +30 -0
- ccxt/abstract/btcbox.py +2 -0
- ccxt/abstract/bybit.py +28 -13
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbaseexchange.py +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/cryptocom.py +16 -0
- ccxt/abstract/cryptomus.py +20 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/derive.py +117 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/foxbit.py +26 -0
- ccxt/abstract/gate.py +19 -0
- ccxt/abstract/gateio.py +19 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +1 -0
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +10 -0
- ccxt/abstract/kucoinfutures.py +18 -0
- ccxt/abstract/lbank.py +2 -1
- ccxt/abstract/luno.py +1 -0
- ccxt/abstract/mexc.py +2 -0
- ccxt/abstract/modetrade.py +119 -0
- ccxt/abstract/myokx.py +349 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +25 -0
- ccxt/abstract/okxus.py +349 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/paradex.py +23 -0
- ccxt/abstract/phemex.py +2 -0
- ccxt/abstract/poloniex.py +36 -0
- ccxt/abstract/tradeogre.py +3 -1
- ccxt/abstract/upbit.py +51 -34
- ccxt/abstract/whitebit.py +16 -0
- ccxt/abstract/woo.py +64 -6
- ccxt/abstract/xt.py +10 -5
- ccxt/afratether.py +7 -7
- ccxt/alpaca.py +828 -51
- ccxt/apex.py +1875 -0
- ccxt/arzinja.py +7 -7
- ccxt/arzplus.py +9 -9
- ccxt/ascendex.py +501 -306
- ccxt/async_support/__init__.py +39 -35
- ccxt/async_support/abantether.py +8 -8
- ccxt/async_support/afratether.py +9 -9
- ccxt/async_support/alpaca.py +828 -51
- ccxt/async_support/apex.py +1875 -0
- ccxt/async_support/arzinja.py +10 -10
- ccxt/async_support/arzplus.py +12 -12
- ccxt/async_support/ascendex.py +502 -306
- ccxt/async_support/base/exchange.py +303 -89
- ccxt/async_support/base/ws/cache.py +9 -3
- ccxt/async_support/base/ws/client.py +173 -38
- ccxt/async_support/base/ws/future.py +25 -37
- ccxt/async_support/bequant.py +5 -3
- ccxt/async_support/bigone.py +279 -144
- ccxt/async_support/binance.py +2347 -1158
- ccxt/async_support/binancecoinm.py +9 -3
- ccxt/async_support/binanceus.py +17 -3
- ccxt/async_support/binanceusdm.py +9 -4
- ccxt/async_support/bingx.py +2962 -920
- ccxt/async_support/bit2c.py +147 -27
- ccxt/async_support/bitbank.py +151 -23
- ccxt/async_support/bitbns.py +104 -30
- ccxt/async_support/bitfinex.py +3291 -1113
- ccxt/async_support/bitflyer.py +202 -27
- ccxt/async_support/bitget.py +3683 -1538
- ccxt/async_support/bithumb.py +195 -38
- ccxt/async_support/bitimen.py +12 -12
- ccxt/async_support/bitir.py +38 -38
- ccxt/async_support/bitmart.py +1288 -350
- ccxt/async_support/bitmex.py +260 -75
- ccxt/async_support/bitopro.py +262 -62
- ccxt/async_support/bitpin.py +17 -16
- ccxt/async_support/bitrue.py +459 -290
- ccxt/async_support/bitso.py +199 -54
- ccxt/async_support/bitstamp.py +230 -96
- ccxt/async_support/bitteam.py +167 -25
- ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
- ccxt/async_support/bitvavo.py +213 -49
- ccxt/async_support/blockchaincom.py +160 -46
- ccxt/async_support/blofin.py +502 -120
- ccxt/async_support/btcalpha.py +169 -31
- ccxt/async_support/btcbox.py +292 -23
- ccxt/async_support/btcmarkets.py +211 -58
- ccxt/async_support/btcturk.py +161 -38
- ccxt/async_support/bybit.py +1775 -1030
- ccxt/async_support/cex.py +1440 -1303
- ccxt/async_support/coinbase.py +724 -212
- ccxt/async_support/coinbaseadvanced.py +2 -1
- ccxt/async_support/coinbaseexchange.py +388 -89
- ccxt/async_support/coinbaseinternational.py +412 -57
- ccxt/async_support/coincatch.py +177 -78
- ccxt/async_support/coincheck.py +135 -19
- ccxt/async_support/coinex.py +606 -232
- ccxt/async_support/coinmate.py +189 -63
- ccxt/async_support/coinmetro.py +195 -54
- ccxt/async_support/coinone.py +158 -51
- ccxt/async_support/coinsph.py +336 -61
- ccxt/async_support/coinspot.py +151 -52
- ccxt/async_support/cryptocom.py +661 -111
- ccxt/async_support/cryptomus.py +1137 -0
- ccxt/async_support/defx.py +2071 -0
- ccxt/async_support/delta.py +299 -99
- ccxt/async_support/deribit.py +348 -126
- ccxt/async_support/derive.py +2572 -0
- ccxt/async_support/digifinex.py +430 -214
- ccxt/async_support/ellipx.py +2029 -0
- ccxt/async_support/eterex.py +10 -10
- ccxt/async_support/excoino.py +31 -31
- ccxt/async_support/exir.py +14 -14
- ccxt/async_support/exmo.py +344 -131
- ccxt/async_support/exnovin.py +10 -10
- ccxt/async_support/farhadexchange.py +12 -12
- ccxt/async_support/fmfwio.py +2 -1
- ccxt/async_support/foxbit.py +1935 -0
- ccxt/async_support/gate.py +1351 -529
- ccxt/async_support/gateio.py +2 -1
- ccxt/async_support/gemini.py +144 -39
- ccxt/async_support/hashkey.py +152 -109
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/hitbtc.py +395 -167
- ccxt/async_support/hitobit.py +12 -12
- ccxt/async_support/hollaex.py +307 -119
- ccxt/async_support/htx.py +851 -383
- ccxt/async_support/huobi.py +2 -1
- ccxt/async_support/hyperliquid.py +1848 -536
- ccxt/async_support/independentreserve.py +288 -15
- ccxt/async_support/indodax.py +190 -33
- ccxt/async_support/jibitex.py +12 -12
- ccxt/async_support/kraken.py +795 -351
- ccxt/async_support/krakenfutures.py +214 -62
- ccxt/async_support/kucoin.py +715 -396
- ccxt/async_support/kucoinfutures.py +652 -89
- ccxt/async_support/latoken.py +217 -113
- ccxt/async_support/lbank.py +425 -97
- ccxt/async_support/luno.py +382 -35
- ccxt/async_support/mercado.py +113 -6
- ccxt/async_support/mexc.py +874 -437
- ccxt/async_support/modetrade.py +2818 -0
- ccxt/async_support/myokx.py +54 -0
- ccxt/async_support/ndax.py +221 -64
- ccxt/async_support/nobitex.py +31 -37
- ccxt/async_support/novadax.py +190 -34
- ccxt/async_support/oceanex.py +217 -28
- ccxt/async_support/okcoin.py +253 -145
- ccxt/async_support/okexchange.py +11 -11
- ccxt/async_support/okx.py +1088 -351
- ccxt/async_support/okxus.py +54 -0
- ccxt/async_support/ompfinex.py +25 -24
- ccxt/async_support/onetrading.py +213 -392
- ccxt/async_support/oxfun.py +245 -166
- ccxt/async_support/p2b.py +151 -29
- ccxt/async_support/paradex.py +562 -49
- ccxt/async_support/paymium.py +82 -19
- ccxt/async_support/phemex.py +713 -172
- ccxt/async_support/poloniex.py +1602 -283
- ccxt/async_support/probit.py +224 -95
- ccxt/async_support/ramzinex.py +30 -27
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +14 -13
- ccxt/async_support/tetherland.py +9 -9
- ccxt/async_support/timex.py +210 -51
- ccxt/async_support/tokocrypto.py +167 -47
- ccxt/async_support/tradeogre.py +266 -31
- ccxt/async_support/twox.py +9 -9
- ccxt/async_support/ubitex.py +12 -12
- ccxt/async_support/upbit.py +568 -165
- ccxt/async_support/vertex.py +160 -32
- ccxt/async_support/wallex.py +12 -12
- ccxt/async_support/wavesexchange.py +165 -30
- ccxt/async_support/whitebit.py +975 -127
- ccxt/async_support/woo.py +1918 -1016
- ccxt/async_support/woofipro.py +433 -141
- ccxt/async_support/xt.py +649 -193
- ccxt/async_support/yobit.py +195 -70
- ccxt/async_support/zaif.py +91 -15
- ccxt/async_support/zonda.py +151 -36
- ccxt/base/decimal_to_precision.py +14 -10
- ccxt/base/errors.py +49 -18
- ccxt/base/exchange.py +1556 -450
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +114 -6
- ccxt/bequant.py +5 -3
- ccxt/bigone.py +279 -144
- ccxt/binance.py +2347 -1158
- ccxt/binancecoinm.py +9 -3
- ccxt/binanceus.py +17 -3
- ccxt/binanceusdm.py +9 -4
- ccxt/bingx.py +2962 -920
- ccxt/bit2c.py +147 -27
- ccxt/bitbank.py +151 -23
- ccxt/bitbns.py +104 -30
- ccxt/bitfinex.py +3290 -1113
- ccxt/bitflyer.py +202 -27
- ccxt/bitget.py +3683 -1538
- ccxt/bithumb.py +194 -38
- ccxt/bitimen.py +9 -9
- ccxt/bitir.py +35 -35
- ccxt/bitmart.py +1288 -350
- ccxt/bitmex.py +260 -75
- ccxt/bitopro.py +262 -62
- ccxt/bitpin.py +15 -14
- ccxt/bitrue.py +459 -290
- ccxt/bitso.py +199 -54
- ccxt/bitstamp.py +230 -96
- ccxt/bitteam.py +167 -25
- ccxt/{huobijp.py → bittrade.py} +158 -30
- ccxt/bitvavo.py +213 -49
- ccxt/blockchaincom.py +160 -46
- ccxt/blofin.py +502 -120
- ccxt/btcalpha.py +169 -31
- ccxt/btcbox.py +291 -23
- ccxt/btcmarkets.py +211 -58
- ccxt/btcturk.py +161 -38
- ccxt/bybit.py +1775 -1030
- ccxt/cex.py +1439 -1303
- ccxt/coinbase.py +724 -212
- ccxt/coinbaseadvanced.py +2 -1
- ccxt/coinbaseexchange.py +388 -89
- ccxt/coinbaseinternational.py +412 -57
- ccxt/coincatch.py +177 -78
- ccxt/coincheck.py +135 -19
- ccxt/coinex.py +606 -232
- ccxt/coinmate.py +189 -63
- ccxt/coinmetro.py +194 -54
- ccxt/coinone.py +158 -51
- ccxt/coinsph.py +336 -61
- ccxt/coinspot.py +151 -52
- ccxt/cryptocom.py +661 -111
- ccxt/cryptomus.py +1137 -0
- ccxt/defx.py +2070 -0
- ccxt/delta.py +299 -99
- ccxt/deribit.py +348 -126
- ccxt/derive.py +2571 -0
- ccxt/digifinex.py +430 -214
- ccxt/ellipx.py +2029 -0
- ccxt/eterex.py +7 -7
- ccxt/excoino.py +29 -29
- ccxt/exir.py +11 -11
- ccxt/exmo.py +343 -131
- ccxt/exnovin.py +8 -8
- ccxt/farhadexchange.py +10 -10
- ccxt/fmfwio.py +2 -1
- ccxt/foxbit.py +1935 -0
- ccxt/gate.py +1351 -529
- ccxt/gateio.py +2 -1
- ccxt/gemini.py +144 -39
- ccxt/hashkey.py +152 -109
- ccxt/hibachi.py +2079 -0
- ccxt/hitbtc.py +395 -167
- ccxt/hitobit.py +9 -9
- ccxt/hollaex.py +307 -119
- ccxt/htx.py +851 -383
- ccxt/huobi.py +2 -1
- ccxt/hyperliquid.py +1848 -536
- ccxt/independentreserve.py +287 -15
- ccxt/indodax.py +190 -33
- ccxt/jibitex.py +9 -9
- ccxt/kraken.py +794 -351
- ccxt/krakenfutures.py +214 -62
- ccxt/kucoin.py +715 -396
- ccxt/kucoinfutures.py +652 -89
- ccxt/latoken.py +217 -113
- ccxt/lbank.py +425 -97
- ccxt/luno.py +382 -35
- ccxt/mercado.py +113 -6
- ccxt/mexc.py +873 -437
- ccxt/modetrade.py +2818 -0
- ccxt/myokx.py +54 -0
- ccxt/ndax.py +221 -64
- ccxt/nobitex.py +29 -35
- ccxt/novadax.py +190 -34
- ccxt/oceanex.py +217 -28
- ccxt/okcoin.py +253 -145
- ccxt/okexchange.py +9 -9
- ccxt/okx.py +1088 -351
- ccxt/okxus.py +54 -0
- ccxt/ompfinex.py +22 -21
- ccxt/onetrading.py +213 -392
- ccxt/oxfun.py +245 -166
- ccxt/p2b.py +151 -29
- ccxt/paradex.py +562 -49
- ccxt/paymium.py +82 -19
- ccxt/phemex.py +712 -172
- ccxt/poloniex.py +1601 -283
- ccxt/pro/__init__.py +76 -17
- ccxt/pro/alpaca.py +21 -6
- ccxt/pro/apex.py +984 -0
- ccxt/pro/ascendex.py +58 -10
- ccxt/pro/bequant.py +6 -1
- ccxt/pro/binance.py +728 -156
- ccxt/pro/binancecoinm.py +6 -2
- ccxt/pro/binanceus.py +8 -4
- ccxt/pro/binanceusdm.py +7 -2
- ccxt/pro/bingx.py +333 -142
- ccxt/pro/bitfinex.py +727 -262
- ccxt/pro/bitget.py +570 -79
- ccxt/pro/bithumb.py +20 -6
- ccxt/pro/bitmart.py +216 -87
- ccxt/pro/bitmex.py +47 -9
- ccxt/pro/bitopro.py +26 -14
- ccxt/pro/bitrue.py +22 -22
- ccxt/pro/bitstamp.py +54 -21
- ccxt/pro/{huobijp.py → bittrade.py} +7 -6
- ccxt/pro/bitvavo.py +191 -67
- ccxt/pro/blockchaincom.py +21 -8
- ccxt/pro/blofin.py +9 -1
- ccxt/pro/bybit.py +632 -245
- ccxt/pro/cex.py +59 -24
- ccxt/pro/coinbase.py +102 -73
- ccxt/pro/coinbaseadvanced.py +2 -1
- ccxt/pro/coinbaseexchange.py +8 -8
- ccxt/pro/coinbaseinternational.py +181 -25
- ccxt/pro/coincatch.py +6 -7
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +967 -665
- ccxt/pro/coinone.py +16 -9
- ccxt/pro/cryptocom.py +448 -45
- ccxt/pro/defx.py +831 -0
- ccxt/pro/deribit.py +150 -14
- ccxt/pro/derive.py +704 -0
- ccxt/pro/exmo.py +239 -6
- ccxt/pro/gate.py +623 -65
- ccxt/pro/gateio.py +2 -1
- ccxt/pro/gemini.py +27 -11
- ccxt/pro/hashkey.py +2 -2
- ccxt/pro/hitbtc.py +196 -91
- ccxt/pro/hollaex.py +23 -7
- ccxt/pro/htx.py +51 -14
- ccxt/pro/huobi.py +2 -1
- ccxt/pro/hyperliquid.py +591 -27
- ccxt/pro/independentreserve.py +9 -6
- ccxt/pro/kraken.py +640 -320
- ccxt/pro/krakenfutures.py +62 -35
- ccxt/pro/kucoin.py +267 -46
- ccxt/pro/kucoinfutures.py +165 -21
- ccxt/pro/lbank.py +102 -21
- ccxt/pro/luno.py +12 -8
- ccxt/pro/mexc.py +877 -111
- ccxt/pro/modetrade.py +1271 -0
- ccxt/pro/myokx.py +38 -0
- ccxt/pro/ndax.py +15 -2
- ccxt/pro/okcoin.py +23 -4
- ccxt/pro/okx.py +573 -98
- ccxt/pro/okxus.py +38 -0
- ccxt/pro/onetrading.py +30 -13
- ccxt/pro/oxfun.py +131 -27
- ccxt/pro/p2b.py +88 -22
- ccxt/pro/paradex.py +3 -3
- ccxt/pro/phemex.py +75 -21
- ccxt/pro/poloniex.py +124 -41
- ccxt/pro/probit.py +87 -80
- ccxt/pro/tradeogre.py +272 -0
- ccxt/pro/upbit.py +152 -12
- ccxt/pro/vertex.py +8 -3
- ccxt/pro/whitebit.py +58 -5
- ccxt/pro/woo.py +228 -37
- ccxt/pro/woofipro.py +106 -18
- ccxt/pro/xt.py +111 -5
- ccxt/probit.py +224 -95
- ccxt/protobuf/__init__.py +0 -0
- ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
- ccxt/protobuf/mexc/__init__.py +0 -0
- ccxt/ramzinex.py +28 -25
- ccxt/sarmayex.py +7 -7
- ccxt/sarrafex.py +10 -10
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/tabdeal.py +12 -11
- ccxt/test/tests_async.py +261 -57
- ccxt/test/tests_helpers.py +1 -3
- ccxt/test/tests_init.py +4 -3
- ccxt/test/tests_sync.py +261 -57
- ccxt/tetherland.py +7 -7
- ccxt/timex.py +210 -51
- ccxt/tokocrypto.py +167 -47
- ccxt/tradeogre.py +266 -31
- ccxt/twox.py +7 -7
- ccxt/ubitex.py +9 -9
- ccxt/upbit.py +568 -165
- ccxt/vertex.py +160 -32
- ccxt/wallex.py +9 -9
- ccxt/wavesexchange.py +165 -30
- ccxt/whitebit.py +975 -127
- ccxt/woo.py +1917 -1016
- ccxt/woofipro.py +432 -141
- ccxt/xt.py +649 -193
- ccxt/yobit.py +194 -70
- ccxt/zaif.py +91 -15
- ccxt/zonda.py +151 -36
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.0.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
- ccxt/__test__.py +0 -7
- ccxt/abstract/ace.py +0 -15
- ccxt/abstract/bitbay.py +0 -53
- ccxt/abstract/bitcoincom.py +0 -115
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/bitpanda.py +0 -35
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/coinlist.py +0 -54
- ccxt/abstract/currencycom.py +0 -68
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/abstract/idex.py +0 -26
- ccxt/abstract/kuna.py +0 -182
- ccxt/abstract/lykke.py +0 -29
- ccxt/abstract/poloniexfutures.py +0 -48
- ccxt/abstract/wazirx.py +0 -30
- ccxt/ace.py +0 -1012
- ccxt/async_support/ace.py +0 -1012
- ccxt/async_support/base/ws/aiohttp_client.py +0 -125
- ccxt/async_support/base/ws/fast_client.py +0 -96
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitcoincom.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3552
- ccxt/async_support/bitpanda.py +0 -16
- ccxt/async_support/bl3p.py +0 -485
- ccxt/async_support/coinlist.py +0 -2243
- ccxt/async_support/currencycom.py +0 -1950
- ccxt/async_support/hitbtc3.py +0 -16
- ccxt/async_support/idex.py +0 -1766
- ccxt/async_support/kuna.py +0 -1841
- ccxt/async_support/lykke.py +0 -1270
- ccxt/async_support/poloniexfutures.py +0 -1717
- ccxt/async_support/wazirx.py +0 -1224
- ccxt/bitbay.py +0 -17
- ccxt/bitcoincom.py +0 -17
- ccxt/bitfinex2.py +0 -3552
- ccxt/bitpanda.py +0 -16
- ccxt/bl3p.py +0 -485
- ccxt/coinlist.py +0 -2243
- ccxt/currencycom.py +0 -1950
- ccxt/hitbtc3.py +0 -16
- ccxt/idex.py +0 -1766
- ccxt/kuna.py +0 -1841
- ccxt/lykke.py +0 -1270
- ccxt/poloniexfutures.py +0 -1717
- ccxt/pro/bitcoincom.py +0 -34
- ccxt/pro/bitfinex2.py +0 -1083
- ccxt/pro/bitpanda.py +0 -15
- ccxt/pro/currencycom.py +0 -536
- ccxt/pro/idex.py +0 -672
- ccxt/pro/poloniexfutures.py +0 -990
- ccxt/pro/wazirx.py +0 -749
- ccxt/test/base/__init__.py +0 -29
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -109
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -31
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_liquidation.py +0 -50
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -193
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -33
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -69
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -353
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -92
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- ccxt/test/test_async.py +0 -1649
- ccxt/test/test_sync.py +0 -1648
- ccxt/wazirx.py +0 -1224
- ccxt_ir-4.3.46.0.3.dist-info/RECORD +0 -773
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/hitbtc.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.hitbtc import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Leverage, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
|
9
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, Leverage, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, OrderBooks, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -28,7 +28,7 @@ from ccxt.base.precise import Precise
|
|
|
28
28
|
|
|
29
29
|
class hitbtc(Exchange, ImplicitAPI):
|
|
30
30
|
|
|
31
|
-
def describe(self):
|
|
31
|
+
def describe(self) -> Any:
|
|
32
32
|
return self.deep_extend(super(hitbtc, self).describe(), {
|
|
33
33
|
'id': 'hitbtc',
|
|
34
34
|
'name': 'HitBTC',
|
|
@@ -44,7 +44,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
44
44
|
'margin': True,
|
|
45
45
|
'swap': True,
|
|
46
46
|
'future': False,
|
|
47
|
-
'option':
|
|
47
|
+
'option': False,
|
|
48
48
|
'addMargin': True,
|
|
49
49
|
'cancelAllOrders': True,
|
|
50
50
|
'cancelOrder': True,
|
|
@@ -66,6 +66,8 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
66
66
|
'fetchCrossBorrowRates': False,
|
|
67
67
|
'fetchCurrencies': True,
|
|
68
68
|
'fetchDepositAddress': True,
|
|
69
|
+
'fetchDepositAddresses': False,
|
|
70
|
+
'fetchDepositAddressesByNetwork': False,
|
|
69
71
|
'fetchDeposits': True,
|
|
70
72
|
'fetchDepositsWithdrawals': True,
|
|
71
73
|
'fetchDepositWithdrawFee': 'emulated',
|
|
@@ -74,6 +76,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
74
76
|
'fetchFundingRate': True,
|
|
75
77
|
'fetchFundingRateHistory': True,
|
|
76
78
|
'fetchFundingRates': True,
|
|
79
|
+
'fetchGreeks': False,
|
|
77
80
|
'fetchIndexOHLCV': True,
|
|
78
81
|
'fetchIsolatedBorrowRate': False,
|
|
79
82
|
'fetchIsolatedBorrowRates': False,
|
|
@@ -86,12 +89,16 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
86
89
|
'fetchMarkets': True,
|
|
87
90
|
'fetchMarkOHLCV': True,
|
|
88
91
|
'fetchMyLiquidations': False,
|
|
92
|
+
'fetchMySettlementHistory': False,
|
|
89
93
|
'fetchMyTrades': True,
|
|
90
94
|
'fetchOHLCV': True,
|
|
91
95
|
'fetchOpenInterest': True,
|
|
92
96
|
'fetchOpenInterestHistory': False,
|
|
97
|
+
'fetchOpenInterests': True,
|
|
93
98
|
'fetchOpenOrder': True,
|
|
94
99
|
'fetchOpenOrders': True,
|
|
100
|
+
'fetchOption': False,
|
|
101
|
+
'fetchOptionChain': False,
|
|
95
102
|
'fetchOrder': True,
|
|
96
103
|
'fetchOrderBook': True,
|
|
97
104
|
'fetchOrderBooks': True,
|
|
@@ -100,12 +107,14 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
100
107
|
'fetchPosition': True,
|
|
101
108
|
'fetchPositions': True,
|
|
102
109
|
'fetchPremiumIndexOHLCV': True,
|
|
110
|
+
'fetchSettlementHistory': False,
|
|
103
111
|
'fetchTicker': True,
|
|
104
112
|
'fetchTickers': True,
|
|
105
113
|
'fetchTrades': True,
|
|
106
114
|
'fetchTradingFee': True,
|
|
107
115
|
'fetchTradingFees': True,
|
|
108
116
|
'fetchTransactions': 'emulated',
|
|
117
|
+
'fetchVolatilityHistory': False,
|
|
109
118
|
'fetchWithdrawals': True,
|
|
110
119
|
'reduceMargin': True,
|
|
111
120
|
'sandbox': True,
|
|
@@ -301,6 +310,109 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
301
310
|
},
|
|
302
311
|
},
|
|
303
312
|
},
|
|
313
|
+
'features': {
|
|
314
|
+
'default': {
|
|
315
|
+
'sandbox': True,
|
|
316
|
+
'createOrder': {
|
|
317
|
+
'marginMode': False,
|
|
318
|
+
'triggerPrice': True,
|
|
319
|
+
'triggerPriceType': None,
|
|
320
|
+
'triggerDirection': False,
|
|
321
|
+
'stopLossPrice': False, # todo
|
|
322
|
+
'takeProfitPrice': False, # todo
|
|
323
|
+
'attachedStopLossTakeProfit': None,
|
|
324
|
+
'timeInForce': {
|
|
325
|
+
'IOC': True,
|
|
326
|
+
'FOK': True,
|
|
327
|
+
'PO': True,
|
|
328
|
+
'GTD': True,
|
|
329
|
+
},
|
|
330
|
+
'hedged': False,
|
|
331
|
+
'selfTradePrevention': False,
|
|
332
|
+
'trailing': False,
|
|
333
|
+
'leverage': False,
|
|
334
|
+
'marketBuyByCost': False,
|
|
335
|
+
'marketBuyRequiresPrice': False,
|
|
336
|
+
'iceberg': True,
|
|
337
|
+
},
|
|
338
|
+
'createOrders': None,
|
|
339
|
+
'fetchMyTrades': {
|
|
340
|
+
'marginMode': True,
|
|
341
|
+
'limit': 1000,
|
|
342
|
+
'daysBack': 100000,
|
|
343
|
+
'untilDays': 100000,
|
|
344
|
+
'symbolRequired': False,
|
|
345
|
+
'marketType': True,
|
|
346
|
+
},
|
|
347
|
+
'fetchOrder': {
|
|
348
|
+
'marginMode': True,
|
|
349
|
+
'trigger': False,
|
|
350
|
+
'trailing': False,
|
|
351
|
+
'symbolRequired': False,
|
|
352
|
+
'marketType': True,
|
|
353
|
+
},
|
|
354
|
+
'fetchOpenOrders': {
|
|
355
|
+
'marginMode': True,
|
|
356
|
+
'limit': 1000,
|
|
357
|
+
'trigger': False,
|
|
358
|
+
'trailing': False,
|
|
359
|
+
'symbolRequired': False,
|
|
360
|
+
'marketType': True,
|
|
361
|
+
},
|
|
362
|
+
'fetchOrders': None,
|
|
363
|
+
'fetchClosedOrders': {
|
|
364
|
+
'marginMode': True,
|
|
365
|
+
'limit': 1000,
|
|
366
|
+
'daysBack': 100000, # todo
|
|
367
|
+
'daysBackCanceled': 1, # todo
|
|
368
|
+
'untilDays': 100000, # todo
|
|
369
|
+
'trigger': False,
|
|
370
|
+
'trailing': False,
|
|
371
|
+
'symbolRequired': False,
|
|
372
|
+
'marketType': True,
|
|
373
|
+
},
|
|
374
|
+
'fetchOHLCV': {
|
|
375
|
+
'limit': 1000,
|
|
376
|
+
},
|
|
377
|
+
},
|
|
378
|
+
'spot': {
|
|
379
|
+
'extends': 'default',
|
|
380
|
+
},
|
|
381
|
+
'forDerivatives': {
|
|
382
|
+
'extends': 'default',
|
|
383
|
+
'createOrder': {
|
|
384
|
+
'marginMode': True,
|
|
385
|
+
},
|
|
386
|
+
'fetchOrder': {
|
|
387
|
+
'marginMode': False,
|
|
388
|
+
},
|
|
389
|
+
'fetchMyTrades': {
|
|
390
|
+
'marginMode': False,
|
|
391
|
+
},
|
|
392
|
+
'fetchOpenOrders': {
|
|
393
|
+
'marginMode': False,
|
|
394
|
+
},
|
|
395
|
+
'fetchClosedOrders': {
|
|
396
|
+
'marginMode': False,
|
|
397
|
+
},
|
|
398
|
+
},
|
|
399
|
+
'swap': {
|
|
400
|
+
'linear': {
|
|
401
|
+
'extends': 'forDerivatives',
|
|
402
|
+
},
|
|
403
|
+
'inverse': {
|
|
404
|
+
'extends': 'forDerivatives',
|
|
405
|
+
},
|
|
406
|
+
},
|
|
407
|
+
'future': {
|
|
408
|
+
'linear': {
|
|
409
|
+
'extends': 'forDerivatives',
|
|
410
|
+
},
|
|
411
|
+
'inverse': {
|
|
412
|
+
'extends': 'forDerivatives',
|
|
413
|
+
},
|
|
414
|
+
},
|
|
415
|
+
},
|
|
304
416
|
'timeframes': {
|
|
305
417
|
'1m': 'M1',
|
|
306
418
|
'3m': 'M3',
|
|
@@ -670,7 +782,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
670
782
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
671
783
|
"""
|
|
672
784
|
retrieves data on all markets for hitbtc
|
|
673
|
-
|
|
785
|
+
|
|
786
|
+
https://api.hitbtc.com/#symbols
|
|
787
|
+
|
|
674
788
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
675
789
|
:returns dict[]: an array of objects representing market data
|
|
676
790
|
"""
|
|
@@ -807,35 +921,54 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
807
921
|
def fetch_currencies(self, params={}) -> Currencies:
|
|
808
922
|
"""
|
|
809
923
|
fetches all available currencies on an exchange
|
|
810
|
-
|
|
924
|
+
|
|
925
|
+
https://api.hitbtc.com/#currencies
|
|
926
|
+
|
|
811
927
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
812
928
|
:returns dict: an associative dictionary of currencies
|
|
813
929
|
"""
|
|
814
930
|
response = self.publicGetPublicCurrency(params)
|
|
815
931
|
#
|
|
816
|
-
#
|
|
817
|
-
#
|
|
818
|
-
#
|
|
819
|
-
#
|
|
820
|
-
#
|
|
821
|
-
#
|
|
822
|
-
#
|
|
823
|
-
#
|
|
824
|
-
#
|
|
825
|
-
#
|
|
826
|
-
#
|
|
827
|
-
#
|
|
828
|
-
#
|
|
829
|
-
#
|
|
830
|
-
#
|
|
831
|
-
#
|
|
832
|
-
#
|
|
833
|
-
#
|
|
834
|
-
#
|
|
835
|
-
#
|
|
836
|
-
#
|
|
837
|
-
#
|
|
838
|
-
#
|
|
932
|
+
# {
|
|
933
|
+
# "DFC": {
|
|
934
|
+
# "full_name": "DeFiScale",
|
|
935
|
+
# "crypto": True,
|
|
936
|
+
# "payin_enabled": False,
|
|
937
|
+
# "payout_enabled": True,
|
|
938
|
+
# "transfer_enabled": False,
|
|
939
|
+
# "transfer_to_wallet_enabled": True,
|
|
940
|
+
# "transfer_to_exchange_enabled": False,
|
|
941
|
+
# "sign": "D",
|
|
942
|
+
# "crypto_payment_id_name": "",
|
|
943
|
+
# "crypto_explorer": "https://etherscan.io/tx/{tx}",
|
|
944
|
+
# "precision_transfer": "0.00000001",
|
|
945
|
+
# "delisted": False,
|
|
946
|
+
# "networks": [
|
|
947
|
+
# {
|
|
948
|
+
# "code": "ETH",
|
|
949
|
+
# "network_name": "Ethereum",
|
|
950
|
+
# "network": "ETH",
|
|
951
|
+
# "protocol": "ERC-20",
|
|
952
|
+
# "default": True,
|
|
953
|
+
# "is_ens_available": True,
|
|
954
|
+
# "payin_enabled": True,
|
|
955
|
+
# "payout_enabled": True,
|
|
956
|
+
# "precision_payout": "0.000000000000000001",
|
|
957
|
+
# "payout_fee": "277000.0000000000",
|
|
958
|
+
# "payout_is_payment_id": False,
|
|
959
|
+
# "payin_payment_id": False,
|
|
960
|
+
# "payin_confirmations": "2",
|
|
961
|
+
# "contract_address": "0x1b2a76da77d03b7fc21189d9838f55bd849014af",
|
|
962
|
+
# "crypto_payment_id_name": "",
|
|
963
|
+
# "crypto_explorer": "https://etherscan.io/tx/{tx}",
|
|
964
|
+
# "is_multichain": True,
|
|
965
|
+
# "asset_id": {
|
|
966
|
+
# "contract_address": "0x1b2a76da77d03b7fc21189d9838f55bd849014af"
|
|
967
|
+
# }
|
|
968
|
+
# }
|
|
969
|
+
# ]
|
|
970
|
+
# },
|
|
971
|
+
# }
|
|
839
972
|
#
|
|
840
973
|
result: dict = {}
|
|
841
974
|
currencies = list(response.keys())
|
|
@@ -843,43 +976,22 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
843
976
|
currencyId = currencies[i]
|
|
844
977
|
code = self.safe_currency_code(currencyId)
|
|
845
978
|
entry = response[currencyId]
|
|
846
|
-
|
|
847
|
-
precision = self.safe_number(entry, 'precision_transfer')
|
|
848
|
-
payinEnabled = self.safe_bool(entry, 'payin_enabled', False)
|
|
849
|
-
payoutEnabled = self.safe_bool(entry, 'payout_enabled', False)
|
|
850
|
-
transferEnabled = self.safe_bool(entry, 'transfer_enabled', False)
|
|
851
|
-
active = payinEnabled and payoutEnabled and transferEnabled
|
|
852
|
-
rawNetworks = self.safe_value(entry, 'networks', [])
|
|
979
|
+
rawNetworks = self.safe_list(entry, 'networks', [])
|
|
853
980
|
networks: dict = {}
|
|
854
|
-
fee = None
|
|
855
|
-
depositEnabled = None
|
|
856
|
-
withdrawEnabled = None
|
|
857
981
|
for j in range(0, len(rawNetworks)):
|
|
858
982
|
rawNetwork = rawNetworks[j]
|
|
859
983
|
networkId = self.safe_string_2(rawNetwork, 'protocol', 'network')
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
payinEnabledNetwork = self.safe_bool(rawNetwork, 'payin_enabled', False)
|
|
864
|
-
payoutEnabledNetwork = self.safe_bool(rawNetwork, 'payout_enabled', False)
|
|
865
|
-
activeNetwork = payinEnabledNetwork and payoutEnabledNetwork
|
|
866
|
-
if payinEnabledNetwork and not depositEnabled:
|
|
867
|
-
depositEnabled = True
|
|
868
|
-
elif not payinEnabledNetwork:
|
|
869
|
-
depositEnabled = False
|
|
870
|
-
if payoutEnabledNetwork and not withdrawEnabled:
|
|
871
|
-
withdrawEnabled = True
|
|
872
|
-
elif not payoutEnabledNetwork:
|
|
873
|
-
withdrawEnabled = False
|
|
874
|
-
networks[network] = {
|
|
984
|
+
networkCode = self.network_id_to_code(networkId)
|
|
985
|
+
networkCode = networkCode.upper() if (networkCode is not None) else code # is white label, ensure we safeguard from possible bugs
|
|
986
|
+
networks[networkCode] = {
|
|
875
987
|
'info': rawNetwork,
|
|
876
988
|
'id': networkId,
|
|
877
|
-
'network':
|
|
878
|
-
'
|
|
879
|
-
'
|
|
880
|
-
'deposit':
|
|
881
|
-
'withdraw':
|
|
882
|
-
'precision':
|
|
989
|
+
'network': networkCode,
|
|
990
|
+
'active': None,
|
|
991
|
+
'fee': self.safe_number(rawNetwork, 'payout_fee'),
|
|
992
|
+
'deposit': self.safe_bool(rawNetwork, 'payin_enabled'),
|
|
993
|
+
'withdraw': self.safe_bool(rawNetwork, 'payout_enabled'),
|
|
994
|
+
'precision': self.safe_number(rawNetwork, 'precision_payout'),
|
|
883
995
|
'limits': {
|
|
884
996
|
'withdraw': {
|
|
885
997
|
'min': None,
|
|
@@ -887,38 +999,33 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
887
999
|
},
|
|
888
1000
|
},
|
|
889
1001
|
}
|
|
890
|
-
|
|
891
|
-
networksLength = len(networksKeys)
|
|
892
|
-
result[code] = {
|
|
1002
|
+
result[code] = self.safe_currency_structure({
|
|
893
1003
|
'info': entry,
|
|
894
1004
|
'code': code,
|
|
895
1005
|
'id': currencyId,
|
|
896
|
-
'precision':
|
|
897
|
-
'name':
|
|
898
|
-
'active':
|
|
899
|
-
'deposit':
|
|
900
|
-
'withdraw':
|
|
1006
|
+
'precision': self.safe_number(entry, 'precision_transfer'),
|
|
1007
|
+
'name': self.safe_string(entry, 'full_name'),
|
|
1008
|
+
'active': not self.safe_bool(entry, 'delisted'),
|
|
1009
|
+
'deposit': self.safe_bool(entry, 'payin_enabled'),
|
|
1010
|
+
'withdraw': self.safe_bool(entry, 'payout_enabled'),
|
|
901
1011
|
'networks': networks,
|
|
902
|
-
'fee':
|
|
1012
|
+
'fee': None,
|
|
903
1013
|
'limits': {
|
|
904
1014
|
'amount': {
|
|
905
1015
|
'min': None,
|
|
906
1016
|
'max': None,
|
|
907
1017
|
},
|
|
908
1018
|
},
|
|
909
|
-
|
|
1019
|
+
'type': None, # 'crypto' field emits incorrect values
|
|
1020
|
+
})
|
|
910
1021
|
return result
|
|
911
1022
|
|
|
912
|
-
def
|
|
913
|
-
if networkId is None:
|
|
914
|
-
return None
|
|
915
|
-
else:
|
|
916
|
-
return networkId.upper()
|
|
917
|
-
|
|
918
|
-
def create_deposit_address(self, code: str, params={}):
|
|
1023
|
+
def create_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
919
1024
|
"""
|
|
920
1025
|
create a currency deposit address
|
|
921
|
-
|
|
1026
|
+
|
|
1027
|
+
https://api.hitbtc.com/#generate-deposit-crypto-address
|
|
1028
|
+
|
|
922
1029
|
:param str code: unified currency code of the currency for the deposit address
|
|
923
1030
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
924
1031
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
|
@@ -948,10 +1055,12 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
948
1055
|
'info': response,
|
|
949
1056
|
}
|
|
950
1057
|
|
|
951
|
-
def fetch_deposit_address(self, code: str, params={}):
|
|
1058
|
+
def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
952
1059
|
"""
|
|
953
1060
|
fetch the deposit address for a currency associated with self account
|
|
954
|
-
|
|
1061
|
+
|
|
1062
|
+
https://api.hitbtc.com/#get-deposit-crypto-address
|
|
1063
|
+
|
|
955
1064
|
:param str code: unified currency code
|
|
956
1065
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
957
1066
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
|
@@ -979,11 +1088,10 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
979
1088
|
parsedCode = self.safe_currency_code(currencyId)
|
|
980
1089
|
return {
|
|
981
1090
|
'info': response,
|
|
982
|
-
'address': address,
|
|
983
|
-
'tag': tag,
|
|
984
|
-
'code': parsedCode, # kept here for backward-compatibility, but will be removed soon
|
|
985
1091
|
'currency': parsedCode,
|
|
986
1092
|
'network': None,
|
|
1093
|
+
'address': address,
|
|
1094
|
+
'tag': tag,
|
|
987
1095
|
}
|
|
988
1096
|
|
|
989
1097
|
def parse_balance(self, response) -> Balances:
|
|
@@ -1001,9 +1109,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1001
1109
|
def fetch_balance(self, params={}) -> Balances:
|
|
1002
1110
|
"""
|
|
1003
1111
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1112
|
+
|
|
1113
|
+
https://api.hitbtc.com/#wallet-balance
|
|
1114
|
+
https://api.hitbtc.com/#get-spot-trading-balance
|
|
1115
|
+
https://api.hitbtc.com/#get-trading-balance
|
|
1116
|
+
|
|
1007
1117
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1008
1118
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
1009
1119
|
"""
|
|
@@ -1037,7 +1147,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1037
1147
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
1038
1148
|
"""
|
|
1039
1149
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
1040
|
-
|
|
1150
|
+
|
|
1151
|
+
https://api.hitbtc.com/#tickers
|
|
1152
|
+
|
|
1041
1153
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
1042
1154
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1043
1155
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -1066,7 +1178,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1066
1178
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
1067
1179
|
"""
|
|
1068
1180
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
1069
|
-
|
|
1181
|
+
|
|
1182
|
+
https://api.hitbtc.com/#tickers
|
|
1183
|
+
|
|
1070
1184
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
1071
1185
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1072
1186
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -1150,7 +1264,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1150
1264
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
1151
1265
|
"""
|
|
1152
1266
|
get the list of most recent trades for a particular symbol
|
|
1153
|
-
|
|
1267
|
+
|
|
1268
|
+
https://api.hitbtc.com/#trades
|
|
1269
|
+
|
|
1154
1270
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
1155
1271
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
1156
1272
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -1186,9 +1302,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1186
1302
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1187
1303
|
"""
|
|
1188
1304
|
fetch all trades made by the user
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1305
|
+
|
|
1306
|
+
https://api.hitbtc.com/#spot-trades-history
|
|
1307
|
+
https://api.hitbtc.com/#futures-trades-history
|
|
1308
|
+
https://api.hitbtc.com/#margin-trades-history
|
|
1309
|
+
|
|
1192
1310
|
:param str symbol: unified market symbol
|
|
1193
1311
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
1194
1312
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -1290,7 +1408,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1290
1408
|
fee = None
|
|
1291
1409
|
feeCostString = self.safe_string(trade, 'fee')
|
|
1292
1410
|
taker = self.safe_value(trade, 'taker')
|
|
1293
|
-
takerOrMaker
|
|
1411
|
+
takerOrMaker: str
|
|
1294
1412
|
if taker is not None:
|
|
1295
1413
|
takerOrMaker = 'taker' if taker else 'maker'
|
|
1296
1414
|
else:
|
|
@@ -1369,8 +1487,10 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1369
1487
|
|
|
1370
1488
|
def parse_transaction_status(self, status: Str):
|
|
1371
1489
|
statuses: dict = {
|
|
1490
|
+
'CREATED': 'pending',
|
|
1372
1491
|
'PENDING': 'pending',
|
|
1373
1492
|
'FAILED': 'failed',
|
|
1493
|
+
'ROLLED_BACK': 'failed',
|
|
1374
1494
|
'SUCCESS': 'ok',
|
|
1375
1495
|
}
|
|
1376
1496
|
return self.safe_string(statuses, status, status)
|
|
@@ -1469,7 +1589,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1469
1589
|
def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1470
1590
|
"""
|
|
1471
1591
|
fetch history of deposits and withdrawals
|
|
1472
|
-
|
|
1592
|
+
|
|
1593
|
+
https://api.hitbtc.com/#get-transactions-history
|
|
1594
|
+
|
|
1473
1595
|
:param str [code]: unified currency code for the currency of the deposit/withdrawals, default is None
|
|
1474
1596
|
:param int [since]: timestamp in ms of the earliest deposit/withdrawal, default is None
|
|
1475
1597
|
:param int [limit]: max number of deposit/withdrawals to return, default is None
|
|
@@ -1481,7 +1603,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1481
1603
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1482
1604
|
"""
|
|
1483
1605
|
fetch all deposits made to an account
|
|
1484
|
-
|
|
1606
|
+
|
|
1607
|
+
https://api.hitbtc.com/#get-transactions-history
|
|
1608
|
+
|
|
1485
1609
|
:param str code: unified currency code
|
|
1486
1610
|
:param int [since]: the earliest time in ms to fetch deposits for
|
|
1487
1611
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
|
@@ -1493,7 +1617,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1493
1617
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1494
1618
|
"""
|
|
1495
1619
|
fetch all withdrawals made from an account
|
|
1496
|
-
|
|
1620
|
+
|
|
1621
|
+
https://api.hitbtc.com/#get-transactions-history
|
|
1622
|
+
|
|
1497
1623
|
:param str code: unified currency code
|
|
1498
1624
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
|
1499
1625
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
|
@@ -1502,11 +1628,13 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1502
1628
|
"""
|
|
1503
1629
|
return self.fetch_transactions_helper('WITHDRAW', code, since, limit, params)
|
|
1504
1630
|
|
|
1505
|
-
def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}):
|
|
1631
|
+
def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}) -> OrderBooks:
|
|
1506
1632
|
"""
|
|
1507
1633
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
|
1508
|
-
|
|
1509
|
-
|
|
1634
|
+
|
|
1635
|
+
https://api.hitbtc.com/#order-books
|
|
1636
|
+
|
|
1637
|
+
:param str[] [symbols]: list of unified market symbols, all symbols fetched if None, default is None
|
|
1510
1638
|
:param int [limit]: max number of entries per orderbook to return, default is None
|
|
1511
1639
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1512
1640
|
:returns dict: a dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbol
|
|
@@ -1532,7 +1660,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1532
1660
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
1533
1661
|
"""
|
|
1534
1662
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
1535
|
-
|
|
1663
|
+
|
|
1664
|
+
https://api.hitbtc.com/#order-books
|
|
1665
|
+
|
|
1536
1666
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
1537
1667
|
:param int [limit]: the maximum amount of order book entries to return
|
|
1538
1668
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1573,8 +1703,10 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1573
1703
|
def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
|
|
1574
1704
|
"""
|
|
1575
1705
|
fetch the trading fees for a market
|
|
1576
|
-
|
|
1577
|
-
|
|
1706
|
+
|
|
1707
|
+
https://api.hitbtc.com/#get-trading-commission
|
|
1708
|
+
https://api.hitbtc.com/#get-trading-commission-2
|
|
1709
|
+
|
|
1578
1710
|
:param str symbol: unified market symbol
|
|
1579
1711
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1580
1712
|
:returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -1602,8 +1734,10 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1602
1734
|
def fetch_trading_fees(self, params={}) -> TradingFees:
|
|
1603
1735
|
"""
|
|
1604
1736
|
fetch the trading fees for multiple markets
|
|
1605
|
-
|
|
1606
|
-
|
|
1737
|
+
|
|
1738
|
+
https://api.hitbtc.com/#get-all-trading-commissions
|
|
1739
|
+
https://api.hitbtc.com/#get-all-trading-commissions-2
|
|
1740
|
+
|
|
1607
1741
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1608
1742
|
:returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
|
|
1609
1743
|
"""
|
|
@@ -1635,10 +1769,12 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1635
1769
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
1636
1770
|
"""
|
|
1637
1771
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1772
|
+
|
|
1773
|
+
https://api.hitbtc.com/#candles
|
|
1774
|
+
https://api.hitbtc.com/#futures-index-price-candles
|
|
1775
|
+
https://api.hitbtc.com/#futures-mark-price-candles
|
|
1776
|
+
https://api.hitbtc.com/#futures-premium-index-candles
|
|
1777
|
+
|
|
1642
1778
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
1643
1779
|
:param str timeframe: the length of time each candle represents
|
|
1644
1780
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -1739,9 +1875,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1739
1875
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1740
1876
|
"""
|
|
1741
1877
|
fetches information on multiple closed orders made by the user
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1878
|
+
|
|
1879
|
+
https://api.hitbtc.com/#spot-orders-history
|
|
1880
|
+
https://api.hitbtc.com/#futures-orders-history
|
|
1881
|
+
https://api.hitbtc.com/#margin-orders-history
|
|
1882
|
+
|
|
1745
1883
|
:param str symbol: unified market symbol of the market orders were made in
|
|
1746
1884
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
1747
1885
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -1783,9 +1921,12 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1783
1921
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1784
1922
|
"""
|
|
1785
1923
|
fetches information on an order made by the user
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1924
|
+
|
|
1925
|
+
https://api.hitbtc.com/#spot-orders-history
|
|
1926
|
+
https://api.hitbtc.com/#futures-orders-history
|
|
1927
|
+
https://api.hitbtc.com/#margin-orders-history
|
|
1928
|
+
|
|
1929
|
+
:param str id: order id
|
|
1789
1930
|
:param str symbol: unified symbol of the market the order was made in
|
|
1790
1931
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1791
1932
|
:param str [params.marginMode]: 'cross' or 'isolated' only 'isolated' is supported
|
|
@@ -1841,9 +1982,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1841
1982
|
def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1842
1983
|
"""
|
|
1843
1984
|
fetch all the trades made from a single order
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1985
|
+
|
|
1986
|
+
https://api.hitbtc.com/#spot-trades-history
|
|
1987
|
+
https://api.hitbtc.com/#futures-trades-history
|
|
1988
|
+
https://api.hitbtc.com/#margin-trades-history
|
|
1989
|
+
|
|
1847
1990
|
:param str id: order id
|
|
1848
1991
|
:param str symbol: unified market symbol
|
|
1849
1992
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
@@ -1920,9 +2063,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1920
2063
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1921
2064
|
"""
|
|
1922
2065
|
fetch all unfilled currently open orders
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
2066
|
+
|
|
2067
|
+
https://api.hitbtc.com/#get-all-active-spot-orders
|
|
2068
|
+
https://api.hitbtc.com/#get-active-futures-orders
|
|
2069
|
+
https://api.hitbtc.com/#get-active-margin-orders
|
|
2070
|
+
|
|
1926
2071
|
:param str symbol: unified market symbol
|
|
1927
2072
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
1928
2073
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -1978,9 +2123,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
1978
2123
|
def fetch_open_order(self, id: str, symbol: Str = None, params={}):
|
|
1979
2124
|
"""
|
|
1980
2125
|
fetch an open order by it's id
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
2126
|
+
|
|
2127
|
+
https://api.hitbtc.com/#get-active-spot-order
|
|
2128
|
+
https://api.hitbtc.com/#get-active-futures-order
|
|
2129
|
+
https://api.hitbtc.com/#get-active-margin-order
|
|
2130
|
+
|
|
1984
2131
|
:param str id: order id
|
|
1985
2132
|
:param str symbol: unified market symbol, default is None
|
|
1986
2133
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -2017,9 +2164,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2017
2164
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
|
2018
2165
|
"""
|
|
2019
2166
|
cancel all open orders
|
|
2020
|
-
|
|
2021
|
-
|
|
2022
|
-
|
|
2167
|
+
|
|
2168
|
+
https://api.hitbtc.com/#cancel-all-spot-orders
|
|
2169
|
+
https://api.hitbtc.com/#cancel-futures-orders
|
|
2170
|
+
https://api.hitbtc.com/#cancel-all-margin-orders
|
|
2171
|
+
|
|
2023
2172
|
:param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
|
|
2024
2173
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2025
2174
|
:param str [params.marginMode]: 'cross' or 'isolated' only 'isolated' is supported
|
|
@@ -2054,9 +2203,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2054
2203
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
2055
2204
|
"""
|
|
2056
2205
|
cancels an open order
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2206
|
+
|
|
2207
|
+
https://api.hitbtc.com/#cancel-spot-order
|
|
2208
|
+
https://api.hitbtc.com/#cancel-futures-order
|
|
2209
|
+
https://api.hitbtc.com/#cancel-margin-order
|
|
2210
|
+
|
|
2060
2211
|
:param str id: order id
|
|
2061
2212
|
:param str symbol: unified symbol of the market the order was made in
|
|
2062
2213
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -2125,14 +2276,16 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2125
2276
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
2126
2277
|
"""
|
|
2127
2278
|
create a trade order
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2279
|
+
|
|
2280
|
+
https://api.hitbtc.com/#create-new-spot-order
|
|
2281
|
+
https://api.hitbtc.com/#create-margin-order
|
|
2282
|
+
https://api.hitbtc.com/#create-futures-order
|
|
2283
|
+
|
|
2131
2284
|
:param str symbol: unified symbol of the market to create an order in
|
|
2132
2285
|
:param str type: 'market' or 'limit'
|
|
2133
2286
|
:param str side: 'buy' or 'sell'
|
|
2134
2287
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
2135
|
-
:param float [price]: the price at which the order is to be
|
|
2288
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
2136
2289
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2137
2290
|
:param str [params.marginMode]: 'cross' or 'isolated' only 'isolated' is supported for spot-margin, swap supports both, default is 'cross'
|
|
2138
2291
|
:param bool [params.margin]: True for creating a margin order
|
|
@@ -2205,7 +2358,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2205
2358
|
elif type == 'market':
|
|
2206
2359
|
request['type'] = 'stopMarket'
|
|
2207
2360
|
elif (type == 'stopLimit') or (type == 'stopMarket') or (type == 'takeProfitLimit') or (type == 'takeProfitMarket'):
|
|
2208
|
-
raise ExchangeError(self.id + ' createOrder() requires a
|
|
2361
|
+
raise ExchangeError(self.id + ' createOrder() requires a triggerPrice parameter for stop-loss and take-profit orders')
|
|
2209
2362
|
params = self.omit(params, ['triggerPrice', 'timeInForce', 'stopPrice', 'stop_price', 'reduceOnly', 'postOnly'])
|
|
2210
2363
|
if marketType == 'swap':
|
|
2211
2364
|
# set default margin mode to cross
|
|
@@ -2314,7 +2467,6 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2314
2467
|
postOnly = self.safe_value(order, 'post_only')
|
|
2315
2468
|
timeInForce = self.safe_string(order, 'time_in_force')
|
|
2316
2469
|
rawTrades = self.safe_value(order, 'trades')
|
|
2317
|
-
stopPrice = self.safe_string(order, 'stop_price')
|
|
2318
2470
|
return self.safe_order({
|
|
2319
2471
|
'info': order,
|
|
2320
2472
|
'id': id,
|
|
@@ -2338,8 +2490,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2338
2490
|
'average': average,
|
|
2339
2491
|
'trades': rawTrades,
|
|
2340
2492
|
'fee': None,
|
|
2341
|
-
'
|
|
2342
|
-
'triggerPrice': stopPrice,
|
|
2493
|
+
'triggerPrice': self.safe_string(order, 'stop_price'),
|
|
2343
2494
|
'takeProfitPrice': None,
|
|
2344
2495
|
'stopLossPrice': None,
|
|
2345
2496
|
}, market)
|
|
@@ -2347,9 +2498,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2347
2498
|
def fetch_margin_modes(self, symbols: List[Str] = None, params={}) -> MarginModes:
|
|
2348
2499
|
"""
|
|
2349
2500
|
fetches margin mode of the user
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2501
|
+
|
|
2502
|
+
https://api.hitbtc.com/#get-margin-position-parameters
|
|
2503
|
+
https://api.hitbtc.com/#get-futures-position-parameters
|
|
2504
|
+
|
|
2505
|
+
:param str[] symbols: unified market symbols
|
|
2353
2506
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2354
2507
|
:returns dict: a list of `margin mode structures <https://docs.ccxt.com/#/?id=margin-mode-structure>`
|
|
2355
2508
|
"""
|
|
@@ -2415,7 +2568,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2415
2568
|
def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
|
|
2416
2569
|
"""
|
|
2417
2570
|
transfer currency internally between wallets on the same account
|
|
2418
|
-
|
|
2571
|
+
|
|
2572
|
+
https://api.hitbtc.com/#transfer-between-wallet-and-exchange
|
|
2573
|
+
|
|
2419
2574
|
:param str code: unified currency code
|
|
2420
2575
|
:param float amount: amount to transfer
|
|
2421
2576
|
:param str fromAccount: account to transfer from
|
|
@@ -2493,10 +2648,12 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2493
2648
|
'info': response,
|
|
2494
2649
|
}
|
|
2495
2650
|
|
|
2496
|
-
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
2651
|
+
def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
2497
2652
|
"""
|
|
2498
2653
|
make a withdrawal
|
|
2499
|
-
|
|
2654
|
+
|
|
2655
|
+
https://api.hitbtc.com/#withdraw-crypto
|
|
2656
|
+
|
|
2500
2657
|
:param str code: unified currency code
|
|
2501
2658
|
:param float amount: the amount to withdraw
|
|
2502
2659
|
:param str address: the address to withdraw to
|
|
@@ -2534,13 +2691,15 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2534
2691
|
#
|
|
2535
2692
|
return self.parse_transaction(response, currency)
|
|
2536
2693
|
|
|
2537
|
-
def fetch_funding_rates(self, symbols: Strings = None, params={}):
|
|
2694
|
+
def fetch_funding_rates(self, symbols: Strings = None, params={}) -> FundingRates:
|
|
2538
2695
|
"""
|
|
2539
2696
|
fetches funding rates for multiple markets
|
|
2540
|
-
|
|
2697
|
+
|
|
2698
|
+
https://api.hitbtc.com/#futures-info
|
|
2699
|
+
|
|
2541
2700
|
:param str[] symbols: unified symbols of the markets to fetch the funding rates for, all market funding rates are returned if not assigned
|
|
2542
2701
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2543
|
-
:returns dict:
|
|
2702
|
+
:returns dict[]: a list of `funding rate structures <https://docs.ccxt.com/#/?id=funding-rate-structure>`
|
|
2544
2703
|
"""
|
|
2545
2704
|
self.load_markets()
|
|
2546
2705
|
market = None
|
|
@@ -2585,7 +2744,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2585
2744
|
|
|
2586
2745
|
def fetch_funding_rate_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
2587
2746
|
"""
|
|
2588
|
-
|
|
2747
|
+
|
|
2748
|
+
https://api.hitbtc.com/#funding-history
|
|
2749
|
+
|
|
2589
2750
|
fetches historical funding rate prices
|
|
2590
2751
|
:param str symbol: unified symbol of the market to fetch the funding rate history for
|
|
2591
2752
|
:param int [since]: timestamp in ms of the earliest funding rate to fetch
|
|
@@ -2656,11 +2817,13 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2656
2817
|
sorted = self.sort_by(rates, 'timestamp')
|
|
2657
2818
|
return self.filter_by_symbol_since_limit(sorted, symbol, since, limit)
|
|
2658
2819
|
|
|
2659
|
-
def fetch_positions(self, symbols: Strings = None, params={}):
|
|
2820
|
+
def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
|
|
2660
2821
|
"""
|
|
2661
2822
|
fetch all open positions
|
|
2662
|
-
|
|
2663
|
-
|
|
2823
|
+
|
|
2824
|
+
https://api.hitbtc.com/#get-futures-margin-accounts
|
|
2825
|
+
https://api.hitbtc.com/#get-all-margin-accounts
|
|
2826
|
+
|
|
2664
2827
|
:param str[]|None symbols: not used by hitbtc fetchPositions()
|
|
2665
2828
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2666
2829
|
:param str [params.marginMode]: 'cross' or 'isolated' only 'isolated' is supported, defaults to spot-margin endpoint if self is set
|
|
@@ -2726,8 +2889,10 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2726
2889
|
def fetch_position(self, symbol: str, params={}):
|
|
2727
2890
|
"""
|
|
2728
2891
|
fetch data on a single open contract trade position
|
|
2729
|
-
|
|
2730
|
-
|
|
2892
|
+
|
|
2893
|
+
https://api.hitbtc.com/#get-futures-margin-account
|
|
2894
|
+
https://api.hitbtc.com/#get-isolated-margin-account
|
|
2895
|
+
|
|
2731
2896
|
:param str symbol: unified market symbol of the market the position is held in, default is None
|
|
2732
2897
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2733
2898
|
:param str [params.marginMode]: 'cross' or 'isolated' only 'isolated' is supported, defaults to spot-margin endpoint if self is set
|
|
@@ -2891,7 +3056,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2891
3056
|
datetime = self.safe_string(interest, 'timestamp')
|
|
2892
3057
|
value = self.safe_number(interest, 'open_interest')
|
|
2893
3058
|
return self.safe_open_interest({
|
|
2894
|
-
'symbol': market
|
|
3059
|
+
'symbol': self.safe_symbol(None, market),
|
|
2895
3060
|
'openInterestAmount': None,
|
|
2896
3061
|
'openInterestValue': value,
|
|
2897
3062
|
'timestamp': self.parse8601(datetime),
|
|
@@ -2899,10 +3064,55 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2899
3064
|
'info': interest,
|
|
2900
3065
|
}, market)
|
|
2901
3066
|
|
|
3067
|
+
def fetch_open_interests(self, symbols: Strings = None, params={}):
|
|
3068
|
+
"""
|
|
3069
|
+
Retrieves the open interest for a list of symbols
|
|
3070
|
+
|
|
3071
|
+
https://api.hitbtc.com/#futures-info
|
|
3072
|
+
|
|
3073
|
+
:param str[] [symbols]: a list of unified CCXT market symbols
|
|
3074
|
+
:param dict [params]: exchange specific parameters
|
|
3075
|
+
:returns dict[]: a list of `open interest structures <https://docs.ccxt.com/#/?id=open-interest-structure>`
|
|
3076
|
+
"""
|
|
3077
|
+
self.load_markets()
|
|
3078
|
+
request: dict = {}
|
|
3079
|
+
symbols = self.market_symbols(symbols)
|
|
3080
|
+
marketIds = None
|
|
3081
|
+
if symbols is not None:
|
|
3082
|
+
marketIds = self.market_ids(symbols)
|
|
3083
|
+
request['symbols'] = ','.join(marketIds)
|
|
3084
|
+
response = self.publicGetPublicFuturesInfo(self.extend(request, params))
|
|
3085
|
+
#
|
|
3086
|
+
# {
|
|
3087
|
+
# "BTCUSDT_PERP": {
|
|
3088
|
+
# "contract_type": "perpetual",
|
|
3089
|
+
# "mark_price": "97291.83",
|
|
3090
|
+
# "index_price": "97298.61",
|
|
3091
|
+
# "funding_rate": "-0.000183473092423284",
|
|
3092
|
+
# "open_interest": "94.1503",
|
|
3093
|
+
# "next_funding_time": "2024-12-20T08:00:00.000Z",
|
|
3094
|
+
# "indicative_funding_rate": "-0.00027495203277752",
|
|
3095
|
+
# "premium_index": "-0.000789474900583786",
|
|
3096
|
+
# "avg_premium_index": "-0.000683473092423284",
|
|
3097
|
+
# "interest_rate": "0.0001",
|
|
3098
|
+
# "timestamp": "2024-12-20T04:57:33.693Z"
|
|
3099
|
+
# }
|
|
3100
|
+
# }
|
|
3101
|
+
#
|
|
3102
|
+
results = []
|
|
3103
|
+
markets = list(response.keys())
|
|
3104
|
+
for i in range(0, len(markets)):
|
|
3105
|
+
marketId = markets[i]
|
|
3106
|
+
marketInner = self.safe_market(marketId)
|
|
3107
|
+
results.append(self.parse_open_interest(response[marketId], marketInner))
|
|
3108
|
+
return self.filter_by_array(results, 'symbol', symbols)
|
|
3109
|
+
|
|
2902
3110
|
def fetch_open_interest(self, symbol: str, params={}):
|
|
2903
3111
|
"""
|
|
2904
3112
|
Retrieves the open interest of a derivative trading pair
|
|
2905
|
-
|
|
3113
|
+
|
|
3114
|
+
https://api.hitbtc.com/#futures-info
|
|
3115
|
+
|
|
2906
3116
|
:param str symbol: Unified CCXT market symbol
|
|
2907
3117
|
:param dict [params]: exchange specific parameters
|
|
2908
3118
|
:returns dict} an open interest structure{@link https://docs.ccxt.com/#/?id=interest-history-structure:
|
|
@@ -2932,10 +3142,12 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2932
3142
|
#
|
|
2933
3143
|
return self.parse_open_interest(response, market)
|
|
2934
3144
|
|
|
2935
|
-
def fetch_funding_rate(self, symbol: str, params={}):
|
|
3145
|
+
def fetch_funding_rate(self, symbol: str, params={}) -> FundingRate:
|
|
2936
3146
|
"""
|
|
2937
3147
|
fetch the current funding rate
|
|
2938
|
-
|
|
3148
|
+
|
|
3149
|
+
https://api.hitbtc.com/#futures-info
|
|
3150
|
+
|
|
2939
3151
|
:param str symbol: unified market symbol
|
|
2940
3152
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2941
3153
|
:returns dict: a `funding rate structure <https://docs.ccxt.com/#/?id=funding-rate-structure>`
|
|
@@ -2965,7 +3177,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
2965
3177
|
#
|
|
2966
3178
|
return self.parse_funding_rate(response, market)
|
|
2967
3179
|
|
|
2968
|
-
def parse_funding_rate(self, contract, market: Market = None):
|
|
3180
|
+
def parse_funding_rate(self, contract, market: Market = None) -> FundingRate:
|
|
2969
3181
|
#
|
|
2970
3182
|
# {
|
|
2971
3183
|
# "contract_type": "perpetual",
|
|
@@ -3001,6 +3213,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3001
3213
|
'previousFundingRate': None,
|
|
3002
3214
|
'previousFundingTimestamp': None,
|
|
3003
3215
|
'previousFundingDatetime': None,
|
|
3216
|
+
'interval': None,
|
|
3004
3217
|
}
|
|
3005
3218
|
|
|
3006
3219
|
def modify_margin_helper(self, symbol: str, amount, type, params={}) -> MarginModification:
|
|
@@ -3097,8 +3310,10 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3097
3310
|
def reduce_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
|
|
3098
3311
|
"""
|
|
3099
3312
|
remove margin from a position
|
|
3100
|
-
|
|
3101
|
-
|
|
3313
|
+
|
|
3314
|
+
https://api.hitbtc.com/#create-update-margin-account-2
|
|
3315
|
+
https://api.hitbtc.com/#create-update-margin-account
|
|
3316
|
+
|
|
3102
3317
|
:param str symbol: unified market symbol
|
|
3103
3318
|
:param float amount: the amount of margin to remove
|
|
3104
3319
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -3113,8 +3328,10 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3113
3328
|
def add_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
|
|
3114
3329
|
"""
|
|
3115
3330
|
add margin
|
|
3116
|
-
|
|
3117
|
-
|
|
3331
|
+
|
|
3332
|
+
https://api.hitbtc.com/#create-update-margin-account-2
|
|
3333
|
+
https://api.hitbtc.com/#create-update-margin-account
|
|
3334
|
+
|
|
3118
3335
|
:param str symbol: unified market symbol
|
|
3119
3336
|
:param float amount: amount of margin to add
|
|
3120
3337
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -3127,8 +3344,10 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3127
3344
|
def fetch_leverage(self, symbol: str, params={}) -> Leverage:
|
|
3128
3345
|
"""
|
|
3129
3346
|
fetch the set leverage for a market
|
|
3130
|
-
|
|
3131
|
-
|
|
3347
|
+
|
|
3348
|
+
https://api.hitbtc.com/#get-futures-margin-account
|
|
3349
|
+
https://api.hitbtc.com/#get-isolated-margin-account
|
|
3350
|
+
|
|
3132
3351
|
:param str symbol: unified market symbol
|
|
3133
3352
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
3134
3353
|
:param str [params.marginMode]: 'cross' or 'isolated' only 'isolated' is supported, defaults to the spot-margin endpoint if self is set
|
|
@@ -3198,10 +3417,12 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3198
3417
|
'shortLeverage': leverageValue,
|
|
3199
3418
|
}
|
|
3200
3419
|
|
|
3201
|
-
def set_leverage(self, leverage:
|
|
3420
|
+
def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
|
3202
3421
|
"""
|
|
3203
3422
|
set the level of leverage for a market
|
|
3204
|
-
|
|
3423
|
+
|
|
3424
|
+
https://api.hitbtc.com/#create-update-margin-account-2
|
|
3425
|
+
|
|
3205
3426
|
:param float leverage: the rate of leverage
|
|
3206
3427
|
:param str symbol: unified market symbol
|
|
3207
3428
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -3230,7 +3451,9 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3230
3451
|
def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
|
|
3231
3452
|
"""
|
|
3232
3453
|
fetch deposit and withdraw fees
|
|
3233
|
-
|
|
3454
|
+
|
|
3455
|
+
https://api.hitbtc.com/#currencies
|
|
3456
|
+
|
|
3234
3457
|
:param str[]|None codes: list of unified currency codes
|
|
3235
3458
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
3236
3459
|
:returns dict[]: a list of `fees structures <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -3294,6 +3517,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3294
3517
|
networkEntry = networks[j]
|
|
3295
3518
|
networkId = self.safe_string(networkEntry, 'network')
|
|
3296
3519
|
networkCode = self.network_id_to_code(networkId)
|
|
3520
|
+
networkCode = networkCode.upper() if (networkCode is not None) else None
|
|
3297
3521
|
withdrawFee = self.safe_number(networkEntry, 'payout_fee')
|
|
3298
3522
|
isDefault = self.safe_value(networkEntry, 'default')
|
|
3299
3523
|
withdrawResult: dict = {
|
|
@@ -3314,7 +3538,11 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3314
3538
|
def close_position(self, symbol: str, side: OrderSide = None, params={}) -> Order:
|
|
3315
3539
|
"""
|
|
3316
3540
|
closes open positions for a market
|
|
3317
|
-
|
|
3541
|
+
|
|
3542
|
+
https://api.hitbtc.com/#close-all-futures-margin-positions
|
|
3543
|
+
|
|
3544
|
+
:param str symbol: unified ccxt market symbol
|
|
3545
|
+
:param str side: 'buy' or 'sell'
|
|
3318
3546
|
:param dict [params]: extra parameters specific to the okx api endpoint
|
|
3319
3547
|
:param str [params.symbol]: *required* unified market symbol
|
|
3320
3548
|
:param str [params.marginMode]: 'cross' or 'isolated', default is 'cross'
|
|
@@ -3348,7 +3576,7 @@ class hitbtc(Exchange, ImplicitAPI):
|
|
|
3348
3576
|
|
|
3349
3577
|
def handle_margin_mode_and_params(self, methodName, params={}, defaultValue=None):
|
|
3350
3578
|
"""
|
|
3351
|
-
|
|
3579
|
+
@ignore
|
|
3352
3580
|
marginMode specified by params["marginMode"], self.options["marginMode"], self.options["defaultMarginMode"], params["margin"] = True or self.options["defaultType"] = 'margin'
|
|
3353
3581
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
3354
3582
|
:returns Array: the marginMode in lowercase
|