ccxt-ir 4.3.46.0.2__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 +9 -9
- 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 +10 -10
- 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.2.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.2.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
- 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.2.dist-info/RECORD +0 -772
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/async_support/bithumb.py
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.bithumb import ImplicitAPI
|
|
8
|
+
import asyncio
|
|
8
9
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Currency, Int, Market,
|
|
10
|
+
from ccxt.base.types import Any, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, MarketInterface
|
|
10
11
|
from typing import List
|
|
11
12
|
from ccxt.base.errors import ExchangeError
|
|
12
13
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -24,7 +25,7 @@ from ccxt.base.precise import Precise
|
|
|
24
25
|
|
|
25
26
|
class bithumb(Exchange, ImplicitAPI):
|
|
26
27
|
|
|
27
|
-
def describe(self):
|
|
28
|
+
def describe(self) -> Any:
|
|
28
29
|
return self.deep_extend(super(bithumb, self).describe(), {
|
|
29
30
|
'id': 'bithumb',
|
|
30
31
|
'name': 'Bithumb',
|
|
@@ -39,30 +40,59 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
39
40
|
'future': False,
|
|
40
41
|
'option': False,
|
|
41
42
|
'addMargin': False,
|
|
43
|
+
'borrowCrossMargin': False,
|
|
44
|
+
'borrowIsolatedMargin': False,
|
|
45
|
+
'borrowMargin': False,
|
|
42
46
|
'cancelOrder': True,
|
|
43
47
|
'closeAllPositions': False,
|
|
44
48
|
'closePosition': False,
|
|
45
49
|
'createMarketOrder': True,
|
|
46
50
|
'createOrder': True,
|
|
51
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
|
52
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
|
47
53
|
'createReduceOnlyOrder': False,
|
|
48
54
|
'fetchBalance': True,
|
|
55
|
+
'fetchBorrowInterest': False,
|
|
56
|
+
'fetchBorrowRate': False,
|
|
49
57
|
'fetchBorrowRateHistories': False,
|
|
50
58
|
'fetchBorrowRateHistory': False,
|
|
59
|
+
'fetchBorrowRates': False,
|
|
60
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
51
61
|
'fetchCrossBorrowRate': False,
|
|
52
62
|
'fetchCrossBorrowRates': False,
|
|
53
63
|
'fetchFundingHistory': False,
|
|
64
|
+
'fetchFundingInterval': False,
|
|
65
|
+
'fetchFundingIntervals': False,
|
|
54
66
|
'fetchFundingRate': False,
|
|
55
67
|
'fetchFundingRateHistory': False,
|
|
56
68
|
'fetchFundingRates': False,
|
|
69
|
+
'fetchGreeks': False,
|
|
57
70
|
'fetchIndexOHLCV': False,
|
|
58
71
|
'fetchIsolatedBorrowRate': False,
|
|
59
72
|
'fetchIsolatedBorrowRates': False,
|
|
73
|
+
'fetchIsolatedPositions': False,
|
|
60
74
|
'fetchLeverage': False,
|
|
75
|
+
'fetchLeverages': False,
|
|
76
|
+
'fetchLeverageTiers': False,
|
|
77
|
+
'fetchLiquidations': False,
|
|
78
|
+
'fetchLongShortRatio': False,
|
|
79
|
+
'fetchLongShortRatioHistory': False,
|
|
80
|
+
'fetchMarginAdjustmentHistory': False,
|
|
81
|
+
'fetchMarginMode': False,
|
|
82
|
+
'fetchMarginModes': False,
|
|
83
|
+
'fetchMarketLeverageTiers': False,
|
|
61
84
|
'fetchMarkets': True,
|
|
62
85
|
'fetchMarkOHLCV': False,
|
|
86
|
+
'fetchMarkPrices': False,
|
|
87
|
+
'fetchMyLiquidations': False,
|
|
88
|
+
'fetchMySettlementHistory': False,
|
|
63
89
|
'fetchOHLCV': True,
|
|
90
|
+
'fetchOpenInterest': False,
|
|
64
91
|
'fetchOpenInterestHistory': False,
|
|
92
|
+
'fetchOpenInterests': False,
|
|
65
93
|
'fetchOpenOrders': True,
|
|
94
|
+
'fetchOption': False,
|
|
95
|
+
'fetchOptionChain': False,
|
|
66
96
|
'fetchOrder': True,
|
|
67
97
|
'fetchOrderBook': True,
|
|
68
98
|
'fetchPosition': False,
|
|
@@ -73,13 +103,18 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
73
103
|
'fetchPositionsHistory': False,
|
|
74
104
|
'fetchPositionsRisk': False,
|
|
75
105
|
'fetchPremiumIndexOHLCV': False,
|
|
106
|
+
'fetchSettlementHistory': False,
|
|
76
107
|
'fetchTicker': True,
|
|
77
108
|
'fetchTickers': True,
|
|
78
109
|
'fetchTrades': True,
|
|
79
110
|
'fetchTransfer': False,
|
|
80
111
|
'fetchTransfers': False,
|
|
112
|
+
'fetchVolatilityHistory': False,
|
|
81
113
|
'reduceMargin': False,
|
|
114
|
+
'repayCrossMargin': False,
|
|
115
|
+
'repayIsolatedMargin': False,
|
|
82
116
|
'setLeverage': False,
|
|
117
|
+
'setMargin': False,
|
|
83
118
|
'setMarginMode': False,
|
|
84
119
|
'setPositionMode': False,
|
|
85
120
|
'transfer': False,
|
|
@@ -87,7 +122,7 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
87
122
|
},
|
|
88
123
|
'hostname': 'bithumb.com',
|
|
89
124
|
'urls': {
|
|
90
|
-
'logo': 'https://
|
|
125
|
+
'logo': 'https://github.com/user-attachments/assets/c9e0eefb-4777-46b9-8f09-9d7f7c4af82d',
|
|
91
126
|
'api': {
|
|
92
127
|
'public': 'https://api.{hostname}/public',
|
|
93
128
|
'private': 'https://api.{hostname}',
|
|
@@ -141,6 +176,62 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
141
176
|
},
|
|
142
177
|
},
|
|
143
178
|
'precisionMode': SIGNIFICANT_DIGITS,
|
|
179
|
+
# todo: update to v2 apis
|
|
180
|
+
'features': {
|
|
181
|
+
'spot': {
|
|
182
|
+
'sandbox': False,
|
|
183
|
+
'createOrder': {
|
|
184
|
+
'marginMode': False,
|
|
185
|
+
'triggerPrice': False,
|
|
186
|
+
'triggerPriceType': None,
|
|
187
|
+
'triggerDirection': False,
|
|
188
|
+
'stopLossPrice': False,
|
|
189
|
+
'takeProfitPrice': False,
|
|
190
|
+
'attachedStopLossTakeProfit': None,
|
|
191
|
+
'timeInForce': {
|
|
192
|
+
'IOC': False,
|
|
193
|
+
'FOK': False,
|
|
194
|
+
'PO': False,
|
|
195
|
+
'GTD': False,
|
|
196
|
+
},
|
|
197
|
+
'hedged': False,
|
|
198
|
+
'trailing': False,
|
|
199
|
+
'leverage': False,
|
|
200
|
+
'marketBuyRequiresPrice': False,
|
|
201
|
+
'marketBuyByCost': False,
|
|
202
|
+
'selfTradePrevention': False,
|
|
203
|
+
'iceberg': False,
|
|
204
|
+
},
|
|
205
|
+
'createOrders': None,
|
|
206
|
+
'fetchMyTrades': None,
|
|
207
|
+
'fetchOrder': {
|
|
208
|
+
'marginMode': False,
|
|
209
|
+
'trigger': False,
|
|
210
|
+
'trailing': False,
|
|
211
|
+
'symbolRequired': True,
|
|
212
|
+
},
|
|
213
|
+
'fetchOpenOrders': {
|
|
214
|
+
'marginMode': False,
|
|
215
|
+
'limit': 1000,
|
|
216
|
+
'trigger': False,
|
|
217
|
+
'trailing': False,
|
|
218
|
+
'symbolRequired': True,
|
|
219
|
+
},
|
|
220
|
+
'fetchOrders': None,
|
|
221
|
+
'fetchClosedOrders': None,
|
|
222
|
+
'fetchOHLCV': {
|
|
223
|
+
'limit': 1000,
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
'swap': {
|
|
227
|
+
'linear': None,
|
|
228
|
+
'inverse': None,
|
|
229
|
+
},
|
|
230
|
+
'future': {
|
|
231
|
+
'linear': None,
|
|
232
|
+
'inverse': None,
|
|
233
|
+
},
|
|
234
|
+
},
|
|
144
235
|
'exceptions': {
|
|
145
236
|
'Bad Request(SSL)': BadRequest,
|
|
146
237
|
'Bad Request(Bad Method)': BadRequest,
|
|
@@ -207,22 +298,63 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
207
298
|
async def fetch_markets(self, params={}) -> List[Market]:
|
|
208
299
|
"""
|
|
209
300
|
retrieves data on all markets for bithumb
|
|
210
|
-
|
|
301
|
+
|
|
302
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C-all
|
|
303
|
+
|
|
211
304
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
212
305
|
:returns dict[]: an array of objects representing market data
|
|
213
306
|
"""
|
|
214
307
|
result = []
|
|
215
|
-
quoteCurrencies = self.
|
|
308
|
+
quoteCurrencies = self.safe_dict(self.options, 'quoteCurrencies', {})
|
|
216
309
|
quotes = list(quoteCurrencies.keys())
|
|
310
|
+
promises = []
|
|
311
|
+
for i in range(0, len(quotes)):
|
|
312
|
+
request = {
|
|
313
|
+
'quoteId': quotes[i],
|
|
314
|
+
}
|
|
315
|
+
promises.append(self.publicGetTickerALLQuoteId(self.extend(request, params)))
|
|
316
|
+
#
|
|
317
|
+
# {
|
|
318
|
+
# "status": "0000",
|
|
319
|
+
# "data": {
|
|
320
|
+
# "ETH": {
|
|
321
|
+
# "opening_price": "0.05153399",
|
|
322
|
+
# "closing_price": "0.05145144",
|
|
323
|
+
# "min_price": "0.05145144",
|
|
324
|
+
# "max_price": "0.05160781",
|
|
325
|
+
# "units_traded": "6.541124172077830855",
|
|
326
|
+
# "acc_trade_value": "0.33705472498492329997697755",
|
|
327
|
+
# "prev_closing_price": "0.0515943",
|
|
328
|
+
# "units_traded_24H": "43.368879902677400513",
|
|
329
|
+
# "acc_trade_value_24H": "2.24165339555398079994373342",
|
|
330
|
+
# "fluctate_24H": "-0.00018203",
|
|
331
|
+
# "fluctate_rate_24H": "-0.35"
|
|
332
|
+
# },
|
|
333
|
+
# "XRP": {
|
|
334
|
+
# "opening_price": "0.00000918",
|
|
335
|
+
# "closing_price": "0.0000092",
|
|
336
|
+
# "min_price": "0.00000918",
|
|
337
|
+
# "max_price": "0.0000092",
|
|
338
|
+
# "units_traded": "6516.949363",
|
|
339
|
+
# "acc_trade_value": "0.0598792533602796",
|
|
340
|
+
# "prev_closing_price": "0.00000916",
|
|
341
|
+
# "units_traded_24H": "229161.50354738",
|
|
342
|
+
# "acc_trade_value_24H": "2.0446589371637117",
|
|
343
|
+
# "fluctate_24H": "0.00000049",
|
|
344
|
+
# "fluctate_rate_24H": "5.63"
|
|
345
|
+
# },
|
|
346
|
+
# ...
|
|
347
|
+
# "date": "1721675913145"
|
|
348
|
+
# }
|
|
349
|
+
# }
|
|
350
|
+
#
|
|
351
|
+
results = await asyncio.gather(*promises)
|
|
217
352
|
for i in range(0, len(quotes)):
|
|
218
353
|
quote = quotes[i]
|
|
219
354
|
quoteId = quote
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
}
|
|
224
|
-
response = await self.publicGetTickerALLQuoteId(self.extend(request, params))
|
|
225
|
-
data = self.safe_value(response, 'data')
|
|
355
|
+
response = results[i]
|
|
356
|
+
data = self.safe_dict(response, 'data')
|
|
357
|
+
extension = self.safe_dict(quoteCurrencies, quote, {})
|
|
226
358
|
currencyIds = list(data.keys())
|
|
227
359
|
for j in range(0, len(currencyIds)):
|
|
228
360
|
currencyId = currencyIds[j]
|
|
@@ -286,7 +418,7 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
286
418
|
|
|
287
419
|
def parse_balance(self, response) -> Balances:
|
|
288
420
|
result: dict = {'info': response}
|
|
289
|
-
balances = self.
|
|
421
|
+
balances = self.safe_dict(response, 'data')
|
|
290
422
|
codes = list(self.currencies.keys())
|
|
291
423
|
for i in range(0, len(codes)):
|
|
292
424
|
code = codes[i]
|
|
@@ -302,7 +434,9 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
302
434
|
async def fetch_balance(self, params={}) -> Balances:
|
|
303
435
|
"""
|
|
304
436
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
305
|
-
|
|
437
|
+
|
|
438
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EB%B3%B4%EC%9C%A0%EC%9E%90%EC%82%B0-%EC%A1%B0%ED%9A%8C
|
|
439
|
+
|
|
306
440
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
307
441
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
308
442
|
"""
|
|
@@ -316,7 +450,9 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
316
450
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
317
451
|
"""
|
|
318
452
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
319
|
-
|
|
453
|
+
|
|
454
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%ED%98%B8%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C
|
|
455
|
+
|
|
320
456
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
321
457
|
:param int [limit]: the maximum amount of order book entries to return
|
|
322
458
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -351,7 +487,7 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
351
487
|
# }
|
|
352
488
|
# }
|
|
353
489
|
#
|
|
354
|
-
data = self.
|
|
490
|
+
data = self.safe_dict(response, 'data', {})
|
|
355
491
|
timestamp = self.safe_integer(data, 'timestamp')
|
|
356
492
|
return self.parse_order_book(data, symbol, timestamp, 'bids', 'asks', 'price', 'quantity')
|
|
357
493
|
|
|
@@ -406,22 +542,27 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
406
542
|
async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
407
543
|
"""
|
|
408
544
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
409
|
-
|
|
545
|
+
|
|
546
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C-all
|
|
547
|
+
|
|
410
548
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
411
549
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
412
550
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
413
551
|
"""
|
|
414
552
|
await self.load_markets()
|
|
415
553
|
result: dict = {}
|
|
416
|
-
quoteCurrencies = self.
|
|
554
|
+
quoteCurrencies = self.safe_dict(self.options, 'quoteCurrencies', {})
|
|
417
555
|
quotes = list(quoteCurrencies.keys())
|
|
556
|
+
promises = []
|
|
418
557
|
for i in range(0, len(quotes)):
|
|
419
|
-
quote = quotes[i]
|
|
420
|
-
quoteId = quote
|
|
421
558
|
request: dict = {
|
|
422
|
-
'quoteId':
|
|
559
|
+
'quoteId': quotes[i],
|
|
423
560
|
}
|
|
424
|
-
|
|
561
|
+
promises.append(self.publicGetTickerALLQuoteId(self.extend(request, params)))
|
|
562
|
+
responses = await asyncio.gather(*promises)
|
|
563
|
+
for i in range(0, len(quotes)):
|
|
564
|
+
quote = quotes[i]
|
|
565
|
+
response = responses[i]
|
|
425
566
|
#
|
|
426
567
|
# {
|
|
427
568
|
# "status":"0000",
|
|
@@ -443,7 +584,7 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
443
584
|
# }
|
|
444
585
|
# }
|
|
445
586
|
#
|
|
446
|
-
data = self.
|
|
587
|
+
data = self.safe_dict(response, 'data', {})
|
|
447
588
|
timestamp = self.safe_integer(data, 'date')
|
|
448
589
|
tickers = self.omit(data, 'date')
|
|
449
590
|
currencyIds = list(tickers.keys())
|
|
@@ -460,7 +601,9 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
460
601
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
461
602
|
"""
|
|
462
603
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
463
|
-
|
|
604
|
+
|
|
605
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%ED%98%84%EC%9E%AC%EA%B0%80-%EC%A0%95%EB%B3%B4-%EC%A1%B0%ED%9A%8C
|
|
606
|
+
|
|
464
607
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
465
608
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
466
609
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -517,7 +660,9 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
517
660
|
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
518
661
|
"""
|
|
519
662
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
520
|
-
|
|
663
|
+
|
|
664
|
+
https://apidocs.bithumb.com/v1.2.0/reference/candlestick-rest-api
|
|
665
|
+
|
|
521
666
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
522
667
|
:param str timeframe: the length of time each candle represents
|
|
523
668
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -634,7 +779,9 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
634
779
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
635
780
|
"""
|
|
636
781
|
get the list of most recent trades for a particular symbol
|
|
637
|
-
|
|
782
|
+
|
|
783
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EC%B5%9C%EA%B7%BC-%EC%B2%B4%EA%B2%B0-%EB%82%B4%EC%97%AD
|
|
784
|
+
|
|
638
785
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
639
786
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
640
787
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -670,14 +817,16 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
670
817
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
671
818
|
"""
|
|
672
819
|
create a trade order
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
820
|
+
|
|
821
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EC%A7%80%EC%A0%95%EA%B0%80-%EC%A3%BC%EB%AC%B8%ED%95%98%EA%B8%B0
|
|
822
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EC%8B%9C%EC%9E%A5%EA%B0%80-%EB%A7%A4%EC%88%98%ED%95%98%EA%B8%B0
|
|
823
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EC%8B%9C%EC%9E%A5%EA%B0%80-%EB%A7%A4%EB%8F%84%ED%95%98%EA%B8%B0
|
|
824
|
+
|
|
676
825
|
:param str symbol: unified symbol of the market to create an order in
|
|
677
826
|
:param str type: 'market' or 'limit'
|
|
678
827
|
:param str side: 'buy' or 'sell'
|
|
679
828
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
680
|
-
:param float [price]: the price at which the order is to be
|
|
829
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
681
830
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
682
831
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
683
832
|
"""
|
|
@@ -709,7 +858,10 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
709
858
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
710
859
|
"""
|
|
711
860
|
fetches information on an order made by the user
|
|
712
|
-
|
|
861
|
+
|
|
862
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EA%B1%B0%EB%9E%98-%EC%A3%BC%EB%AC%B8%EB%82%B4%EC%97%AD-%EC%83%81%EC%84%B8-%EC%A1%B0%ED%9A%8C
|
|
863
|
+
|
|
864
|
+
:param str id: order id
|
|
713
865
|
:param str symbol: unified symbol of the market the order was made in
|
|
714
866
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
715
867
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -805,7 +957,7 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
805
957
|
# }
|
|
806
958
|
#
|
|
807
959
|
timestamp = self.safe_integer_product(order, 'order_date', 0.001)
|
|
808
|
-
sideProperty = self.
|
|
960
|
+
sideProperty = self.safe_string_2(order, 'type', 'side')
|
|
809
961
|
side = 'buy' if (sideProperty == 'bid') else 'sell'
|
|
810
962
|
status = self.parse_order_status(self.safe_string(order, 'order_status'))
|
|
811
963
|
price = self.safe_string_2(order, 'order_price', 'price')
|
|
@@ -830,7 +982,7 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
830
982
|
market = self.safe_market(None, market)
|
|
831
983
|
symbol = market['symbol']
|
|
832
984
|
id = self.safe_string(order, 'order_id')
|
|
833
|
-
rawTrades = self.
|
|
985
|
+
rawTrades = self.safe_list(order, 'contract', [])
|
|
834
986
|
return self.safe_order({
|
|
835
987
|
'info': order,
|
|
836
988
|
'id': id,
|
|
@@ -844,7 +996,6 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
844
996
|
'postOnly': None,
|
|
845
997
|
'side': side,
|
|
846
998
|
'price': price,
|
|
847
|
-
'stopPrice': None,
|
|
848
999
|
'triggerPrice': None,
|
|
849
1000
|
'amount': amount,
|
|
850
1001
|
'cost': None,
|
|
@@ -859,7 +1010,9 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
859
1010
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
860
1011
|
"""
|
|
861
1012
|
fetch all unfilled currently open orders
|
|
862
|
-
|
|
1013
|
+
|
|
1014
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EA%B1%B0%EB%9E%98-%EC%A3%BC%EB%AC%B8%EB%82%B4%EC%97%AD-%EC%A1%B0%ED%9A%8C
|
|
1015
|
+
|
|
863
1016
|
:param str symbol: unified market symbol
|
|
864
1017
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
865
1018
|
:param int [limit]: the maximum number of open order structures to retrieve
|
|
@@ -903,7 +1056,9 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
903
1056
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
904
1057
|
"""
|
|
905
1058
|
cancels an open order
|
|
906
|
-
|
|
1059
|
+
|
|
1060
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EC%A3%BC%EB%AC%B8-%EC%B7%A8%EC%86%8C%ED%95%98%EA%B8%B0
|
|
1061
|
+
|
|
907
1062
|
:param str id: order id
|
|
908
1063
|
:param str symbol: unified symbol of the market the order was made in
|
|
909
1064
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -940,10 +1095,12 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
940
1095
|
}
|
|
941
1096
|
return await self.cancel_order(order['id'], order['symbol'], self.extend(request, params))
|
|
942
1097
|
|
|
943
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
1098
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
944
1099
|
"""
|
|
945
1100
|
make a withdrawal
|
|
946
|
-
|
|
1101
|
+
|
|
1102
|
+
https://apidocs.bithumb.com/v1.2.0/reference/%EC%BD%94%EC%9D%B8-%EC%B6%9C%EA%B8%88%ED%95%98%EA%B8%B0-%EA%B0%9C%EC%9D%B8
|
|
1103
|
+
|
|
947
1104
|
:param str code: unified currency code
|
|
948
1105
|
:param float amount: the amount to withdraw
|
|
949
1106
|
:param str address: the address to withdraw to
|
|
@@ -960,7 +1117,7 @@ class bithumb(Exchange, ImplicitAPI):
|
|
|
960
1117
|
'address': address,
|
|
961
1118
|
'currency': currency['id'],
|
|
962
1119
|
}
|
|
963
|
-
if code == 'XRP' or code == 'XMR' or code == 'EOS' or code == 'STEEM':
|
|
1120
|
+
if code == 'XRP' or code == 'XMR' or code == 'EOS' or code == 'STEEM' or code == 'TON':
|
|
964
1121
|
destination = self.safe_string(params, 'destination')
|
|
965
1122
|
if (tag is None) and (destination is None):
|
|
966
1123
|
raise ArgumentsRequired(self.id + ' ' + code + ' withdraw() requires a tag argument or an extra destination param')
|
ccxt/async_support/bitimen.py
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.bitimen import ImplicitAPI
|
|
8
|
-
from ccxt.base.types import Int, Market, OrderBook, Strings, Ticker, Tickers
|
|
8
|
+
from ccxt.base.types import Any, Int, Market, OrderBook, Strings, Ticker, Tickers
|
|
9
9
|
from typing import List
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class bitimen(Exchange, ImplicitAPI):
|
|
13
13
|
|
|
14
|
-
def describe(self):
|
|
14
|
+
def describe(self) -> Any:
|
|
15
15
|
return self.deep_extend(super(bitimen, self).describe(), {
|
|
16
16
|
'id': 'bitimen',
|
|
17
17
|
'name': 'Bitimen',
|
|
18
|
-
'
|
|
18
|
+
'countries': ['IR'],
|
|
19
19
|
'rateLimit': 1000,
|
|
20
20
|
'version': '1',
|
|
21
21
|
'certified': False,
|
|
@@ -120,10 +120,10 @@ class bitimen(Exchange, ImplicitAPI):
|
|
|
120
120
|
},
|
|
121
121
|
})
|
|
122
122
|
|
|
123
|
-
async def fetch_markets(self,
|
|
123
|
+
async def fetch_markets(self, params={}) -> List[Market]:
|
|
124
124
|
"""
|
|
125
125
|
retrieves data on all markets for bitimen
|
|
126
|
-
|
|
126
|
+
https://bitimen.com
|
|
127
127
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
128
128
|
:returns dict[]: an array of objects representing market data
|
|
129
129
|
"""
|
|
@@ -132,7 +132,7 @@ class bitimen(Exchange, ImplicitAPI):
|
|
|
132
132
|
result = []
|
|
133
133
|
for i in range(0, len(marketKeys)):
|
|
134
134
|
index = marketKeys[i]
|
|
135
|
-
market =
|
|
135
|
+
market = self.parse_market(response[index])
|
|
136
136
|
result.append(market)
|
|
137
137
|
return result
|
|
138
138
|
|
|
@@ -226,7 +226,7 @@ class bitimen(Exchange, ImplicitAPI):
|
|
|
226
226
|
async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
227
227
|
"""
|
|
228
228
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
229
|
-
|
|
229
|
+
https://bitimen.com
|
|
230
230
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
231
231
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
232
232
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -241,7 +241,7 @@ class bitimen(Exchange, ImplicitAPI):
|
|
|
241
241
|
index = marketKeys[i]
|
|
242
242
|
if response[index]['last'] == '0':
|
|
243
243
|
continue
|
|
244
|
-
ticker =
|
|
244
|
+
ticker = self.parse_ticker(response[index])
|
|
245
245
|
symbol = ticker['symbol']
|
|
246
246
|
result[symbol] = ticker
|
|
247
247
|
return self.filter_by_array_tickers(result, 'symbol', symbols)
|
|
@@ -249,7 +249,7 @@ class bitimen(Exchange, ImplicitAPI):
|
|
|
249
249
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
250
250
|
"""
|
|
251
251
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
252
|
-
|
|
252
|
+
https://bitimen.com
|
|
253
253
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
254
254
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
255
255
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -257,7 +257,7 @@ class bitimen(Exchange, ImplicitAPI):
|
|
|
257
257
|
await self.load_markets()
|
|
258
258
|
market = self.market(symbol)
|
|
259
259
|
response = await self.publicGetApiMarketStats(params)
|
|
260
|
-
ticker =
|
|
260
|
+
ticker = self.parse_ticker(response[market['id']])
|
|
261
261
|
return ticker
|
|
262
262
|
|
|
263
263
|
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
|
@@ -336,7 +336,7 @@ class bitimen(Exchange, ImplicitAPI):
|
|
|
336
336
|
async def fetch_ohlcv(self, symbol: str, timeframe='1h', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
337
337
|
"""
|
|
338
338
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
339
|
-
|
|
339
|
+
https://bitimen.com
|
|
340
340
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
341
341
|
:param str timeframe: the length of time each candle represents
|
|
342
342
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -375,7 +375,7 @@ class bitimen(Exchange, ImplicitAPI):
|
|
|
375
375
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
376
376
|
"""
|
|
377
377
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
|
378
|
-
|
|
378
|
+
https://bitimen.com
|
|
379
379
|
:param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
|
|
380
380
|
:param int [limit]: max number of entries per orderbook to return, default is None
|
|
381
381
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|