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/indodax.py
CHANGED
|
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
|
|
|
7
7
|
from ccxt.abstract.indodax import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
9
|
import math
|
|
10
|
-
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
|
10
|
+
from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
|
11
11
|
from typing import List
|
|
12
12
|
from ccxt.base.errors import ExchangeError
|
|
13
13
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -17,18 +17,19 @@ from ccxt.base.errors import InsufficientFunds
|
|
|
17
17
|
from ccxt.base.errors import InvalidOrder
|
|
18
18
|
from ccxt.base.errors import OrderNotFound
|
|
19
19
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
20
|
+
from ccxt.base.precise import Precise
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class indodax(Exchange, ImplicitAPI):
|
|
23
24
|
|
|
24
|
-
def describe(self):
|
|
25
|
+
def describe(self) -> Any:
|
|
25
26
|
return self.deep_extend(super(indodax, self).describe(), {
|
|
26
27
|
'id': 'indodax',
|
|
27
28
|
'name': 'INDODAX',
|
|
28
29
|
'countries': ['ID'], # Indonesia
|
|
29
30
|
# 10 requests per second for making trades => 1000ms / 10 = 100ms
|
|
30
31
|
# 180 requests per minute(public endpoints) = 2 requests per second => cost = (1000ms / rateLimit) / 2 = 5
|
|
31
|
-
'rateLimit':
|
|
32
|
+
'rateLimit': 50,
|
|
32
33
|
'has': {
|
|
33
34
|
'CORS': None,
|
|
34
35
|
'spot': True,
|
|
@@ -37,6 +38,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
37
38
|
'future': False,
|
|
38
39
|
'option': False,
|
|
39
40
|
'addMargin': False,
|
|
41
|
+
'borrowCrossMargin': False,
|
|
42
|
+
'borrowIsolatedMargin': False,
|
|
43
|
+
'borrowMargin': False,
|
|
40
44
|
'cancelAllOrders': False,
|
|
41
45
|
'cancelOrder': True,
|
|
42
46
|
'cancelOrders': False,
|
|
@@ -48,9 +52,14 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
48
52
|
'createStopLimitOrder': False,
|
|
49
53
|
'createStopMarketOrder': False,
|
|
50
54
|
'createStopOrder': False,
|
|
55
|
+
'fetchAllGreeks': False,
|
|
51
56
|
'fetchBalance': True,
|
|
57
|
+
'fetchBorrowInterest': False,
|
|
58
|
+
'fetchBorrowRate': False,
|
|
52
59
|
'fetchBorrowRateHistories': False,
|
|
53
60
|
'fetchBorrowRateHistory': False,
|
|
61
|
+
'fetchBorrowRates': False,
|
|
62
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
54
63
|
'fetchClosedOrders': True,
|
|
55
64
|
'fetchCrossBorrowRate': False,
|
|
56
65
|
'fetchCrossBorrowRates': False,
|
|
@@ -61,30 +70,52 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
61
70
|
'fetchDeposits': False,
|
|
62
71
|
'fetchDepositsWithdrawals': True,
|
|
63
72
|
'fetchFundingHistory': False,
|
|
73
|
+
'fetchFundingInterval': False,
|
|
74
|
+
'fetchFundingIntervals': False,
|
|
64
75
|
'fetchFundingRate': False,
|
|
65
76
|
'fetchFundingRateHistory': False,
|
|
66
77
|
'fetchFundingRates': False,
|
|
78
|
+
'fetchGreeks': False,
|
|
67
79
|
'fetchIndexOHLCV': False,
|
|
68
80
|
'fetchIsolatedBorrowRate': False,
|
|
69
81
|
'fetchIsolatedBorrowRates': False,
|
|
82
|
+
'fetchIsolatedPositions': False,
|
|
70
83
|
'fetchLeverage': False,
|
|
84
|
+
'fetchLeverages': False,
|
|
71
85
|
'fetchLeverageTiers': False,
|
|
86
|
+
'fetchLiquidations': False,
|
|
87
|
+
'fetchLongShortRatio': False,
|
|
88
|
+
'fetchLongShortRatioHistory': False,
|
|
89
|
+
'fetchMarginAdjustmentHistory': False,
|
|
72
90
|
'fetchMarginMode': False,
|
|
91
|
+
'fetchMarginModes': False,
|
|
92
|
+
'fetchMarketLeverageTiers': False,
|
|
73
93
|
'fetchMarkets': True,
|
|
74
94
|
'fetchMarkOHLCV': False,
|
|
95
|
+
'fetchMarkPrice': False,
|
|
96
|
+
'fetchMarkPrices': False,
|
|
97
|
+
'fetchMyLiquidations': False,
|
|
98
|
+
'fetchMySettlementHistory': False,
|
|
99
|
+
'fetchOpenInterest': False,
|
|
75
100
|
'fetchOpenInterestHistory': False,
|
|
101
|
+
'fetchOpenInterests': False,
|
|
76
102
|
'fetchOpenOrders': True,
|
|
103
|
+
'fetchOption': False,
|
|
104
|
+
'fetchOptionChain': False,
|
|
77
105
|
'fetchOrder': True,
|
|
78
106
|
'fetchOrderBook': True,
|
|
79
107
|
'fetchOrders': False,
|
|
80
108
|
'fetchPosition': False,
|
|
109
|
+
'fetchPositionForSymbolWs': False,
|
|
81
110
|
'fetchPositionHistory': False,
|
|
82
111
|
'fetchPositionMode': False,
|
|
83
112
|
'fetchPositions': False,
|
|
84
113
|
'fetchPositionsForSymbol': False,
|
|
114
|
+
'fetchPositionsForSymbolWs': False,
|
|
85
115
|
'fetchPositionsHistory': False,
|
|
86
116
|
'fetchPositionsRisk': False,
|
|
87
117
|
'fetchPremiumIndexOHLCV': False,
|
|
118
|
+
'fetchSettlementHistory': False,
|
|
88
119
|
'fetchTicker': True,
|
|
89
120
|
'fetchTime': True,
|
|
90
121
|
'fetchTrades': True,
|
|
@@ -95,9 +126,13 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
95
126
|
'fetchTransactions': 'emulated',
|
|
96
127
|
'fetchTransfer': False,
|
|
97
128
|
'fetchTransfers': False,
|
|
129
|
+
'fetchUnderlyingAssets': False,
|
|
130
|
+
'fetchVolatilityHistory': False,
|
|
98
131
|
'fetchWithdrawal': False,
|
|
99
132
|
'fetchWithdrawals': False,
|
|
100
133
|
'reduceMargin': False,
|
|
134
|
+
'repayCrossMargin': False,
|
|
135
|
+
'repayIsolatedMargin': False,
|
|
101
136
|
'setLeverage': False,
|
|
102
137
|
'setMargin': False,
|
|
103
138
|
'setMarginMode': False,
|
|
@@ -203,6 +238,70 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
203
238
|
'1w': '1W',
|
|
204
239
|
},
|
|
205
240
|
},
|
|
241
|
+
'features': {
|
|
242
|
+
'spot': {
|
|
243
|
+
'sandbox': False,
|
|
244
|
+
'createOrder': {
|
|
245
|
+
'marginMode': False,
|
|
246
|
+
'triggerPrice': False,
|
|
247
|
+
'triggerPriceType': None,
|
|
248
|
+
'triggerDirection': False,
|
|
249
|
+
'stopLossPrice': False,
|
|
250
|
+
'takeProfitPrice': False,
|
|
251
|
+
'attachedStopLossTakeProfit': None,
|
|
252
|
+
'timeInForce': {
|
|
253
|
+
'IOC': True, # todo implementation
|
|
254
|
+
'FOK': False,
|
|
255
|
+
'PO': False,
|
|
256
|
+
'GTD': False,
|
|
257
|
+
},
|
|
258
|
+
'hedged': False,
|
|
259
|
+
'selfTradePrevention': False,
|
|
260
|
+
'trailing': False,
|
|
261
|
+
'leverage': False,
|
|
262
|
+
'marketBuyByCost': False,
|
|
263
|
+
'marketBuyRequiresPrice': False,
|
|
264
|
+
'iceberg': False,
|
|
265
|
+
},
|
|
266
|
+
'createOrders': None,
|
|
267
|
+
'fetchMyTrades': None, # todo implement
|
|
268
|
+
'fetchOrder': {
|
|
269
|
+
'marginMode': False,
|
|
270
|
+
'trigger': False,
|
|
271
|
+
'trailing': False,
|
|
272
|
+
'symbolRequired': True,
|
|
273
|
+
},
|
|
274
|
+
'fetchOpenOrders': {
|
|
275
|
+
'marginMode': False,
|
|
276
|
+
'limit': None,
|
|
277
|
+
'trigger': False,
|
|
278
|
+
'trailing': False,
|
|
279
|
+
'symbolRequired': False,
|
|
280
|
+
},
|
|
281
|
+
'fetchOrders': None,
|
|
282
|
+
'fetchClosedOrders': {
|
|
283
|
+
'marginMode': False,
|
|
284
|
+
'limit': 1000,
|
|
285
|
+
'daysBack': 100000, # todo
|
|
286
|
+
'daysBackCanceled': 1,
|
|
287
|
+
'untilDays': None,
|
|
288
|
+
'trigger': False,
|
|
289
|
+
'trailing': False,
|
|
290
|
+
'symbolRequired': True,
|
|
291
|
+
},
|
|
292
|
+
'fetchOHLCV': {
|
|
293
|
+
'limit': 2000, # todo: not in request
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
'swap': {
|
|
297
|
+
'linear': None,
|
|
298
|
+
'inverse': None,
|
|
299
|
+
},
|
|
300
|
+
'future': {
|
|
301
|
+
'linear': None,
|
|
302
|
+
'inverse': None,
|
|
303
|
+
},
|
|
304
|
+
},
|
|
206
305
|
'commonCurrencies': {
|
|
207
306
|
'STR': 'XLM',
|
|
208
307
|
'BCHABC': 'BCH',
|
|
@@ -216,10 +315,12 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
216
315
|
def nonce(self):
|
|
217
316
|
return self.milliseconds() - self.options['timeDifference']
|
|
218
317
|
|
|
219
|
-
def fetch_time(self, params={}):
|
|
318
|
+
def fetch_time(self, params={}) -> Int:
|
|
220
319
|
"""
|
|
221
320
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
222
|
-
|
|
321
|
+
|
|
322
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Public-RestAPI.md#server-time
|
|
323
|
+
|
|
223
324
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
224
325
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
|
225
326
|
"""
|
|
@@ -235,7 +336,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
235
336
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
236
337
|
"""
|
|
237
338
|
retrieves data on all markets for indodax
|
|
238
|
-
|
|
339
|
+
|
|
340
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Public-RestAPI.md#pairs
|
|
341
|
+
|
|
239
342
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
240
343
|
:returns dict[]: an array of objects representing market data
|
|
241
344
|
"""
|
|
@@ -352,7 +455,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
352
455
|
def fetch_balance(self, params={}) -> Balances:
|
|
353
456
|
"""
|
|
354
457
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
355
|
-
|
|
458
|
+
|
|
459
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#get-info-endpoint
|
|
460
|
+
|
|
356
461
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
357
462
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
358
463
|
"""
|
|
@@ -393,7 +498,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
393
498
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
394
499
|
"""
|
|
395
500
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
396
|
-
|
|
501
|
+
|
|
502
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Public-RestAPI.md#depth
|
|
503
|
+
|
|
397
504
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
398
505
|
:param int [limit]: the maximum amount of order book entries to return
|
|
399
506
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -451,7 +558,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
451
558
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
452
559
|
"""
|
|
453
560
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
454
|
-
|
|
561
|
+
|
|
562
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Public-RestAPI.md#ticker
|
|
563
|
+
|
|
455
564
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
456
565
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
457
566
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -482,7 +591,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
482
591
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
483
592
|
"""
|
|
484
593
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
485
|
-
|
|
594
|
+
|
|
595
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Public-RestAPI.md#ticker-all
|
|
596
|
+
|
|
486
597
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
487
598
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
488
599
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -529,7 +640,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
529
640
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
530
641
|
"""
|
|
531
642
|
get the list of most recent trades for a particular symbol
|
|
532
|
-
|
|
643
|
+
|
|
644
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Public-RestAPI.md#trades
|
|
645
|
+
|
|
533
646
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
534
647
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
535
648
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -698,7 +811,6 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
698
811
|
'postOnly': None,
|
|
699
812
|
'side': side,
|
|
700
813
|
'price': price,
|
|
701
|
-
'stopPrice': None,
|
|
702
814
|
'triggerPrice': None,
|
|
703
815
|
'cost': cost,
|
|
704
816
|
'average': None,
|
|
@@ -713,7 +825,10 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
713
825
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
714
826
|
"""
|
|
715
827
|
fetches information on an order made by the user
|
|
716
|
-
|
|
828
|
+
|
|
829
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#get-order-endpoints
|
|
830
|
+
|
|
831
|
+
:param str id: order id
|
|
717
832
|
:param str symbol: unified symbol of the market the order was made in
|
|
718
833
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
719
834
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -735,7 +850,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
735
850
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
736
851
|
"""
|
|
737
852
|
fetch all unfilled currently open orders
|
|
738
|
-
|
|
853
|
+
|
|
854
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#open-orders-endpoints
|
|
855
|
+
|
|
739
856
|
:param str symbol: unified market symbol
|
|
740
857
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
741
858
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -770,7 +887,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
770
887
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
771
888
|
"""
|
|
772
889
|
fetches information on multiple closed orders made by the user
|
|
773
|
-
|
|
890
|
+
|
|
891
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#order-history
|
|
892
|
+
|
|
774
893
|
:param str symbol: unified market symbol of the market orders were made in
|
|
775
894
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
776
895
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -792,17 +911,17 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
792
911
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
793
912
|
"""
|
|
794
913
|
create a trade order
|
|
795
|
-
|
|
914
|
+
|
|
915
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#trade-endpoints
|
|
916
|
+
|
|
796
917
|
:param str symbol: unified symbol of the market to create an order in
|
|
797
918
|
:param str type: 'market' or 'limit'
|
|
798
919
|
:param str side: 'buy' or 'sell'
|
|
799
920
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
800
|
-
:param float [price]: the price at which the order is to be
|
|
921
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
801
922
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
802
923
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
803
924
|
"""
|
|
804
|
-
if type != 'limit':
|
|
805
|
-
raise ExchangeError(self.id + ' createOrder() allows limit orders only')
|
|
806
925
|
self.load_markets()
|
|
807
926
|
market = self.market(symbol)
|
|
808
927
|
request: dict = {
|
|
@@ -810,12 +929,36 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
810
929
|
'type': side,
|
|
811
930
|
'price': price,
|
|
812
931
|
}
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
932
|
+
priceIsRequired = False
|
|
933
|
+
quantityIsRequired = False
|
|
934
|
+
if type == 'market':
|
|
935
|
+
if side == 'buy':
|
|
936
|
+
quoteAmount = None
|
|
937
|
+
cost = self.safe_number(params, 'cost')
|
|
938
|
+
params = self.omit(params, 'cost')
|
|
939
|
+
if cost is not None:
|
|
940
|
+
quoteAmount = self.cost_to_precision(symbol, cost)
|
|
941
|
+
else:
|
|
942
|
+
if price is None:
|
|
943
|
+
raise InvalidOrder(self.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend(amount * price).')
|
|
944
|
+
amountString = self.number_to_string(amount)
|
|
945
|
+
priceString = self.number_to_string(price)
|
|
946
|
+
costRequest = Precise.string_mul(amountString, priceString)
|
|
947
|
+
quoteAmount = self.cost_to_precision(symbol, costRequest)
|
|
948
|
+
request[market['quoteId']] = quoteAmount
|
|
949
|
+
else:
|
|
950
|
+
quantityIsRequired = True
|
|
951
|
+
elif type == 'limit':
|
|
952
|
+
priceIsRequired = True
|
|
953
|
+
quantityIsRequired = True
|
|
954
|
+
if side == 'buy':
|
|
955
|
+
request[market['quoteId']] = self.parse_to_numeric(Precise.string_mul(self.number_to_string(amount), self.number_to_string(price)))
|
|
956
|
+
if priceIsRequired:
|
|
957
|
+
if price is None:
|
|
958
|
+
raise InvalidOrder(self.id + ' createOrder() requires a price argument for a ' + type + ' order')
|
|
959
|
+
request['price'] = price
|
|
960
|
+
if quantityIsRequired:
|
|
961
|
+
request[market['baseId']] = self.amount_to_precision(symbol, amount)
|
|
819
962
|
result = self.privatePostTrade(self.extend(request, params))
|
|
820
963
|
data = self.safe_value(result, 'return', {})
|
|
821
964
|
id = self.safe_string(data, 'order_id')
|
|
@@ -827,7 +970,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
827
970
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
828
971
|
"""
|
|
829
972
|
cancels an open order
|
|
830
|
-
|
|
973
|
+
|
|
974
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#cancel-order-endpoints
|
|
975
|
+
|
|
831
976
|
:param str id: order id
|
|
832
977
|
:param str symbol: unified symbol of the market the order was made in
|
|
833
978
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -871,7 +1016,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
871
1016
|
def fetch_transaction_fee(self, code: str, params={}):
|
|
872
1017
|
"""
|
|
873
1018
|
fetch the fee for a transaction
|
|
874
|
-
|
|
1019
|
+
|
|
1020
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#withdraw-fee-endpoints
|
|
1021
|
+
|
|
875
1022
|
:param str code: unified currency code
|
|
876
1023
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
877
1024
|
:returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -903,7 +1050,9 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
903
1050
|
def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
904
1051
|
"""
|
|
905
1052
|
fetch history of deposits and withdrawals
|
|
906
|
-
|
|
1053
|
+
|
|
1054
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#transaction-history-endpoints
|
|
1055
|
+
|
|
907
1056
|
:param str [code]: unified currency code for the currency of the deposit/withdrawals, default is None
|
|
908
1057
|
:param int [since]: timestamp in ms of the earliest deposit/withdrawal, default is None
|
|
909
1058
|
:param int [limit]: max number of deposit/withdrawals to return, default is None
|
|
@@ -995,10 +1144,12 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
995
1144
|
transactions = self.array_concat(withdraws, deposits)
|
|
996
1145
|
return self.parse_transactions(transactions, currency, since, limit)
|
|
997
1146
|
|
|
998
|
-
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
1147
|
+
def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
999
1148
|
"""
|
|
1000
1149
|
make a withdrawal
|
|
1001
|
-
|
|
1150
|
+
|
|
1151
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#withdraw-coin-endpoints
|
|
1152
|
+
|
|
1002
1153
|
:param str code: unified currency code
|
|
1003
1154
|
:param float amount: the amount to withdraw
|
|
1004
1155
|
:param str address: the address to withdraw to
|
|
@@ -1125,10 +1276,12 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
1125
1276
|
}
|
|
1126
1277
|
return self.safe_string(statuses, status, status)
|
|
1127
1278
|
|
|
1128
|
-
def fetch_deposit_addresses(self, codes: Strings = None, params={}):
|
|
1279
|
+
def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
|
|
1129
1280
|
"""
|
|
1130
1281
|
fetch deposit addresses for multiple currencies and chain types
|
|
1131
|
-
|
|
1282
|
+
|
|
1283
|
+
https://github.com/btcid/indodax-official-api-docs/blob/master/Private-RestAPI.md#general-information-on-endpoints
|
|
1284
|
+
|
|
1132
1285
|
:param str[] [codes]: list of unified currency codes, default is None
|
|
1133
1286
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1134
1287
|
:returns dict: a list of `address structures <https://docs.ccxt.com/#/?id=address-structure>`
|
|
@@ -1196,8 +1349,8 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
1196
1349
|
result[code] = {
|
|
1197
1350
|
'info': {},
|
|
1198
1351
|
'currency': code,
|
|
1199
|
-
'address': address,
|
|
1200
1352
|
'network': network,
|
|
1353
|
+
'address': address,
|
|
1201
1354
|
'tag': None,
|
|
1202
1355
|
}
|
|
1203
1356
|
return result
|
|
@@ -1230,11 +1383,15 @@ class indodax(Exchange, ImplicitAPI):
|
|
|
1230
1383
|
# {success: 0, error: "invalid order."}
|
|
1231
1384
|
# or
|
|
1232
1385
|
# [{data, ...}, {...}, ...]
|
|
1386
|
+
# {"success":"1","status":"approved","withdraw_currency":"strm","withdraw_address":"0x2b9A8cd5535D99b419aEfFBF1ae8D90a7eBdb24E","withdraw_amount":"2165.05767839","fee":"21.11000000","amount_after_fee":"2143.94767839","submit_time":"1730759489","withdraw_id":"strm-3423","txid":""}
|
|
1233
1387
|
if isinstance(response, list):
|
|
1234
1388
|
return None # public endpoints may return []-arrays
|
|
1235
1389
|
error = self.safe_value(response, 'error', '')
|
|
1236
1390
|
if not ('success' in response) and error == '':
|
|
1237
1391
|
return None # no 'success' property on public responses
|
|
1392
|
+
status = self.safe_string(response, 'success')
|
|
1393
|
+
if status == 'approved':
|
|
1394
|
+
return None
|
|
1238
1395
|
if self.safe_integer(response, 'success', 0) == 1:
|
|
1239
1396
|
# {success: 1, return: {orders: []}}
|
|
1240
1397
|
if not ('return' in response):
|
ccxt/jibitex.py
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.jibitex 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 jibitex(Exchange, ImplicitAPI):
|
|
13
13
|
|
|
14
|
-
def describe(self):
|
|
14
|
+
def describe(self) -> Any:
|
|
15
15
|
return self.deep_extend(super(jibitex, self).describe(), {
|
|
16
16
|
'id': 'jibitex',
|
|
17
17
|
'name': 'Jibitex',
|
|
18
|
-
'
|
|
18
|
+
'countries': ['IR'],
|
|
19
19
|
'rateLimit': 1000,
|
|
20
20
|
'version': '1',
|
|
21
21
|
'certified': False,
|
|
@@ -118,10 +118,10 @@ class jibitex(Exchange, ImplicitAPI):
|
|
|
118
118
|
},
|
|
119
119
|
})
|
|
120
120
|
|
|
121
|
-
def fetch_markets(self,
|
|
121
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
|
122
122
|
"""
|
|
123
123
|
retrieves data on all markets for jibitex
|
|
124
|
-
|
|
124
|
+
https://jibitex.co/
|
|
125
125
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
126
126
|
:returns dict[]: an array of objects representing market data
|
|
127
127
|
"""
|
|
@@ -223,7 +223,7 @@ class jibitex(Exchange, ImplicitAPI):
|
|
|
223
223
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
224
224
|
"""
|
|
225
225
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
226
|
-
|
|
226
|
+
https://jibitex.co/
|
|
227
227
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
228
228
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
229
229
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -246,7 +246,7 @@ class jibitex(Exchange, ImplicitAPI):
|
|
|
246
246
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
247
247
|
"""
|
|
248
248
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
249
|
-
|
|
249
|
+
https://jibitex.co/
|
|
250
250
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
251
251
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
252
252
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -330,7 +330,7 @@ class jibitex(Exchange, ImplicitAPI):
|
|
|
330
330
|
def fetch_ohlcv(self, symbol: str, timeframe='1h', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
331
331
|
"""
|
|
332
332
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
333
|
-
|
|
333
|
+
https://jibitex.co/
|
|
334
334
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
335
335
|
:param str timeframe: the length of time each candle represents
|
|
336
336
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -370,7 +370,7 @@ class jibitex(Exchange, ImplicitAPI):
|
|
|
370
370
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
371
371
|
"""
|
|
372
372
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
|
373
|
-
|
|
373
|
+
https://jibitex.co/
|
|
374
374
|
:param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
|
|
375
375
|
:param int [limit]: max number of entries per orderbook to return, default is None
|
|
376
376
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|