ccxt-ir 4.3.46.0.2__py2.py3-none-any.whl → 4.5.0__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +39 -35
- ccxt/abantether.py +9 -9
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/apex.py +31 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +106 -48
- ccxt/abstract/binancecoinm.py +106 -48
- ccxt/abstract/binanceus.py +141 -83
- ccxt/abstract/binanceusdm.py +106 -48
- ccxt/abstract/bingx.py +50 -1
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +67 -0
- ccxt/abstract/bitmart.py +19 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitrue.py +68 -68
- ccxt/abstract/bitstamp.py +1 -0
- ccxt/abstract/blofin.py +30 -0
- ccxt/abstract/btcbox.py +2 -0
- ccxt/abstract/bybit.py +28 -13
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbaseexchange.py +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/cryptocom.py +16 -0
- ccxt/abstract/cryptomus.py +20 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/derive.py +117 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/foxbit.py +26 -0
- ccxt/abstract/gate.py +19 -0
- ccxt/abstract/gateio.py +19 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +1 -0
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +10 -0
- ccxt/abstract/kucoinfutures.py +18 -0
- ccxt/abstract/lbank.py +2 -1
- ccxt/abstract/luno.py +1 -0
- ccxt/abstract/mexc.py +2 -0
- ccxt/abstract/modetrade.py +119 -0
- ccxt/abstract/myokx.py +349 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +25 -0
- ccxt/abstract/okxus.py +349 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/paradex.py +23 -0
- ccxt/abstract/phemex.py +2 -0
- ccxt/abstract/poloniex.py +36 -0
- ccxt/abstract/tradeogre.py +3 -1
- ccxt/abstract/upbit.py +51 -34
- ccxt/abstract/whitebit.py +16 -0
- ccxt/abstract/woo.py +64 -6
- ccxt/abstract/xt.py +10 -5
- ccxt/afratether.py +7 -7
- ccxt/alpaca.py +828 -51
- ccxt/apex.py +1875 -0
- ccxt/arzinja.py +7 -7
- ccxt/arzplus.py +9 -9
- ccxt/ascendex.py +501 -306
- ccxt/async_support/__init__.py +39 -35
- ccxt/async_support/abantether.py +10 -10
- ccxt/async_support/afratether.py +9 -9
- ccxt/async_support/alpaca.py +828 -51
- ccxt/async_support/apex.py +1875 -0
- ccxt/async_support/arzinja.py +10 -10
- ccxt/async_support/arzplus.py +12 -12
- ccxt/async_support/ascendex.py +502 -306
- ccxt/async_support/base/exchange.py +303 -89
- ccxt/async_support/base/ws/cache.py +9 -3
- ccxt/async_support/base/ws/client.py +173 -38
- ccxt/async_support/base/ws/future.py +25 -37
- ccxt/async_support/bequant.py +5 -3
- ccxt/async_support/bigone.py +279 -144
- ccxt/async_support/binance.py +2347 -1158
- ccxt/async_support/binancecoinm.py +9 -3
- ccxt/async_support/binanceus.py +17 -3
- ccxt/async_support/binanceusdm.py +9 -4
- ccxt/async_support/bingx.py +2962 -920
- ccxt/async_support/bit2c.py +147 -27
- ccxt/async_support/bitbank.py +151 -23
- ccxt/async_support/bitbns.py +104 -30
- ccxt/async_support/bitfinex.py +3291 -1113
- ccxt/async_support/bitflyer.py +202 -27
- ccxt/async_support/bitget.py +3683 -1538
- ccxt/async_support/bithumb.py +195 -38
- ccxt/async_support/bitimen.py +12 -12
- ccxt/async_support/bitir.py +38 -38
- ccxt/async_support/bitmart.py +1288 -350
- ccxt/async_support/bitmex.py +260 -75
- ccxt/async_support/bitopro.py +262 -62
- ccxt/async_support/bitpin.py +17 -16
- ccxt/async_support/bitrue.py +459 -290
- ccxt/async_support/bitso.py +199 -54
- ccxt/async_support/bitstamp.py +230 -96
- ccxt/async_support/bitteam.py +167 -25
- ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
- ccxt/async_support/bitvavo.py +213 -49
- ccxt/async_support/blockchaincom.py +160 -46
- ccxt/async_support/blofin.py +502 -120
- ccxt/async_support/btcalpha.py +169 -31
- ccxt/async_support/btcbox.py +292 -23
- ccxt/async_support/btcmarkets.py +211 -58
- ccxt/async_support/btcturk.py +161 -38
- ccxt/async_support/bybit.py +1775 -1030
- ccxt/async_support/cex.py +1440 -1303
- ccxt/async_support/coinbase.py +724 -212
- ccxt/async_support/coinbaseadvanced.py +2 -1
- ccxt/async_support/coinbaseexchange.py +388 -89
- ccxt/async_support/coinbaseinternational.py +412 -57
- ccxt/async_support/coincatch.py +177 -78
- ccxt/async_support/coincheck.py +135 -19
- ccxt/async_support/coinex.py +606 -232
- ccxt/async_support/coinmate.py +189 -63
- ccxt/async_support/coinmetro.py +195 -54
- ccxt/async_support/coinone.py +158 -51
- ccxt/async_support/coinsph.py +336 -61
- ccxt/async_support/coinspot.py +151 -52
- ccxt/async_support/cryptocom.py +661 -111
- ccxt/async_support/cryptomus.py +1137 -0
- ccxt/async_support/defx.py +2071 -0
- ccxt/async_support/delta.py +299 -99
- ccxt/async_support/deribit.py +348 -126
- ccxt/async_support/derive.py +2572 -0
- ccxt/async_support/digifinex.py +430 -214
- ccxt/async_support/ellipx.py +2029 -0
- ccxt/async_support/eterex.py +10 -10
- ccxt/async_support/excoino.py +31 -31
- ccxt/async_support/exir.py +14 -14
- ccxt/async_support/exmo.py +344 -131
- ccxt/async_support/exnovin.py +10 -10
- ccxt/async_support/farhadexchange.py +12 -12
- ccxt/async_support/fmfwio.py +2 -1
- ccxt/async_support/foxbit.py +1935 -0
- ccxt/async_support/gate.py +1351 -529
- ccxt/async_support/gateio.py +2 -1
- ccxt/async_support/gemini.py +144 -39
- ccxt/async_support/hashkey.py +152 -109
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/hitbtc.py +395 -167
- ccxt/async_support/hitobit.py +12 -12
- ccxt/async_support/hollaex.py +307 -119
- ccxt/async_support/htx.py +851 -383
- ccxt/async_support/huobi.py +2 -1
- ccxt/async_support/hyperliquid.py +1848 -536
- ccxt/async_support/independentreserve.py +288 -15
- ccxt/async_support/indodax.py +190 -33
- ccxt/async_support/jibitex.py +12 -12
- ccxt/async_support/kraken.py +795 -351
- ccxt/async_support/krakenfutures.py +214 -62
- ccxt/async_support/kucoin.py +715 -396
- ccxt/async_support/kucoinfutures.py +652 -89
- ccxt/async_support/latoken.py +217 -113
- ccxt/async_support/lbank.py +425 -97
- ccxt/async_support/luno.py +382 -35
- ccxt/async_support/mercado.py +113 -6
- ccxt/async_support/mexc.py +874 -437
- ccxt/async_support/modetrade.py +2818 -0
- ccxt/async_support/myokx.py +54 -0
- ccxt/async_support/ndax.py +221 -64
- ccxt/async_support/nobitex.py +31 -37
- ccxt/async_support/novadax.py +190 -34
- ccxt/async_support/oceanex.py +217 -28
- ccxt/async_support/okcoin.py +253 -145
- ccxt/async_support/okexchange.py +11 -11
- ccxt/async_support/okx.py +1088 -351
- ccxt/async_support/okxus.py +54 -0
- ccxt/async_support/ompfinex.py +25 -24
- ccxt/async_support/onetrading.py +213 -392
- ccxt/async_support/oxfun.py +245 -166
- ccxt/async_support/p2b.py +151 -29
- ccxt/async_support/paradex.py +562 -49
- ccxt/async_support/paymium.py +82 -19
- ccxt/async_support/phemex.py +713 -172
- ccxt/async_support/poloniex.py +1602 -283
- ccxt/async_support/probit.py +224 -95
- ccxt/async_support/ramzinex.py +30 -27
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +14 -13
- ccxt/async_support/tetherland.py +9 -9
- ccxt/async_support/timex.py +210 -51
- ccxt/async_support/tokocrypto.py +167 -47
- ccxt/async_support/tradeogre.py +266 -31
- ccxt/async_support/twox.py +9 -9
- ccxt/async_support/ubitex.py +12 -12
- ccxt/async_support/upbit.py +568 -165
- ccxt/async_support/vertex.py +160 -32
- ccxt/async_support/wallex.py +12 -12
- ccxt/async_support/wavesexchange.py +165 -30
- ccxt/async_support/whitebit.py +975 -127
- ccxt/async_support/woo.py +1918 -1016
- ccxt/async_support/woofipro.py +433 -141
- ccxt/async_support/xt.py +649 -193
- ccxt/async_support/yobit.py +195 -70
- ccxt/async_support/zaif.py +91 -15
- ccxt/async_support/zonda.py +151 -36
- ccxt/base/decimal_to_precision.py +14 -10
- ccxt/base/errors.py +49 -18
- ccxt/base/exchange.py +1556 -450
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +114 -6
- ccxt/bequant.py +5 -3
- ccxt/bigone.py +279 -144
- ccxt/binance.py +2347 -1158
- ccxt/binancecoinm.py +9 -3
- ccxt/binanceus.py +17 -3
- ccxt/binanceusdm.py +9 -4
- ccxt/bingx.py +2962 -920
- ccxt/bit2c.py +147 -27
- ccxt/bitbank.py +151 -23
- ccxt/bitbns.py +104 -30
- ccxt/bitfinex.py +3290 -1113
- ccxt/bitflyer.py +202 -27
- ccxt/bitget.py +3683 -1538
- ccxt/bithumb.py +194 -38
- ccxt/bitimen.py +9 -9
- ccxt/bitir.py +35 -35
- ccxt/bitmart.py +1288 -350
- ccxt/bitmex.py +260 -75
- ccxt/bitopro.py +262 -62
- ccxt/bitpin.py +15 -14
- ccxt/bitrue.py +459 -290
- ccxt/bitso.py +199 -54
- ccxt/bitstamp.py +230 -96
- ccxt/bitteam.py +167 -25
- ccxt/{huobijp.py → bittrade.py} +158 -30
- ccxt/bitvavo.py +213 -49
- ccxt/blockchaincom.py +160 -46
- ccxt/blofin.py +502 -120
- ccxt/btcalpha.py +169 -31
- ccxt/btcbox.py +291 -23
- ccxt/btcmarkets.py +211 -58
- ccxt/btcturk.py +161 -38
- ccxt/bybit.py +1775 -1030
- ccxt/cex.py +1439 -1303
- ccxt/coinbase.py +724 -212
- ccxt/coinbaseadvanced.py +2 -1
- ccxt/coinbaseexchange.py +388 -89
- ccxt/coinbaseinternational.py +412 -57
- ccxt/coincatch.py +177 -78
- ccxt/coincheck.py +135 -19
- ccxt/coinex.py +606 -232
- ccxt/coinmate.py +189 -63
- ccxt/coinmetro.py +194 -54
- ccxt/coinone.py +158 -51
- ccxt/coinsph.py +336 -61
- ccxt/coinspot.py +151 -52
- ccxt/cryptocom.py +661 -111
- ccxt/cryptomus.py +1137 -0
- ccxt/defx.py +2070 -0
- ccxt/delta.py +299 -99
- ccxt/deribit.py +348 -126
- ccxt/derive.py +2571 -0
- ccxt/digifinex.py +430 -214
- ccxt/ellipx.py +2029 -0
- ccxt/eterex.py +7 -7
- ccxt/excoino.py +29 -29
- ccxt/exir.py +11 -11
- ccxt/exmo.py +343 -131
- ccxt/exnovin.py +8 -8
- ccxt/farhadexchange.py +10 -10
- ccxt/fmfwio.py +2 -1
- ccxt/foxbit.py +1935 -0
- ccxt/gate.py +1351 -529
- ccxt/gateio.py +2 -1
- ccxt/gemini.py +144 -39
- ccxt/hashkey.py +152 -109
- ccxt/hibachi.py +2079 -0
- ccxt/hitbtc.py +395 -167
- ccxt/hitobit.py +9 -9
- ccxt/hollaex.py +307 -119
- ccxt/htx.py +851 -383
- ccxt/huobi.py +2 -1
- ccxt/hyperliquid.py +1848 -536
- ccxt/independentreserve.py +287 -15
- ccxt/indodax.py +190 -33
- ccxt/jibitex.py +9 -9
- ccxt/kraken.py +794 -351
- ccxt/krakenfutures.py +214 -62
- ccxt/kucoin.py +715 -396
- ccxt/kucoinfutures.py +652 -89
- ccxt/latoken.py +217 -113
- ccxt/lbank.py +425 -97
- ccxt/luno.py +382 -35
- ccxt/mercado.py +113 -6
- ccxt/mexc.py +873 -437
- ccxt/modetrade.py +2818 -0
- ccxt/myokx.py +54 -0
- ccxt/ndax.py +221 -64
- ccxt/nobitex.py +29 -35
- ccxt/novadax.py +190 -34
- ccxt/oceanex.py +217 -28
- ccxt/okcoin.py +253 -145
- ccxt/okexchange.py +9 -9
- ccxt/okx.py +1088 -351
- ccxt/okxus.py +54 -0
- ccxt/ompfinex.py +22 -21
- ccxt/onetrading.py +213 -392
- ccxt/oxfun.py +245 -166
- ccxt/p2b.py +151 -29
- ccxt/paradex.py +562 -49
- ccxt/paymium.py +82 -19
- ccxt/phemex.py +712 -172
- ccxt/poloniex.py +1601 -283
- ccxt/pro/__init__.py +76 -17
- ccxt/pro/alpaca.py +21 -6
- ccxt/pro/apex.py +984 -0
- ccxt/pro/ascendex.py +58 -10
- ccxt/pro/bequant.py +6 -1
- ccxt/pro/binance.py +728 -156
- ccxt/pro/binancecoinm.py +6 -2
- ccxt/pro/binanceus.py +8 -4
- ccxt/pro/binanceusdm.py +7 -2
- ccxt/pro/bingx.py +333 -142
- ccxt/pro/bitfinex.py +727 -262
- ccxt/pro/bitget.py +570 -79
- ccxt/pro/bithumb.py +20 -6
- ccxt/pro/bitmart.py +216 -87
- ccxt/pro/bitmex.py +47 -9
- ccxt/pro/bitopro.py +26 -14
- ccxt/pro/bitrue.py +22 -22
- ccxt/pro/bitstamp.py +54 -21
- ccxt/pro/{huobijp.py → bittrade.py} +7 -6
- ccxt/pro/bitvavo.py +191 -67
- ccxt/pro/blockchaincom.py +21 -8
- ccxt/pro/blofin.py +9 -1
- ccxt/pro/bybit.py +632 -245
- ccxt/pro/cex.py +59 -24
- ccxt/pro/coinbase.py +102 -73
- ccxt/pro/coinbaseadvanced.py +2 -1
- ccxt/pro/coinbaseexchange.py +8 -8
- ccxt/pro/coinbaseinternational.py +181 -25
- ccxt/pro/coincatch.py +6 -7
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +967 -665
- ccxt/pro/coinone.py +16 -9
- ccxt/pro/cryptocom.py +448 -45
- ccxt/pro/defx.py +831 -0
- ccxt/pro/deribit.py +150 -14
- ccxt/pro/derive.py +704 -0
- ccxt/pro/exmo.py +239 -6
- ccxt/pro/gate.py +623 -65
- ccxt/pro/gateio.py +2 -1
- ccxt/pro/gemini.py +27 -11
- ccxt/pro/hashkey.py +2 -2
- ccxt/pro/hitbtc.py +196 -91
- ccxt/pro/hollaex.py +23 -7
- ccxt/pro/htx.py +51 -14
- ccxt/pro/huobi.py +2 -1
- ccxt/pro/hyperliquid.py +591 -27
- ccxt/pro/independentreserve.py +9 -6
- ccxt/pro/kraken.py +640 -320
- ccxt/pro/krakenfutures.py +62 -35
- ccxt/pro/kucoin.py +267 -46
- ccxt/pro/kucoinfutures.py +165 -21
- ccxt/pro/lbank.py +102 -21
- ccxt/pro/luno.py +12 -8
- ccxt/pro/mexc.py +877 -111
- ccxt/pro/modetrade.py +1271 -0
- ccxt/pro/myokx.py +38 -0
- ccxt/pro/ndax.py +15 -2
- ccxt/pro/okcoin.py +23 -4
- ccxt/pro/okx.py +573 -98
- ccxt/pro/okxus.py +38 -0
- ccxt/pro/onetrading.py +30 -13
- ccxt/pro/oxfun.py +131 -27
- ccxt/pro/p2b.py +88 -22
- ccxt/pro/paradex.py +3 -3
- ccxt/pro/phemex.py +75 -21
- ccxt/pro/poloniex.py +124 -41
- ccxt/pro/probit.py +87 -80
- ccxt/pro/tradeogre.py +272 -0
- ccxt/pro/upbit.py +152 -12
- ccxt/pro/vertex.py +8 -3
- ccxt/pro/whitebit.py +58 -5
- ccxt/pro/woo.py +228 -37
- ccxt/pro/woofipro.py +106 -18
- ccxt/pro/xt.py +111 -5
- ccxt/probit.py +224 -95
- ccxt/protobuf/__init__.py +0 -0
- ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
- ccxt/protobuf/mexc/__init__.py +0 -0
- ccxt/ramzinex.py +28 -25
- ccxt/sarmayex.py +7 -7
- ccxt/sarrafex.py +10 -10
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/tabdeal.py +12 -11
- ccxt/test/tests_async.py +261 -57
- ccxt/test/tests_helpers.py +1 -3
- ccxt/test/tests_init.py +4 -3
- ccxt/test/tests_sync.py +261 -57
- ccxt/tetherland.py +7 -7
- ccxt/timex.py +210 -51
- ccxt/tokocrypto.py +167 -47
- ccxt/tradeogre.py +266 -31
- ccxt/twox.py +7 -7
- ccxt/ubitex.py +9 -9
- ccxt/upbit.py +568 -165
- ccxt/vertex.py +160 -32
- ccxt/wallex.py +9 -9
- ccxt/wavesexchange.py +165 -30
- ccxt/whitebit.py +975 -127
- ccxt/woo.py +1917 -1016
- ccxt/woofipro.py +432 -141
- ccxt/xt.py +649 -193
- ccxt/yobit.py +194 -70
- ccxt/zaif.py +91 -15
- ccxt/zonda.py +151 -36
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.0.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
- ccxt/abstract/ace.py +0 -15
- ccxt/abstract/bitbay.py +0 -53
- ccxt/abstract/bitcoincom.py +0 -115
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/bitpanda.py +0 -35
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/coinlist.py +0 -54
- ccxt/abstract/currencycom.py +0 -68
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/abstract/idex.py +0 -26
- ccxt/abstract/kuna.py +0 -182
- ccxt/abstract/lykke.py +0 -29
- ccxt/abstract/poloniexfutures.py +0 -48
- ccxt/abstract/wazirx.py +0 -30
- ccxt/ace.py +0 -1012
- ccxt/async_support/ace.py +0 -1012
- ccxt/async_support/base/ws/aiohttp_client.py +0 -125
- ccxt/async_support/base/ws/fast_client.py +0 -96
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitcoincom.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3552
- ccxt/async_support/bitpanda.py +0 -16
- ccxt/async_support/bl3p.py +0 -485
- ccxt/async_support/coinlist.py +0 -2243
- ccxt/async_support/currencycom.py +0 -1950
- ccxt/async_support/hitbtc3.py +0 -16
- ccxt/async_support/idex.py +0 -1766
- ccxt/async_support/kuna.py +0 -1841
- ccxt/async_support/lykke.py +0 -1270
- ccxt/async_support/poloniexfutures.py +0 -1717
- ccxt/async_support/wazirx.py +0 -1224
- ccxt/bitbay.py +0 -17
- ccxt/bitcoincom.py +0 -17
- ccxt/bitfinex2.py +0 -3552
- ccxt/bitpanda.py +0 -16
- ccxt/bl3p.py +0 -485
- ccxt/coinlist.py +0 -2243
- ccxt/currencycom.py +0 -1950
- ccxt/hitbtc3.py +0 -16
- ccxt/idex.py +0 -1766
- ccxt/kuna.py +0 -1841
- ccxt/lykke.py +0 -1270
- ccxt/poloniexfutures.py +0 -1717
- ccxt/pro/bitcoincom.py +0 -34
- ccxt/pro/bitfinex2.py +0 -1083
- ccxt/pro/bitpanda.py +0 -15
- ccxt/pro/currencycom.py +0 -536
- ccxt/pro/idex.py +0 -672
- ccxt/pro/poloniexfutures.py +0 -990
- ccxt/pro/wazirx.py +0 -749
- ccxt/test/base/__init__.py +0 -29
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -109
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -31
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_liquidation.py +0 -50
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -193
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -33
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -69
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -353
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -92
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- ccxt/test/test_async.py +0 -1649
- ccxt/test/test_sync.py +0 -1648
- ccxt/wazirx.py +0 -1224
- ccxt_ir-4.3.46.0.2.dist-info/RECORD +0 -772
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.2.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/nobitex.py
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.nobitex 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 nobitex(Exchange, ImplicitAPI):
|
|
13
13
|
|
|
14
|
-
def describe(self):
|
|
14
|
+
def describe(self) -> Any:
|
|
15
15
|
return self.deep_extend(super(nobitex, self).describe(), {
|
|
16
16
|
'id': 'nobitex',
|
|
17
17
|
'name': 'Nobitex',
|
|
18
|
-
'
|
|
18
|
+
'countries': ['IR'],
|
|
19
19
|
'rateLimit': 1000,
|
|
20
20
|
'version': '1',
|
|
21
21
|
'certified': False,
|
|
@@ -86,7 +86,7 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
86
86
|
'urls': {
|
|
87
87
|
'logo': 'https://cdn.arz.digital/cr-odin/img/exchanges/nobitex/64x64.png',
|
|
88
88
|
'api': {
|
|
89
|
-
'public': 'https://
|
|
89
|
+
'public': 'https://apiv2.nobitex.ir',
|
|
90
90
|
},
|
|
91
91
|
'www': 'https://nobitex.ir/',
|
|
92
92
|
'doc': [
|
|
@@ -129,18 +129,14 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
129
129
|
},
|
|
130
130
|
})
|
|
131
131
|
|
|
132
|
-
def fetch_markets(self,
|
|
132
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
|
133
133
|
"""
|
|
134
134
|
retrieves data on all markets for nobitex
|
|
135
|
-
|
|
135
|
+
https://apidocs.nobitex.ir/#6ae2dae4a2
|
|
136
136
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
137
137
|
:returns dict[]: an array of objects representing market data
|
|
138
138
|
"""
|
|
139
|
-
|
|
140
|
-
'srcCurrency': 'btc,usdt,eth,etc,doge,ada,bch,ltc,bnb,eos,xlm,xrp,trx,uni,link,dai,dot,shib,aave,ftm,matic,axs,mana,sand,avax,usdc,gmt,mkr,sol,atom,grt,bat,near,ape,qnt,chz,xmr,egala,busd,algo,hbar,1inch,yfi,flow,snx,enj,crv,fil,wbtc,ldo,dydx,apt,mask,comp,bal,lrc,lpt,ens,sushi,api3,one,glm,pmn,dao,cvc,nmr,storj,snt,ant,zrx,slp,egld,imx,blur,100k_floki,1b_babydoge,1m_nft,1m_btt,t,celr,arb,magic,gmx,band,cvx,ton,ssv,mdt,omg,wld,rdnt,jst,bico,rndr,woo,skl,gal,agix,fet,not,xtz,agld,trb,rsr,ethfi',
|
|
141
|
-
'dstCurrency': 'rls,usdt',
|
|
142
|
-
}
|
|
143
|
-
response = self.publicGetMarketStats(request)
|
|
139
|
+
response = self.publicGetMarketStats()
|
|
144
140
|
markets = self.safe_dict(response, 'stats')
|
|
145
141
|
marketKeys = list(markets.keys())
|
|
146
142
|
result = []
|
|
@@ -228,7 +224,7 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
228
224
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
229
225
|
"""
|
|
230
226
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
231
|
-
|
|
227
|
+
https://apidocs.nobitex.ir/#6ae2dae4a2
|
|
232
228
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
233
229
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
234
230
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -236,11 +232,7 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
236
232
|
self.load_markets()
|
|
237
233
|
if symbols is not None:
|
|
238
234
|
symbols = self.market_symbols(symbols)
|
|
239
|
-
|
|
240
|
-
'srcCurrency': 'btc,usdt,eth,etc,doge,ada,bch,ltc,bnb,eos,xlm,xrp,trx,uni,link,dai,dot,shib,aave,ftm,matic,axs,mana,sand,avax,usdc,gmt,mkr,sol,atom,grt,bat,near,ape,qnt,chz,xmr,egala,busd,algo,hbar,1inch,yfi,flow,snx,enj,crv,fil,wbtc,ldo,dydx,apt,mask,comp,bal,lrc,lpt,ens,sushi,api3,one,glm,pmn,dao,cvc,nmr,storj,snt,ant,zrx,slp,egld,imx,blur,100k_floki,1b_babydoge,1m_nft,1m_btt,t,celr,arb,magic,gmx,band,cvx,ton,ssv,mdt,omg,wld,rdnt,jst,bico,rndr,woo,skl,gal,agix,fet,not,xtz,agld,trb,rsr,ethfi',
|
|
241
|
-
'dstCurrency': 'rls,usdt',
|
|
242
|
-
}
|
|
243
|
-
response = self.publicGetMarketStats(request)
|
|
235
|
+
response = self.publicGetMarketStats()
|
|
244
236
|
markets = self.safe_dict(response, 'stats')
|
|
245
237
|
marketKeys = list(markets.keys())
|
|
246
238
|
result = []
|
|
@@ -257,7 +249,7 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
257
249
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
258
250
|
"""
|
|
259
251
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
260
|
-
|
|
252
|
+
https://apidocs.nobitex.ir/#6ae2dae4a2
|
|
261
253
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
262
254
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
263
255
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -296,14 +288,14 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
296
288
|
quoteVolume = self.safe_float(ticker, 'volumeDst')
|
|
297
289
|
baseVolume = self.safe_float(ticker, 'volumeSrc')
|
|
298
290
|
if marketinfo['quote'] == 'IRT':
|
|
299
|
-
high
|
|
300
|
-
low
|
|
301
|
-
bid
|
|
302
|
-
ask
|
|
303
|
-
open
|
|
304
|
-
close
|
|
305
|
-
last
|
|
306
|
-
quoteVolume
|
|
291
|
+
high = high * 10 if high else 0
|
|
292
|
+
low = low / 10 if low else 0
|
|
293
|
+
bid = bid / 10 if bid else 0
|
|
294
|
+
ask = ask / 10 if ask else 0
|
|
295
|
+
open = open / 10 if open else 0
|
|
296
|
+
close = close / 10 if close else 0
|
|
297
|
+
last = last / 10 if last else 0
|
|
298
|
+
quoteVolume = quoteVolume / 10 if quoteVolume else 0
|
|
307
299
|
return self.safe_ticker({
|
|
308
300
|
'symbol': symbol.replace('-', '/'),
|
|
309
301
|
'timestamp': None,
|
|
@@ -330,7 +322,7 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
330
322
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
331
323
|
"""
|
|
332
324
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
333
|
-
|
|
325
|
+
https://apidocs.nobitex.ir/#ohlc
|
|
334
326
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
335
327
|
:param str timeframe: the length of time each candle represents
|
|
336
328
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -341,6 +333,8 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
341
333
|
self.load_markets()
|
|
342
334
|
market = self.market(symbol)
|
|
343
335
|
endTime = Date.now()
|
|
336
|
+
if market['quote'] == 'IRT':
|
|
337
|
+
market['id'] = market['id'].replace('RLS', 'IRT')
|
|
344
338
|
request = {
|
|
345
339
|
'symbol': market['id'],
|
|
346
340
|
'from': (endTime / 1000) - (24 * 60 * 60),
|
|
@@ -364,11 +358,11 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
364
358
|
ohlcvs = []
|
|
365
359
|
for i in range(0, len(openList)):
|
|
366
360
|
if market['quote'] == 'IRT':
|
|
367
|
-
openList[i]
|
|
368
|
-
highList[i]
|
|
369
|
-
lowList[i]
|
|
370
|
-
closeList[i]
|
|
371
|
-
volumeList[i]
|
|
361
|
+
openList[i] = openList[i] / 10 if openList[i] else 0
|
|
362
|
+
highList[i] = highList[i] / 10 if highList[i] else 0
|
|
363
|
+
lowList[i] = lowList[i] / 10 if lowList[i] else 0
|
|
364
|
+
closeList[i] = closeList[i] / 10 if closeList[i] else 0
|
|
365
|
+
volumeList[i] = volumeList[i] / 10 if volumeList[i] else 0
|
|
372
366
|
ohlcvs.append([
|
|
373
367
|
timestampList[i],
|
|
374
368
|
openList[i],
|
|
@@ -382,7 +376,7 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
382
376
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
383
377
|
"""
|
|
384
378
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
|
385
|
-
|
|
379
|
+
https://apidocs.nobitex.ir/#orderbook
|
|
386
380
|
:param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
|
|
387
381
|
:param int [limit]: max number of entries per orderbook to return, default is None
|
|
388
382
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -398,9 +392,9 @@ class nobitex(Exchange, ImplicitAPI):
|
|
|
398
392
|
bids = self.safe_list(response, 'bids')
|
|
399
393
|
asks = self.safe_list(response, 'asks')
|
|
400
394
|
for i in range(0, len(bids)):
|
|
401
|
-
bids[i][0]
|
|
395
|
+
bids[i][0] = bids[i][0] / 10 if bids[i][0] else 0
|
|
402
396
|
for i in range(0, len(asks)):
|
|
403
|
-
asks[i][0]
|
|
397
|
+
asks[i][0] = asks[i][0] / 10 if asks[i][0] else 0
|
|
404
398
|
response['bids'] = bids
|
|
405
399
|
response['asks'] = asks
|
|
406
400
|
timestamp = self.safe_integer(response, 'lastUpdate')
|
ccxt/novadax.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.novadax import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Account, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
|
9
|
+
from ccxt.base.types import Account, Any, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -19,16 +19,16 @@ from ccxt.base.errors import BadSymbol
|
|
|
19
19
|
from ccxt.base.errors import InsufficientFunds
|
|
20
20
|
from ccxt.base.errors import InvalidOrder
|
|
21
21
|
from ccxt.base.errors import OrderNotFound
|
|
22
|
-
from ccxt.base.errors import CancelPending
|
|
23
22
|
from ccxt.base.errors import RateLimitExceeded
|
|
24
23
|
from ccxt.base.errors import OnMaintenance
|
|
24
|
+
from ccxt.base.errors import CancelPending
|
|
25
25
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
|
26
26
|
from ccxt.base.precise import Precise
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class novadax(Exchange, ImplicitAPI):
|
|
30
30
|
|
|
31
|
-
def describe(self):
|
|
31
|
+
def describe(self) -> Any:
|
|
32
32
|
return self.deep_extend(super(novadax, self).describe(), {
|
|
33
33
|
'id': 'novadax',
|
|
34
34
|
'name': 'NovaDAX',
|
|
@@ -46,6 +46,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
46
46
|
'future': False,
|
|
47
47
|
'option': False,
|
|
48
48
|
'addMargin': False,
|
|
49
|
+
'borrowCrossMargin': False,
|
|
50
|
+
'borrowIsolatedMargin': False,
|
|
51
|
+
'borrowMargin': False,
|
|
49
52
|
'cancelOrder': True,
|
|
50
53
|
'closeAllPositions': False,
|
|
51
54
|
'closePosition': False,
|
|
@@ -58,9 +61,14 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
58
61
|
'createStopMarketOrder': True,
|
|
59
62
|
'createStopOrder': True,
|
|
60
63
|
'fetchAccounts': True,
|
|
64
|
+
'fetchAllGreeks': False,
|
|
61
65
|
'fetchBalance': True,
|
|
66
|
+
'fetchBorrowInterest': False,
|
|
67
|
+
'fetchBorrowRate': False,
|
|
62
68
|
'fetchBorrowRateHistories': False,
|
|
63
69
|
'fetchBorrowRateHistory': False,
|
|
70
|
+
'fetchBorrowRates': False,
|
|
71
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
64
72
|
'fetchClosedOrders': True,
|
|
65
73
|
'fetchCrossBorrowRate': False,
|
|
66
74
|
'fetchCrossBorrowRates': False,
|
|
@@ -70,20 +78,40 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
70
78
|
'fetchDeposits': True,
|
|
71
79
|
'fetchDepositsWithdrawals': True,
|
|
72
80
|
'fetchFundingHistory': False,
|
|
81
|
+
'fetchFundingInterval': False,
|
|
82
|
+
'fetchFundingIntervals': False,
|
|
73
83
|
'fetchFundingRate': False,
|
|
74
84
|
'fetchFundingRateHistory': False,
|
|
75
85
|
'fetchFundingRates': False,
|
|
86
|
+
'fetchGreeks': False,
|
|
76
87
|
'fetchIndexOHLCV': False,
|
|
77
88
|
'fetchIsolatedBorrowRate': False,
|
|
78
89
|
'fetchIsolatedBorrowRates': False,
|
|
90
|
+
'fetchIsolatedPositions': False,
|
|
79
91
|
'fetchLeverage': False,
|
|
92
|
+
'fetchLeverages': False,
|
|
80
93
|
'fetchLeverageTiers': False,
|
|
94
|
+
'fetchLiquidations': False,
|
|
95
|
+
'fetchLongShortRatio': False,
|
|
96
|
+
'fetchLongShortRatioHistory': False,
|
|
97
|
+
'fetchMarginAdjustmentHistory': False,
|
|
98
|
+
'fetchMarginMode': False,
|
|
99
|
+
'fetchMarginModes': False,
|
|
100
|
+
'fetchMarketLeverageTiers': False,
|
|
81
101
|
'fetchMarkets': True,
|
|
82
102
|
'fetchMarkOHLCV': False,
|
|
103
|
+
'fetchMarkPrice': False,
|
|
104
|
+
'fetchMarkPrices': False,
|
|
105
|
+
'fetchMyLiquidations': False,
|
|
106
|
+
'fetchMySettlementHistory': False,
|
|
83
107
|
'fetchMyTrades': True,
|
|
84
108
|
'fetchOHLCV': True,
|
|
109
|
+
'fetchOpenInterest': False,
|
|
85
110
|
'fetchOpenInterestHistory': False,
|
|
111
|
+
'fetchOpenInterests': False,
|
|
86
112
|
'fetchOpenOrders': True,
|
|
113
|
+
'fetchOption': False,
|
|
114
|
+
'fetchOptionChain': False,
|
|
87
115
|
'fetchOrder': True,
|
|
88
116
|
'fetchOrderBook': True,
|
|
89
117
|
'fetchOrders': True,
|
|
@@ -96,6 +124,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
96
124
|
'fetchPositionsHistory': False,
|
|
97
125
|
'fetchPositionsRisk': False,
|
|
98
126
|
'fetchPremiumIndexOHLCV': False,
|
|
127
|
+
'fetchSettlementHistory': False,
|
|
99
128
|
'fetchTicker': True,
|
|
100
129
|
'fetchTickers': True,
|
|
101
130
|
'fetchTime': True,
|
|
@@ -103,9 +132,14 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
103
132
|
'fetchTradingFee': False,
|
|
104
133
|
'fetchTradingFees': False,
|
|
105
134
|
'fetchTransactions': 'emulated',
|
|
135
|
+
'fetchUnderlyingAssets': False,
|
|
136
|
+
'fetchVolatilityHistory': False,
|
|
106
137
|
'fetchWithdrawals': True,
|
|
107
138
|
'reduceMargin': False,
|
|
139
|
+
'repayCrossMargin': False,
|
|
140
|
+
'repayIsolatedMargin': False,
|
|
108
141
|
'setLeverage': False,
|
|
142
|
+
'setMargin': False,
|
|
109
143
|
'setMarginMode': False,
|
|
110
144
|
'setPositionMode': False,
|
|
111
145
|
'transfer': True,
|
|
@@ -223,12 +257,93 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
223
257
|
'fillResponseFromRequest': True,
|
|
224
258
|
},
|
|
225
259
|
},
|
|
260
|
+
'features': {
|
|
261
|
+
'spot': {
|
|
262
|
+
'sandbox': False,
|
|
263
|
+
'createOrder': {
|
|
264
|
+
'marginMode': False,
|
|
265
|
+
'triggerPrice': True,
|
|
266
|
+
'triggerDirection': True, # todo
|
|
267
|
+
'triggerPriceType': None,
|
|
268
|
+
'stopLossPrice': False, # todo
|
|
269
|
+
'takeProfitPrice': False, # todo
|
|
270
|
+
'attachedStopLossTakeProfit': None,
|
|
271
|
+
# todo
|
|
272
|
+
'timeInForce': {
|
|
273
|
+
'IOC': False,
|
|
274
|
+
'FOK': False,
|
|
275
|
+
'PO': False,
|
|
276
|
+
'GTD': False,
|
|
277
|
+
},
|
|
278
|
+
'hedged': False,
|
|
279
|
+
'trailing': False,
|
|
280
|
+
'leverage': False,
|
|
281
|
+
'marketBuyByCost': True,
|
|
282
|
+
'marketBuyRequiresPrice': False,
|
|
283
|
+
'selfTradePrevention': False,
|
|
284
|
+
'iceberg': True, # todo
|
|
285
|
+
},
|
|
286
|
+
'createOrders': None, # todo: add implementation
|
|
287
|
+
'fetchMyTrades': {
|
|
288
|
+
'marginMode': False,
|
|
289
|
+
'limit': 100,
|
|
290
|
+
'daysBack': 100000, # todo
|
|
291
|
+
'untilDays': 100000, # todo
|
|
292
|
+
'symbolRequired': False,
|
|
293
|
+
},
|
|
294
|
+
'fetchOrder': {
|
|
295
|
+
'marginMode': False,
|
|
296
|
+
'trigger': False,
|
|
297
|
+
'trailing': False,
|
|
298
|
+
'symbolRequired': False,
|
|
299
|
+
},
|
|
300
|
+
'fetchOpenOrders': {
|
|
301
|
+
'marginMode': False,
|
|
302
|
+
'limit': None,
|
|
303
|
+
'trigger': False,
|
|
304
|
+
'trailing': False,
|
|
305
|
+
'symbolRequired': False,
|
|
306
|
+
},
|
|
307
|
+
'fetchOrders': {
|
|
308
|
+
'marginMode': False,
|
|
309
|
+
'limit': 100,
|
|
310
|
+
'daysBack': 100000, # todo
|
|
311
|
+
'untilDays': 100000, # todo
|
|
312
|
+
'trigger': False,
|
|
313
|
+
'trailing': False,
|
|
314
|
+
'symbolRequired': False,
|
|
315
|
+
},
|
|
316
|
+
'fetchClosedOrders': {
|
|
317
|
+
'marginMode': False,
|
|
318
|
+
'limit': 100,
|
|
319
|
+
'daysBack': 100000, # todo
|
|
320
|
+
'daysBackCanceled': 1, # todo
|
|
321
|
+
'untilDays': 100000, # todo
|
|
322
|
+
'trigger': False,
|
|
323
|
+
'trailing': False,
|
|
324
|
+
'symbolRequired': False,
|
|
325
|
+
},
|
|
326
|
+
'fetchOHLCV': {
|
|
327
|
+
'limit': None, # todo max 3000
|
|
328
|
+
},
|
|
329
|
+
},
|
|
330
|
+
'swap': {
|
|
331
|
+
'linear': None,
|
|
332
|
+
'inverse': None,
|
|
333
|
+
},
|
|
334
|
+
'future': {
|
|
335
|
+
'linear': None,
|
|
336
|
+
'inverse': None,
|
|
337
|
+
},
|
|
338
|
+
},
|
|
226
339
|
})
|
|
227
340
|
|
|
228
|
-
def fetch_time(self, params={}):
|
|
341
|
+
def fetch_time(self, params={}) -> Int:
|
|
229
342
|
"""
|
|
230
343
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
231
|
-
|
|
344
|
+
|
|
345
|
+
https://doc.novadax.com/en-US/#get-current-system-time
|
|
346
|
+
|
|
232
347
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
233
348
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
|
234
349
|
"""
|
|
@@ -245,7 +360,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
245
360
|
def fetch_markets(self, params={}) -> List[Market]:
|
|
246
361
|
"""
|
|
247
362
|
retrieves data on all markets for novadax
|
|
248
|
-
|
|
363
|
+
|
|
364
|
+
https://doc.novadax.com/en-US/#get-all-supported-trading-symbol
|
|
365
|
+
|
|
249
366
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
250
367
|
:returns dict[]: an array of objects representing market data
|
|
251
368
|
"""
|
|
@@ -380,7 +497,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
380
497
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
381
498
|
"""
|
|
382
499
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
383
|
-
|
|
500
|
+
|
|
501
|
+
https://doc.novadax.com/en-US/#get-latest-ticker-for-specific-pair
|
|
502
|
+
|
|
384
503
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
385
504
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
386
505
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -415,7 +534,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
415
534
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
416
535
|
"""
|
|
417
536
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
418
|
-
|
|
537
|
+
|
|
538
|
+
https://doc.novadax.com/en-US/#get-latest-tickers-for-all-trading-pairs
|
|
539
|
+
|
|
419
540
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
420
541
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
421
542
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -454,7 +575,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
454
575
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
455
576
|
"""
|
|
456
577
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
457
|
-
|
|
578
|
+
|
|
579
|
+
https://doc.novadax.com/en-US/#get-market-depth
|
|
580
|
+
|
|
458
581
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
459
582
|
:param int [limit]: the maximum amount of order book entries to return
|
|
460
583
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -571,7 +694,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
571
694
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
572
695
|
"""
|
|
573
696
|
get the list of most recent trades for a particular symbol
|
|
574
|
-
|
|
697
|
+
|
|
698
|
+
https://doc.novadax.com/en-US/#get-recent-trades
|
|
699
|
+
|
|
575
700
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
576
701
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
577
702
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -603,7 +728,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
603
728
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
604
729
|
"""
|
|
605
730
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
606
|
-
|
|
731
|
+
|
|
732
|
+
https://doc.novadax.com/en-US/#get-kline-data
|
|
733
|
+
|
|
607
734
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
608
735
|
:param str timeframe: the length of time each candle represents
|
|
609
736
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -697,7 +824,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
697
824
|
def fetch_balance(self, params={}) -> Balances:
|
|
698
825
|
"""
|
|
699
826
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
700
|
-
|
|
827
|
+
|
|
828
|
+
https://doc.novadax.com/en-US/#get-account-balance
|
|
829
|
+
|
|
701
830
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
702
831
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
703
832
|
"""
|
|
@@ -722,12 +851,14 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
722
851
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
723
852
|
"""
|
|
724
853
|
create a trade order
|
|
725
|
-
|
|
854
|
+
|
|
855
|
+
https://doc.novadax.com/en-US/#order-introduction
|
|
856
|
+
|
|
726
857
|
:param str symbol: unified symbol of the market to create an order in
|
|
727
858
|
:param str type: 'market' or 'limit'
|
|
728
859
|
:param str side: 'buy' or 'sell'
|
|
729
860
|
:param float amount: how much you want to trade in units of the base currency
|
|
730
|
-
:param float [price]: the price at which the order is to be
|
|
861
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
731
862
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
732
863
|
:param float [params.cost]: for spot market buy orders, the quote quantity that can be used alternative for the amount
|
|
733
864
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -745,8 +876,8 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
745
876
|
# "stopPrice": self.price_to_precision(symbol, stopPrice),
|
|
746
877
|
# "accountId": "...", # subaccount id, optional
|
|
747
878
|
}
|
|
748
|
-
|
|
749
|
-
if
|
|
879
|
+
triggerPrice = self.safe_value_2(params, 'triggerPrice', 'stopPrice')
|
|
880
|
+
if triggerPrice is None:
|
|
750
881
|
if (uppercaseType == 'STOP_LIMIT') or (uppercaseType == 'STOP_MARKET'):
|
|
751
882
|
raise ArgumentsRequired(self.id + ' createOrder() requires a stopPrice parameter for ' + uppercaseType + ' orders')
|
|
752
883
|
else:
|
|
@@ -756,7 +887,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
756
887
|
uppercaseType = 'STOP_MARKET'
|
|
757
888
|
defaultOperator = 'LTE' if (uppercaseSide == 'BUY') else 'GTE'
|
|
758
889
|
request['operator'] = self.safe_string(params, 'operator', defaultOperator)
|
|
759
|
-
request['stopPrice'] = self.price_to_precision(symbol,
|
|
890
|
+
request['stopPrice'] = self.price_to_precision(symbol, triggerPrice)
|
|
760
891
|
params = self.omit(params, ['triggerPrice', 'stopPrice'])
|
|
761
892
|
if (uppercaseType == 'LIMIT') or (uppercaseType == 'STOP_LIMIT'):
|
|
762
893
|
request['price'] = self.price_to_precision(symbol, price)
|
|
@@ -814,7 +945,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
814
945
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
815
946
|
"""
|
|
816
947
|
cancels an open order
|
|
817
|
-
|
|
948
|
+
|
|
949
|
+
https://doc.novadax.com/en-US/#cancel-an-order
|
|
950
|
+
|
|
818
951
|
:param str id: order id
|
|
819
952
|
:param str symbol: not used by novadax cancelOrder()
|
|
820
953
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -840,7 +973,10 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
840
973
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
841
974
|
"""
|
|
842
975
|
fetches information on an order made by the user
|
|
843
|
-
|
|
976
|
+
|
|
977
|
+
https://doc.novadax.com/en-US/#get-order-details
|
|
978
|
+
|
|
979
|
+
:param str id: order id
|
|
844
980
|
:param str symbol: not used by novadax fetchOrder
|
|
845
981
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
846
982
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -877,7 +1013,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
877
1013
|
def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
878
1014
|
"""
|
|
879
1015
|
fetches information on multiple orders made by the user
|
|
880
|
-
|
|
1016
|
+
|
|
1017
|
+
https://doc.novadax.com/en-US/#get-order-history
|
|
1018
|
+
|
|
881
1019
|
:param str symbol: unified market symbol of the market orders were made in
|
|
882
1020
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
883
1021
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -932,7 +1070,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
932
1070
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
933
1071
|
"""
|
|
934
1072
|
fetch all unfilled currently open orders
|
|
935
|
-
|
|
1073
|
+
|
|
1074
|
+
https://doc.novadax.com/en-US/#get-order-history
|
|
1075
|
+
|
|
936
1076
|
:param str symbol: unified market symbol
|
|
937
1077
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
938
1078
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -947,7 +1087,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
947
1087
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
948
1088
|
"""
|
|
949
1089
|
fetches information on multiple closed orders made by the user
|
|
950
|
-
|
|
1090
|
+
|
|
1091
|
+
https://doc.novadax.com/en-US/#get-order-history
|
|
1092
|
+
|
|
951
1093
|
:param str symbol: unified market symbol of the market orders were made in
|
|
952
1094
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
953
1095
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -962,7 +1104,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
962
1104
|
def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
963
1105
|
"""
|
|
964
1106
|
fetch all the trades made from a single order
|
|
965
|
-
|
|
1107
|
+
|
|
1108
|
+
https://doc.novadax.com/en-US/#get-order-match-details
|
|
1109
|
+
|
|
966
1110
|
:param str id: order id
|
|
967
1111
|
:param str symbol: unified market symbol
|
|
968
1112
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
@@ -1061,7 +1205,6 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1061
1205
|
}
|
|
1062
1206
|
marketId = self.safe_string(order, 'symbol')
|
|
1063
1207
|
symbol = self.safe_symbol(marketId, market, '_')
|
|
1064
|
-
stopPrice = self.safe_number(order, 'stopPrice')
|
|
1065
1208
|
return self.safe_order({
|
|
1066
1209
|
'id': id,
|
|
1067
1210
|
'clientOrderId': None,
|
|
@@ -1075,8 +1218,7 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1075
1218
|
'postOnly': None,
|
|
1076
1219
|
'side': side,
|
|
1077
1220
|
'price': price,
|
|
1078
|
-
'
|
|
1079
|
-
'triggerPrice': stopPrice,
|
|
1221
|
+
'triggerPrice': self.safe_number(order, 'stopPrice'),
|
|
1080
1222
|
'amount': amount,
|
|
1081
1223
|
'cost': cost,
|
|
1082
1224
|
'average': average,
|
|
@@ -1090,7 +1232,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1090
1232
|
def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
|
|
1091
1233
|
"""
|
|
1092
1234
|
transfer currency internally between wallets on the same account
|
|
1093
|
-
|
|
1235
|
+
|
|
1236
|
+
https://doc.novadax.com/en-US/#get-sub-account-transfer
|
|
1237
|
+
|
|
1094
1238
|
:param str code: unified currency code
|
|
1095
1239
|
:param float amount: amount to transfer
|
|
1096
1240
|
:param str fromAccount: account to transfer from
|
|
@@ -1157,10 +1301,12 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1157
1301
|
}
|
|
1158
1302
|
return self.safe_string(statuses, status, 'failed')
|
|
1159
1303
|
|
|
1160
|
-
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
1304
|
+
def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
1161
1305
|
"""
|
|
1162
1306
|
make a withdrawal
|
|
1163
|
-
|
|
1307
|
+
|
|
1308
|
+
https://doc.novadax.com/en-US/#send-cryptocurrencies
|
|
1309
|
+
|
|
1164
1310
|
:param str code: unified currency code
|
|
1165
1311
|
:param float amount: the amount to withdraw
|
|
1166
1312
|
:param str address: the address to withdraw to
|
|
@@ -1191,7 +1337,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1191
1337
|
def fetch_accounts(self, params={}) -> List[Account]:
|
|
1192
1338
|
"""
|
|
1193
1339
|
fetch all the accounts associated with a profile
|
|
1194
|
-
|
|
1340
|
+
|
|
1341
|
+
https://doc.novadax.com/en-US/#get-sub-account-list
|
|
1342
|
+
|
|
1195
1343
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1196
1344
|
:returns dict: a dictionary of `account structures <https://docs.ccxt.com/#/?id=account-structure>` indexed by the account type
|
|
1197
1345
|
"""
|
|
@@ -1227,7 +1375,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1227
1375
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1228
1376
|
"""
|
|
1229
1377
|
fetch all deposits made to an account
|
|
1230
|
-
|
|
1378
|
+
|
|
1379
|
+
https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
|
|
1380
|
+
|
|
1231
1381
|
:param str code: unified currency code
|
|
1232
1382
|
:param int [since]: the earliest time in ms to fetch deposits for
|
|
1233
1383
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
|
@@ -1242,7 +1392,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1242
1392
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1243
1393
|
"""
|
|
1244
1394
|
fetch all withdrawals made from an account
|
|
1245
|
-
|
|
1395
|
+
|
|
1396
|
+
https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
|
|
1397
|
+
|
|
1246
1398
|
:param str code: unified currency code
|
|
1247
1399
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
|
1248
1400
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
|
@@ -1257,7 +1409,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1257
1409
|
def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1258
1410
|
"""
|
|
1259
1411
|
fetch history of deposits and withdrawals
|
|
1260
|
-
|
|
1412
|
+
|
|
1413
|
+
https://doc.novadax.com/en-US/#wallet-records-of-deposits-and-withdraws
|
|
1414
|
+
|
|
1261
1415
|
:param str [code]: unified currency code for the currency of the deposit/withdrawals, default is None
|
|
1262
1416
|
:param int [since]: timestamp in ms of the earliest deposit/withdrawal, default is None
|
|
1263
1417
|
:param int [limit]: max number of deposit/withdrawals to return, default is None
|
|
@@ -1390,7 +1544,9 @@ class novadax(Exchange, ImplicitAPI):
|
|
|
1390
1544
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1391
1545
|
"""
|
|
1392
1546
|
fetch all trades made by the user
|
|
1393
|
-
|
|
1547
|
+
|
|
1548
|
+
https://doc.novadax.com/en-US/#get-order-history
|
|
1549
|
+
|
|
1394
1550
|
:param str symbol: unified market symbol
|
|
1395
1551
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
1396
1552
|
:param int [limit]: the maximum number of trades structures to retrieve
|