ccxt-ir 4.3.46.0.3__py2.py3-none-any.whl → 4.5.1__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 +8 -8
- 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 +10 -10
- 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 +32 -38
- 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 +32 -27
- 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 +34 -30
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +15 -14
- 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 +30 -36
- 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 +29 -24
- 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 +32 -28
- 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 +13 -12
- 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.1.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.1.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.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.1.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.1.dist-info}/top_level.txt +0 -0
ccxt/probit.py
CHANGED
|
@@ -6,20 +6,21 @@
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.probit import ImplicitAPI
|
|
8
8
|
import math
|
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
|
9
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
13
13
|
from ccxt.base.errors import ArgumentsRequired
|
|
14
14
|
from ccxt.base.errors import BadRequest
|
|
15
15
|
from ccxt.base.errors import BadSymbol
|
|
16
|
-
from ccxt.base.errors import
|
|
16
|
+
from ccxt.base.errors import MarketClosed
|
|
17
17
|
from ccxt.base.errors import InsufficientFunds
|
|
18
18
|
from ccxt.base.errors import InvalidAddress
|
|
19
19
|
from ccxt.base.errors import InvalidOrder
|
|
20
20
|
from ccxt.base.errors import DDoSProtection
|
|
21
21
|
from ccxt.base.errors import RateLimitExceeded
|
|
22
22
|
from ccxt.base.errors import ExchangeNotAvailable
|
|
23
|
+
from ccxt.base.errors import BadResponse
|
|
23
24
|
from ccxt.base.decimal_to_precision import TRUNCATE
|
|
24
25
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
25
26
|
from ccxt.base.precise import Precise
|
|
@@ -27,7 +28,7 @@ from ccxt.base.precise import Precise
|
|
|
27
28
|
|
|
28
29
|
class probit(Exchange, ImplicitAPI):
|
|
29
30
|
|
|
30
|
-
def describe(self):
|
|
31
|
+
def describe(self) -> Any:
|
|
31
32
|
return self.deep_extend(super(probit, self).describe(), {
|
|
32
33
|
'id': 'probit',
|
|
33
34
|
'name': 'ProBit',
|
|
@@ -42,7 +43,12 @@ class probit(Exchange, ImplicitAPI):
|
|
|
42
43
|
'future': False,
|
|
43
44
|
'option': False,
|
|
44
45
|
'addMargin': False,
|
|
46
|
+
'borrowCrossMargin': False,
|
|
47
|
+
'borrowIsolatedMargin': False,
|
|
48
|
+
'borrowMargin': False,
|
|
45
49
|
'cancelOrder': True,
|
|
50
|
+
'closeAllPositions': False,
|
|
51
|
+
'closePosition': False,
|
|
46
52
|
'createMarketBuyOrderWithCost': True,
|
|
47
53
|
'createMarketOrder': True,
|
|
48
54
|
'createMarketOrderWithCost': False,
|
|
@@ -52,33 +58,58 @@ class probit(Exchange, ImplicitAPI):
|
|
|
52
58
|
'createStopLimitOrder': False,
|
|
53
59
|
'createStopMarketOrder': False,
|
|
54
60
|
'createStopOrder': False,
|
|
61
|
+
'fetchAllGreeks': False,
|
|
55
62
|
'fetchBalance': True,
|
|
63
|
+
'fetchBorrowInterest': False,
|
|
64
|
+
'fetchBorrowRate': False,
|
|
56
65
|
'fetchBorrowRateHistories': False,
|
|
57
66
|
'fetchBorrowRateHistory': False,
|
|
67
|
+
'fetchBorrowRates': False,
|
|
68
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
58
69
|
'fetchClosedOrders': True,
|
|
59
70
|
'fetchCrossBorrowRate': False,
|
|
60
71
|
'fetchCrossBorrowRates': False,
|
|
61
72
|
'fetchCurrencies': True,
|
|
62
73
|
'fetchDepositAddress': True,
|
|
63
74
|
'fetchDepositAddresses': True,
|
|
75
|
+
'fetchDepositAddressesByNetwork': False,
|
|
64
76
|
'fetchDeposits': True,
|
|
65
77
|
'fetchDepositsWithdrawals': True,
|
|
66
78
|
'fetchFundingHistory': False,
|
|
79
|
+
'fetchFundingInterval': False,
|
|
80
|
+
'fetchFundingIntervals': False,
|
|
67
81
|
'fetchFundingRate': False,
|
|
68
82
|
'fetchFundingRateHistory': False,
|
|
69
83
|
'fetchFundingRates': False,
|
|
84
|
+
'fetchGreeks': False,
|
|
70
85
|
'fetchIndexOHLCV': False,
|
|
71
86
|
'fetchIsolatedBorrowRate': False,
|
|
72
87
|
'fetchIsolatedBorrowRates': False,
|
|
88
|
+
'fetchIsolatedPositions': False,
|
|
73
89
|
'fetchLeverage': False,
|
|
90
|
+
'fetchLeverages': False,
|
|
74
91
|
'fetchLeverageTiers': False,
|
|
92
|
+
'fetchLiquidations': False,
|
|
93
|
+
'fetchLongShortRatio': False,
|
|
94
|
+
'fetchLongShortRatioHistory': False,
|
|
95
|
+
'fetchMarginAdjustmentHistory': False,
|
|
75
96
|
'fetchMarginMode': False,
|
|
97
|
+
'fetchMarginModes': False,
|
|
98
|
+
'fetchMarketLeverageTiers': False,
|
|
76
99
|
'fetchMarkets': True,
|
|
77
100
|
'fetchMarkOHLCV': False,
|
|
101
|
+
'fetchMarkPrice': False,
|
|
102
|
+
'fetchMarkPrices': False,
|
|
103
|
+
'fetchMyLiquidations': False,
|
|
104
|
+
'fetchMySettlementHistory': False,
|
|
78
105
|
'fetchMyTrades': True,
|
|
79
106
|
'fetchOHLCV': True,
|
|
107
|
+
'fetchOpenInterest': False,
|
|
80
108
|
'fetchOpenInterestHistory': False,
|
|
109
|
+
'fetchOpenInterests': False,
|
|
81
110
|
'fetchOpenOrders': True,
|
|
111
|
+
'fetchOption': False,
|
|
112
|
+
'fetchOptionChain': False,
|
|
82
113
|
'fetchOrder': True,
|
|
83
114
|
'fetchOrderBook': True,
|
|
84
115
|
'fetchPosition': False,
|
|
@@ -89,6 +120,7 @@ class probit(Exchange, ImplicitAPI):
|
|
|
89
120
|
'fetchPositionsHistory': False,
|
|
90
121
|
'fetchPositionsRisk': False,
|
|
91
122
|
'fetchPremiumIndexOHLCV': False,
|
|
123
|
+
'fetchSettlementHistory': False,
|
|
92
124
|
'fetchTicker': True,
|
|
93
125
|
'fetchTickers': True,
|
|
94
126
|
'fetchTime': True,
|
|
@@ -98,11 +130,16 @@ class probit(Exchange, ImplicitAPI):
|
|
|
98
130
|
'fetchTransactions': 'emulated',
|
|
99
131
|
'fetchTransfer': False,
|
|
100
132
|
'fetchTransfers': False,
|
|
133
|
+
'fetchUnderlyingAssets': False,
|
|
134
|
+
'fetchVolatilityHistory': False,
|
|
101
135
|
'fetchWithdrawal': False,
|
|
102
136
|
'fetchWithdrawals': True,
|
|
103
137
|
'reduceMargin': False,
|
|
104
|
-
'
|
|
138
|
+
'repayCrossMargin': False,
|
|
139
|
+
'repayIsolatedMargin': False,
|
|
140
|
+
'sandbox': False,
|
|
105
141
|
'setLeverage': False,
|
|
142
|
+
'setMargin': False,
|
|
106
143
|
'setMarginMode': False,
|
|
107
144
|
'setPositionMode': False,
|
|
108
145
|
'signIn': True,
|
|
@@ -183,6 +220,77 @@ class probit(Exchange, ImplicitAPI):
|
|
|
183
220
|
'taker': self.parse_number('0.002'),
|
|
184
221
|
},
|
|
185
222
|
},
|
|
223
|
+
'features': {
|
|
224
|
+
'spot': {
|
|
225
|
+
'sandbox': False,
|
|
226
|
+
'createOrder': {
|
|
227
|
+
'marginMode': False,
|
|
228
|
+
'triggerPrice': False,
|
|
229
|
+
'triggerDirection': False,
|
|
230
|
+
'triggerPriceType': None,
|
|
231
|
+
'stopLossPrice': False,
|
|
232
|
+
'takeProfitPrice': False,
|
|
233
|
+
'attachedStopLossTakeProfit': None,
|
|
234
|
+
# todo
|
|
235
|
+
'timeInForce': {
|
|
236
|
+
'IOC': True,
|
|
237
|
+
'FOK': True,
|
|
238
|
+
'PO': False,
|
|
239
|
+
'GTD': False,
|
|
240
|
+
},
|
|
241
|
+
'hedged': False,
|
|
242
|
+
'trailing': False,
|
|
243
|
+
'leverage': False,
|
|
244
|
+
'marketBuyByCost': True,
|
|
245
|
+
'marketBuyRequiresPrice': False,
|
|
246
|
+
'selfTradePrevention': False,
|
|
247
|
+
'iceberg': False,
|
|
248
|
+
},
|
|
249
|
+
'createOrders': None,
|
|
250
|
+
'fetchMyTrades': {
|
|
251
|
+
'marginMode': False,
|
|
252
|
+
'limit': 1000,
|
|
253
|
+
'daysBack': 100000, # todo
|
|
254
|
+
'untilDays': 100000, # todo
|
|
255
|
+
'symbolRequired': False,
|
|
256
|
+
},
|
|
257
|
+
'fetchOrder': {
|
|
258
|
+
'marginMode': False,
|
|
259
|
+
'trigger': False,
|
|
260
|
+
'trailing': False,
|
|
261
|
+
'symbolRequired': True,
|
|
262
|
+
},
|
|
263
|
+
'fetchOpenOrders': {
|
|
264
|
+
'marginMode': False,
|
|
265
|
+
'limit': None,
|
|
266
|
+
'trigger': False,
|
|
267
|
+
'trailing': False,
|
|
268
|
+
'symbolRequired': False,
|
|
269
|
+
},
|
|
270
|
+
'fetchOrders': None,
|
|
271
|
+
'fetchClosedOrders': {
|
|
272
|
+
'marginMode': False,
|
|
273
|
+
'limit': 1000,
|
|
274
|
+
'daysBack': 100000, # todo
|
|
275
|
+
'daysBackCanceled': 1, # todo
|
|
276
|
+
'untilDays': 90,
|
|
277
|
+
'trigger': False,
|
|
278
|
+
'trailing': False,
|
|
279
|
+
'symbolRequired': False,
|
|
280
|
+
},
|
|
281
|
+
'fetchOHLCV': {
|
|
282
|
+
'limit': 4000,
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
'swap': {
|
|
286
|
+
'linear': None,
|
|
287
|
+
'inverse': None,
|
|
288
|
+
},
|
|
289
|
+
'future': {
|
|
290
|
+
'linear': None,
|
|
291
|
+
'inverse': None,
|
|
292
|
+
},
|
|
293
|
+
},
|
|
186
294
|
'exceptions': {
|
|
187
295
|
'exact': {
|
|
188
296
|
'UNAUTHORIZED': AuthenticationError,
|
|
@@ -194,7 +302,7 @@ class probit(Exchange, ImplicitAPI):
|
|
|
194
302
|
'RATE_LIMIT_EXCEEDED': RateLimitExceeded, # You are sending requests too frequently. Please try it later.
|
|
195
303
|
'MARKET_UNAVAILABLE': ExchangeNotAvailable, # Market is closed today
|
|
196
304
|
'INVALID_MARKET': BadSymbol, # Requested market is not exist
|
|
197
|
-
'MARKET_CLOSED':
|
|
305
|
+
'MARKET_CLOSED': MarketClosed, # {"errorCode":"MARKET_CLOSED"}
|
|
198
306
|
'MARKET_NOT_FOUND': BadSymbol, # {"errorCode":"MARKET_NOT_FOUND","message":"8e2b8496-0a1e-5beb-b990-a205b902eabe","details":{}}
|
|
199
307
|
'INVALID_CURRENCY': BadRequest, # Requested currency is not exist on ProBit system
|
|
200
308
|
'TOO_MANY_OPEN_ORDERS': DDoSProtection, # Too many open orders
|
|
@@ -243,7 +351,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
243
351
|
|
|
244
352
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
245
353
|
"""
|
|
246
|
-
|
|
354
|
+
|
|
355
|
+
https://docs-en.probit.com/reference/market
|
|
356
|
+
|
|
247
357
|
retrieves data on all markets for probit
|
|
248
358
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
249
359
|
:returns dict[]: an array of objects representing market data
|
|
@@ -283,6 +393,8 @@ class probit(Exchange, ImplicitAPI):
|
|
|
283
393
|
base = self.safe_currency_code(baseId)
|
|
284
394
|
quote = self.safe_currency_code(quoteId)
|
|
285
395
|
closed = self.safe_bool(market, 'closed', False)
|
|
396
|
+
showInUI = self.safe_bool(market, 'show_in_ui', True)
|
|
397
|
+
active = not closed and showInUI
|
|
286
398
|
takerFeeRate = self.safe_string(market, 'taker_fee_rate')
|
|
287
399
|
taker = Precise.string_div(takerFeeRate, '100')
|
|
288
400
|
makerFeeRate = self.safe_string(market, 'maker_fee_rate')
|
|
@@ -302,7 +414,7 @@ class probit(Exchange, ImplicitAPI):
|
|
|
302
414
|
'swap': False,
|
|
303
415
|
'future': False,
|
|
304
416
|
'option': False,
|
|
305
|
-
'active':
|
|
417
|
+
'active': active,
|
|
306
418
|
'contract': False,
|
|
307
419
|
'linear': None,
|
|
308
420
|
'inverse': None,
|
|
@@ -342,7 +454,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
342
454
|
|
|
343
455
|
def fetch_currencies(self, params={}) -> Currencies:
|
|
344
456
|
"""
|
|
345
|
-
|
|
457
|
+
|
|
458
|
+
https://docs-en.probit.com/reference/currency
|
|
459
|
+
|
|
346
460
|
fetches all available currencies on an exchange
|
|
347
461
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
348
462
|
:returns dict: an associative dictionary of currencies
|
|
@@ -404,32 +518,23 @@ class probit(Exchange, ImplicitAPI):
|
|
|
404
518
|
# ]
|
|
405
519
|
# }
|
|
406
520
|
#
|
|
407
|
-
currencies = self.
|
|
521
|
+
currencies = self.safe_list(response, 'data', [])
|
|
408
522
|
result: dict = {}
|
|
409
523
|
for i in range(0, len(currencies)):
|
|
410
524
|
currency = currencies[i]
|
|
411
525
|
id = self.safe_string(currency, 'id')
|
|
412
526
|
code = self.safe_currency_code(id)
|
|
413
|
-
displayName = self.
|
|
527
|
+
displayName = self.safe_dict(currency, 'display_name')
|
|
414
528
|
name = self.safe_string(displayName, 'en-us')
|
|
415
|
-
platforms = self.
|
|
529
|
+
platforms = self.safe_list(currency, 'platform', [])
|
|
416
530
|
platformsByPriority = self.sort_by(platforms, 'priority')
|
|
417
|
-
platform = None
|
|
418
531
|
networkList: dict = {}
|
|
419
532
|
for j in range(0, len(platformsByPriority)):
|
|
420
533
|
network = platformsByPriority[j]
|
|
421
534
|
idInner = self.safe_string(network, 'id')
|
|
422
535
|
networkCode = self.network_id_to_code(idInner)
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
currentDeposit = not currentDepositSuspended
|
|
426
|
-
currentWithdraw = not currentWithdrawalSuspended
|
|
427
|
-
currentActive = currentDeposit and currentWithdraw
|
|
428
|
-
if currentActive:
|
|
429
|
-
platform = network
|
|
430
|
-
precision = self.parse_precision(self.safe_string(network, 'precision'))
|
|
431
|
-
withdrawFee = self.safe_value(network, 'withdrawal_fee', [])
|
|
432
|
-
networkFee = self.safe_value(withdrawFee, 0, {})
|
|
536
|
+
withdrawFee = self.safe_list(network, 'withdrawal_fee', [])
|
|
537
|
+
networkFee = self.safe_dict(withdrawFee, 0, {})
|
|
433
538
|
for k in range(0, len(withdrawFee)):
|
|
434
539
|
withdrawPlatform = withdrawFee[k]
|
|
435
540
|
feeCurrencyId = self.safe_string(withdrawPlatform, 'currency_id')
|
|
@@ -439,11 +544,11 @@ class probit(Exchange, ImplicitAPI):
|
|
|
439
544
|
networkList[networkCode] = {
|
|
440
545
|
'id': idInner,
|
|
441
546
|
'network': networkCode,
|
|
442
|
-
'active':
|
|
443
|
-
'deposit':
|
|
444
|
-
'withdraw':
|
|
547
|
+
'active': None,
|
|
548
|
+
'deposit': not self.safe_bool(network, 'deposit_suspended'),
|
|
549
|
+
'withdraw': not self.safe_bool(network, 'withdrawal_suspended'),
|
|
445
550
|
'fee': self.safe_number(networkFee, 'amount'),
|
|
446
|
-
'precision': self.parse_number(precision),
|
|
551
|
+
'precision': self.parse_number(self.parse_precision(self.safe_string(network, 'precision'))),
|
|
447
552
|
'limits': {
|
|
448
553
|
'withdraw': {
|
|
449
554
|
'min': self.safe_number(network, 'min_withdrawal_amount'),
|
|
@@ -456,52 +561,33 @@ class probit(Exchange, ImplicitAPI):
|
|
|
456
561
|
},
|
|
457
562
|
'info': network,
|
|
458
563
|
}
|
|
459
|
-
|
|
460
|
-
platform = self.safe_value(platformsByPriority, 0, {})
|
|
461
|
-
depositSuspended = self.safe_value(platform, 'deposit_suspended')
|
|
462
|
-
withdrawalSuspended = self.safe_value(platform, 'withdrawal_suspended')
|
|
463
|
-
deposit = not depositSuspended
|
|
464
|
-
withdraw = not withdrawalSuspended
|
|
465
|
-
active = deposit and withdraw
|
|
466
|
-
withdrawalFees = self.safe_value(platform, 'withdrawal_fee', {})
|
|
467
|
-
fees = []
|
|
468
|
-
# sometimes the withdrawal fee is an empty object
|
|
469
|
-
# [{'amount': '0.015', 'priority': 1, 'currency_id': 'ETH'}, {}]
|
|
470
|
-
for j in range(0, len(withdrawalFees)):
|
|
471
|
-
withdrawalFeeInner = withdrawalFees[j]
|
|
472
|
-
amount = self.safe_number(withdrawalFeeInner, 'amount')
|
|
473
|
-
priority = self.safe_integer(withdrawalFeeInner, 'priority')
|
|
474
|
-
if (amount is not None) and (priority is not None):
|
|
475
|
-
fees.append(withdrawalFeeInner)
|
|
476
|
-
withdrawalFeesByPriority = self.sort_by(fees, 'priority')
|
|
477
|
-
withdrawalFee = self.safe_value(withdrawalFeesByPriority, 0, {})
|
|
478
|
-
fee = self.safe_number(withdrawalFee, 'amount')
|
|
479
|
-
result[code] = {
|
|
564
|
+
result[code] = self.safe_currency_structure({
|
|
480
565
|
'id': id,
|
|
481
566
|
'code': code,
|
|
482
567
|
'info': currency,
|
|
483
568
|
'name': name,
|
|
484
|
-
'active':
|
|
485
|
-
'deposit':
|
|
486
|
-
'withdraw':
|
|
487
|
-
'
|
|
488
|
-
'
|
|
569
|
+
'active': None,
|
|
570
|
+
'deposit': None,
|
|
571
|
+
'withdraw': None,
|
|
572
|
+
'type': 'crypto',
|
|
573
|
+
'fee': None,
|
|
574
|
+
'precision': None,
|
|
489
575
|
'limits': {
|
|
490
576
|
'amount': {
|
|
491
577
|
'min': None,
|
|
492
578
|
'max': None,
|
|
493
579
|
},
|
|
494
580
|
'deposit': {
|
|
495
|
-
'min':
|
|
581
|
+
'min': None,
|
|
496
582
|
'max': None,
|
|
497
583
|
},
|
|
498
584
|
'withdraw': {
|
|
499
|
-
'min':
|
|
585
|
+
'min': None,
|
|
500
586
|
'max': None,
|
|
501
587
|
},
|
|
502
588
|
},
|
|
503
589
|
'networks': networkList,
|
|
504
|
-
}
|
|
590
|
+
})
|
|
505
591
|
return result
|
|
506
592
|
|
|
507
593
|
def parse_balance(self, response) -> Balances:
|
|
@@ -523,7 +609,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
523
609
|
|
|
524
610
|
def fetch_balance(self, params={}) -> Balances:
|
|
525
611
|
"""
|
|
526
|
-
|
|
612
|
+
|
|
613
|
+
https://docs-en.probit.com/reference/balance
|
|
614
|
+
|
|
527
615
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
528
616
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
529
617
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
@@ -545,7 +633,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
545
633
|
|
|
546
634
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
547
635
|
"""
|
|
548
|
-
|
|
636
|
+
|
|
637
|
+
https://docs-en.probit.com/reference/order_book
|
|
638
|
+
|
|
549
639
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
550
640
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
551
641
|
:param int [limit]: the maximum amount of order book entries to return
|
|
@@ -573,7 +663,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
573
663
|
|
|
574
664
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
575
665
|
"""
|
|
576
|
-
|
|
666
|
+
|
|
667
|
+
https://docs-en.probit.com/reference/ticker
|
|
668
|
+
|
|
577
669
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
578
670
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
579
671
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -606,7 +698,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
606
698
|
|
|
607
699
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
608
700
|
"""
|
|
609
|
-
|
|
701
|
+
|
|
702
|
+
https://docs-en.probit.com/reference/ticker
|
|
703
|
+
|
|
610
704
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
611
705
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
612
706
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -685,7 +779,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
685
779
|
|
|
686
780
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
687
781
|
"""
|
|
688
|
-
|
|
782
|
+
|
|
783
|
+
https://docs-en.probit.com/reference/trade
|
|
784
|
+
|
|
689
785
|
fetch all trades made by the user
|
|
690
786
|
:param str symbol: unified market symbol
|
|
691
787
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
@@ -734,7 +830,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
734
830
|
|
|
735
831
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
736
832
|
"""
|
|
737
|
-
|
|
833
|
+
|
|
834
|
+
https://docs-en.probit.com/reference/trade-1
|
|
835
|
+
|
|
738
836
|
get the list of most recent trades for a particular symbol
|
|
739
837
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
740
838
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
@@ -847,9 +945,11 @@ class probit(Exchange, ImplicitAPI):
|
|
|
847
945
|
'fee': fee,
|
|
848
946
|
}, market)
|
|
849
947
|
|
|
850
|
-
def fetch_time(self, params={}):
|
|
948
|
+
def fetch_time(self, params={}) -> Int:
|
|
851
949
|
"""
|
|
852
|
-
|
|
950
|
+
|
|
951
|
+
https://docs-en.probit.com/reference/time
|
|
952
|
+
|
|
853
953
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
854
954
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
855
955
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
|
@@ -892,13 +992,16 @@ class probit(Exchange, ImplicitAPI):
|
|
|
892
992
|
|
|
893
993
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
894
994
|
"""
|
|
895
|
-
|
|
995
|
+
|
|
996
|
+
https://docs-en.probit.com/reference/candle
|
|
997
|
+
|
|
896
998
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
897
999
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
898
1000
|
:param str timeframe: the length of time each candle represents
|
|
899
1001
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
900
1002
|
:param int [limit]: the maximum amount of candles to fetch
|
|
901
1003
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1004
|
+
:param str [params.until]: timestamp in ms of the earliest candle to fetch
|
|
902
1005
|
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
|
903
1006
|
"""
|
|
904
1007
|
self.load_markets()
|
|
@@ -914,18 +1017,19 @@ class probit(Exchange, ImplicitAPI):
|
|
|
914
1017
|
'limit': requestLimit, # max 1000
|
|
915
1018
|
}
|
|
916
1019
|
now = self.milliseconds()
|
|
917
|
-
|
|
1020
|
+
until = self.safe_integer(params, 'until')
|
|
1021
|
+
durationMilliseconds = self.parse_timeframe(timeframe) * 1000
|
|
918
1022
|
startTime = since
|
|
919
|
-
endTime = now
|
|
1023
|
+
endTime = until - durationMilliseconds if (until is not None) else now
|
|
920
1024
|
if since is None:
|
|
921
1025
|
if limit is None:
|
|
922
1026
|
limit = requestLimit
|
|
923
|
-
|
|
1027
|
+
startLimit = limit - 1
|
|
1028
|
+
startTime = endTime - startLimit * durationMilliseconds
|
|
924
1029
|
else:
|
|
925
|
-
if limit is None:
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
endTime = self.sum(since, self.sum(limit, 1) * duration * 1000)
|
|
1030
|
+
if limit is not None:
|
|
1031
|
+
endByLimit = self.sum(since, limit * durationMilliseconds)
|
|
1032
|
+
endTime = min(endTime, endByLimit)
|
|
929
1033
|
startTimeNormalized = self.normalize_ohlcv_timestamp(startTime, timeframe)
|
|
930
1034
|
endTimeNormalized = self.normalize_ohlcv_timestamp(endTime, timeframe, True)
|
|
931
1035
|
request['start_time'] = startTimeNormalized
|
|
@@ -976,7 +1080,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
976
1080
|
|
|
977
1081
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
978
1082
|
"""
|
|
979
|
-
|
|
1083
|
+
|
|
1084
|
+
https://docs-en.probit.com/reference/open_order-1
|
|
1085
|
+
|
|
980
1086
|
fetch all unfilled currently open orders
|
|
981
1087
|
:param str symbol: unified market symbol
|
|
982
1088
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
@@ -997,7 +1103,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
997
1103
|
|
|
998
1104
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
999
1105
|
"""
|
|
1000
|
-
|
|
1106
|
+
|
|
1107
|
+
https://docs-en.probit.com/reference/order
|
|
1108
|
+
|
|
1001
1109
|
fetches information on multiple closed orders made by the user
|
|
1002
1110
|
:param str symbol: unified market symbol of the market orders were made in
|
|
1003
1111
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
@@ -1025,8 +1133,11 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1025
1133
|
|
|
1026
1134
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1027
1135
|
"""
|
|
1028
|
-
|
|
1136
|
+
|
|
1137
|
+
https://docs-en.probit.com/reference/order-3
|
|
1138
|
+
|
|
1029
1139
|
fetches information on an order made by the user
|
|
1140
|
+
:param str id: the order id
|
|
1030
1141
|
:param str symbol: unified symbol of the market the order was made in
|
|
1031
1142
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1032
1143
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1109,7 +1220,6 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1109
1220
|
'side': side,
|
|
1110
1221
|
'status': status,
|
|
1111
1222
|
'price': price,
|
|
1112
|
-
'stopPrice': None,
|
|
1113
1223
|
'triggerPrice': None,
|
|
1114
1224
|
'amount': amount,
|
|
1115
1225
|
'filled': filled,
|
|
@@ -1126,12 +1236,14 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1126
1236
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
1127
1237
|
"""
|
|
1128
1238
|
create a trade order
|
|
1129
|
-
|
|
1239
|
+
|
|
1240
|
+
https://docs-en.probit.com/reference/order-1
|
|
1241
|
+
|
|
1130
1242
|
:param str symbol: unified symbol of the market to create an order in
|
|
1131
1243
|
:param str type: 'market' or 'limit'
|
|
1132
1244
|
:param str side: 'buy' or 'sell'
|
|
1133
1245
|
:param float amount: how much you want to trade in units of the base currency
|
|
1134
|
-
:param float [price]: the price at which the order is to be
|
|
1246
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
1135
1247
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1136
1248
|
:param float [params.cost]: the quote quantity that can be used alternative for the amount for market buy orders
|
|
1137
1249
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1211,7 +1323,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1211
1323
|
|
|
1212
1324
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
1213
1325
|
"""
|
|
1214
|
-
|
|
1326
|
+
|
|
1327
|
+
https://docs-en.probit.com/reference/order-2
|
|
1328
|
+
|
|
1215
1329
|
cancels an open order
|
|
1216
1330
|
:param str id: order id
|
|
1217
1331
|
:param str symbol: unified symbol of the market the order was made in
|
|
@@ -1230,7 +1344,7 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1230
1344
|
data = self.safe_dict(response, 'data')
|
|
1231
1345
|
return self.parse_order(data)
|
|
1232
1346
|
|
|
1233
|
-
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
|
1347
|
+
def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
|
|
1234
1348
|
address = self.safe_string(depositAddress, 'address')
|
|
1235
1349
|
tag = self.safe_string(depositAddress, 'destination_tag')
|
|
1236
1350
|
currencyId = self.safe_string(depositAddress, 'currency_id')
|
|
@@ -1239,16 +1353,18 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1239
1353
|
network = self.safe_string(depositAddress, 'platform_id')
|
|
1240
1354
|
self.check_address(address)
|
|
1241
1355
|
return {
|
|
1356
|
+
'info': depositAddress,
|
|
1242
1357
|
'currency': code,
|
|
1358
|
+
'network': network,
|
|
1243
1359
|
'address': address,
|
|
1244
1360
|
'tag': tag,
|
|
1245
|
-
'network': network,
|
|
1246
|
-
'info': depositAddress,
|
|
1247
1361
|
}
|
|
1248
1362
|
|
|
1249
|
-
def fetch_deposit_address(self, code: str, params={}):
|
|
1363
|
+
def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1250
1364
|
"""
|
|
1251
|
-
|
|
1365
|
+
|
|
1366
|
+
https://docs-en.probit.com/reference/deposit_address
|
|
1367
|
+
|
|
1252
1368
|
fetch the deposit address for a currency associated with self account
|
|
1253
1369
|
:param str code: unified currency code
|
|
1254
1370
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1296,9 +1412,11 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1296
1412
|
raise InvalidAddress(self.id + ' fetchDepositAddress() returned an empty response')
|
|
1297
1413
|
return self.parse_deposit_address(firstAddress, currency)
|
|
1298
1414
|
|
|
1299
|
-
def fetch_deposit_addresses(self, codes: Strings = None, params={}):
|
|
1415
|
+
def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
|
|
1300
1416
|
"""
|
|
1301
|
-
|
|
1417
|
+
|
|
1418
|
+
https://docs-en.probit.com/reference/deposit_address
|
|
1419
|
+
|
|
1302
1420
|
fetch deposit addresses for multiple currencies and chain types
|
|
1303
1421
|
:param str[]|None codes: list of unified currency codes, default is None
|
|
1304
1422
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1316,9 +1434,11 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1316
1434
|
data = self.safe_list(response, 'data', [])
|
|
1317
1435
|
return self.parse_deposit_addresses(data, codes)
|
|
1318
1436
|
|
|
1319
|
-
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
1437
|
+
def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
1320
1438
|
"""
|
|
1321
|
-
|
|
1439
|
+
|
|
1440
|
+
https://docs-en.probit.com/reference/withdrawal
|
|
1441
|
+
|
|
1322
1442
|
make a withdrawal
|
|
1323
1443
|
:param str code: unified currency code
|
|
1324
1444
|
:param float amount: the amount to withdraw
|
|
@@ -1392,12 +1512,14 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1392
1512
|
def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1393
1513
|
"""
|
|
1394
1514
|
fetch history of deposits and withdrawals
|
|
1395
|
-
|
|
1515
|
+
|
|
1516
|
+
https://docs-en.probit.com/reference/transferpayment
|
|
1517
|
+
|
|
1396
1518
|
:param str code: unified currency code
|
|
1397
1519
|
:param int [since]: the earliest time in ms to fetch transactions for
|
|
1398
1520
|
:param int [limit]: the maximum number of transaction structures to retrieve
|
|
1399
|
-
:param int [params.until]: the latest time in ms to fetch transactions for
|
|
1400
1521
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1522
|
+
:param int [params.until]: the latest time in ms to fetch transactions for
|
|
1401
1523
|
:returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
|
|
1402
1524
|
"""
|
|
1403
1525
|
self.load_markets()
|
|
@@ -1526,7 +1648,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1526
1648
|
|
|
1527
1649
|
def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
|
|
1528
1650
|
"""
|
|
1529
|
-
|
|
1651
|
+
|
|
1652
|
+
https://docs-en.probit.com/reference/currency
|
|
1653
|
+
|
|
1530
1654
|
fetch deposit and withdraw fees
|
|
1531
1655
|
:param str[]|None codes: list of unified currency codes
|
|
1532
1656
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1697,7 +1821,9 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1697
1821
|
|
|
1698
1822
|
def sign_in(self, params={}):
|
|
1699
1823
|
"""
|
|
1700
|
-
|
|
1824
|
+
|
|
1825
|
+
https://docs-en.probit.com/reference/token
|
|
1826
|
+
|
|
1701
1827
|
sign in, must be called prior to using other authenticated methods
|
|
1702
1828
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1703
1829
|
:returns: response from exchange
|
|
@@ -1725,10 +1851,13 @@ class probit(Exchange, ImplicitAPI):
|
|
|
1725
1851
|
return None # fallback to default error handler
|
|
1726
1852
|
if 'errorCode' in response:
|
|
1727
1853
|
errorCode = self.safe_string(response, 'errorCode')
|
|
1728
|
-
message = self.safe_string(response, 'message')
|
|
1729
1854
|
if errorCode is not None:
|
|
1730
|
-
|
|
1731
|
-
self.
|
|
1732
|
-
self.
|
|
1855
|
+
errMessage = self.safe_string(response, 'message', '')
|
|
1856
|
+
details = self.safe_value(response, 'details')
|
|
1857
|
+
feedback = self.id + ' ' + errorCode + ' ' + errMessage + ' ' + self.json(details)
|
|
1858
|
+
if 'exact' in self.exceptions:
|
|
1859
|
+
self.throw_exactly_matched_exception(self.exceptions['exact'], errorCode, feedback)
|
|
1860
|
+
if 'broad' in self.exceptions:
|
|
1861
|
+
self.throw_broadly_matched_exception(self.exceptions['broad'], errMessage, feedback)
|
|
1733
1862
|
raise ExchangeError(feedback)
|
|
1734
1863
|
return None
|