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
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
# PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
4
|
+
# https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
|
+
|
|
6
|
+
from ccxt.async_support.okx import okx
|
|
7
|
+
from ccxt.abstract.myokx import ImplicitAPI
|
|
8
|
+
from ccxt.base.types import Any
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class myokx(okx, ImplicitAPI):
|
|
12
|
+
|
|
13
|
+
def describe(self) -> Any:
|
|
14
|
+
return self.deep_extend(super(myokx, self).describe(), {
|
|
15
|
+
'id': 'myokx',
|
|
16
|
+
'name': 'MyOKX(EEA)',
|
|
17
|
+
'certified': False,
|
|
18
|
+
'pro': True,
|
|
19
|
+
'hostname': 'eea.okx.com',
|
|
20
|
+
'urls': {
|
|
21
|
+
'logo': 'https://user-images.githubusercontent.com/1294454/152485636-38b19e4a-bece-4dec-979a-5982859ffc04.jpg',
|
|
22
|
+
'api': {
|
|
23
|
+
'rest': 'https://{hostname}',
|
|
24
|
+
},
|
|
25
|
+
'www': 'https://my.okx.com',
|
|
26
|
+
'doc': 'https://my.okx.com/docs-v5/en/#overview',
|
|
27
|
+
'fees': 'https://my.okx.com/pages/products/fees.html',
|
|
28
|
+
'referral': {
|
|
29
|
+
'url': 'https://www.my.okx.com/join/CCXT2023',
|
|
30
|
+
'discount': 0.2,
|
|
31
|
+
},
|
|
32
|
+
'test': {
|
|
33
|
+
'rest': 'https://{hostname}',
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
'has': {
|
|
37
|
+
'CORS': None,
|
|
38
|
+
'spot': True,
|
|
39
|
+
'margin': None,
|
|
40
|
+
'swap': False,
|
|
41
|
+
'future': False,
|
|
42
|
+
'option': False,
|
|
43
|
+
},
|
|
44
|
+
'features': {
|
|
45
|
+
'swap': {
|
|
46
|
+
'linear': None,
|
|
47
|
+
'inverse': None,
|
|
48
|
+
},
|
|
49
|
+
'future': {
|
|
50
|
+
'linear': None,
|
|
51
|
+
'inverse': None,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
})
|
ccxt/async_support/ndax.py
CHANGED
|
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
|
|
|
7
7
|
from ccxt.abstract.ndax import ImplicitAPI
|
|
8
8
|
import hashlib
|
|
9
9
|
import json
|
|
10
|
-
from ccxt.base.types import Account, Balances, Currencies, Currency, IndexType, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction
|
|
10
|
+
from ccxt.base.types import Account, Any, Balances, Currencies, Currency, DepositAddress, IndexType, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction
|
|
11
11
|
from typing import List
|
|
12
12
|
from ccxt.base.errors import ExchangeError
|
|
13
13
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -20,7 +20,7 @@ from ccxt.base.precise import Precise
|
|
|
20
20
|
|
|
21
21
|
class ndax(Exchange, ImplicitAPI):
|
|
22
22
|
|
|
23
|
-
def describe(self):
|
|
23
|
+
def describe(self) -> Any:
|
|
24
24
|
return self.deep_extend(super(ndax, self).describe(), {
|
|
25
25
|
'id': 'ndax',
|
|
26
26
|
'name': 'NDAX',
|
|
@@ -35,6 +35,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
35
35
|
'future': False,
|
|
36
36
|
'option': False,
|
|
37
37
|
'addMargin': False,
|
|
38
|
+
'borrowCrossMargin': False,
|
|
39
|
+
'borrowIsolatedMargin': False,
|
|
40
|
+
'borrowMargin': False,
|
|
38
41
|
'cancelAllOrders': True,
|
|
39
42
|
'cancelOrder': True,
|
|
40
43
|
'closeAllPositions': False,
|
|
@@ -47,30 +50,57 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
47
50
|
'createStopOrder': True,
|
|
48
51
|
'editOrder': True,
|
|
49
52
|
'fetchAccounts': True,
|
|
53
|
+
'fetchAllGreeks': False,
|
|
50
54
|
'fetchBalance': True,
|
|
55
|
+
'fetchBorrowInterest': False,
|
|
56
|
+
'fetchBorrowRate': False,
|
|
51
57
|
'fetchBorrowRateHistories': False,
|
|
52
58
|
'fetchBorrowRateHistory': False,
|
|
59
|
+
'fetchBorrowRates': False,
|
|
60
|
+
'fetchBorrowRatesPerSymbol': False,
|
|
53
61
|
'fetchCrossBorrowRate': False,
|
|
54
62
|
'fetchCrossBorrowRates': False,
|
|
55
63
|
'fetchCurrencies': True,
|
|
56
64
|
'fetchDepositAddress': True,
|
|
65
|
+
'fetchDepositAddresses': False,
|
|
66
|
+
'fetchDepositAddressesByNetwork': False,
|
|
57
67
|
'fetchDeposits': True,
|
|
58
68
|
'fetchFundingHistory': False,
|
|
69
|
+
'fetchFundingInterval': False,
|
|
70
|
+
'fetchFundingIntervals': False,
|
|
59
71
|
'fetchFundingRate': False,
|
|
60
72
|
'fetchFundingRateHistory': False,
|
|
61
73
|
'fetchFundingRates': False,
|
|
74
|
+
'fetchGreeks': False,
|
|
62
75
|
'fetchIndexOHLCV': False,
|
|
63
76
|
'fetchIsolatedBorrowRate': False,
|
|
64
77
|
'fetchIsolatedBorrowRates': False,
|
|
78
|
+
'fetchIsolatedPositions': False,
|
|
65
79
|
'fetchLedger': True,
|
|
66
80
|
'fetchLeverage': False,
|
|
81
|
+
'fetchLeverages': False,
|
|
67
82
|
'fetchLeverageTiers': False,
|
|
83
|
+
'fetchLiquidations': False,
|
|
84
|
+
'fetchLongShortRatio': False,
|
|
85
|
+
'fetchLongShortRatioHistory': False,
|
|
86
|
+
'fetchMarginAdjustmentHistory': False,
|
|
87
|
+
'fetchMarginMode': False,
|
|
88
|
+
'fetchMarginModes': False,
|
|
89
|
+
'fetchMarketLeverageTiers': False,
|
|
68
90
|
'fetchMarkets': True,
|
|
69
91
|
'fetchMarkOHLCV': False,
|
|
92
|
+
'fetchMarkPrice': False,
|
|
93
|
+
'fetchMarkPrices': False,
|
|
94
|
+
'fetchMyLiquidations': False,
|
|
95
|
+
'fetchMySettlementHistory': False,
|
|
70
96
|
'fetchMyTrades': True,
|
|
71
97
|
'fetchOHLCV': True,
|
|
98
|
+
'fetchOpenInterest': False,
|
|
72
99
|
'fetchOpenInterestHistory': False,
|
|
100
|
+
'fetchOpenInterests': False,
|
|
73
101
|
'fetchOpenOrders': True,
|
|
102
|
+
'fetchOption': False,
|
|
103
|
+
'fetchOptionChain': False,
|
|
74
104
|
'fetchOrder': True,
|
|
75
105
|
'fetchOrderBook': True,
|
|
76
106
|
'fetchOrders': True,
|
|
@@ -83,16 +113,22 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
83
113
|
'fetchPositionsHistory': False,
|
|
84
114
|
'fetchPositionsRisk': False,
|
|
85
115
|
'fetchPremiumIndexOHLCV': False,
|
|
116
|
+
'fetchSettlementHistory': False,
|
|
86
117
|
'fetchTicker': True,
|
|
87
118
|
'fetchTickers': False,
|
|
88
119
|
'fetchTime': False,
|
|
89
120
|
'fetchTrades': True,
|
|
90
121
|
'fetchTradingFee': False,
|
|
91
122
|
'fetchTradingFees': False,
|
|
123
|
+
'fetchUnderlyingAssets': False,
|
|
124
|
+
'fetchVolatilityHistory': False,
|
|
92
125
|
'fetchWithdrawals': True,
|
|
93
126
|
'reduceMargin': False,
|
|
127
|
+
'repayCrossMargin': False,
|
|
128
|
+
'repayIsolatedMargin': False,
|
|
94
129
|
'sandbox': True,
|
|
95
130
|
'setLeverage': False,
|
|
131
|
+
'setMargin': False,
|
|
96
132
|
'setMarginMode': False,
|
|
97
133
|
'setPositionMode': False,
|
|
98
134
|
'signIn': True,
|
|
@@ -236,6 +272,81 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
236
272
|
},
|
|
237
273
|
},
|
|
238
274
|
},
|
|
275
|
+
'features': {
|
|
276
|
+
'spot': {
|
|
277
|
+
'sandbox': True,
|
|
278
|
+
'createOrder': {
|
|
279
|
+
'marginMode': False,
|
|
280
|
+
'triggerPrice': True,
|
|
281
|
+
'triggerDirection': False,
|
|
282
|
+
'triggerPriceType': {
|
|
283
|
+
'last': True,
|
|
284
|
+
'mark': False,
|
|
285
|
+
'index': False,
|
|
286
|
+
# bid & ask
|
|
287
|
+
},
|
|
288
|
+
'stopLossPrice': False, # todo
|
|
289
|
+
'takeProfitPrice': False, # todo
|
|
290
|
+
'attachedStopLossTakeProfit': None,
|
|
291
|
+
# todo
|
|
292
|
+
'timeInForce': {
|
|
293
|
+
'IOC': True,
|
|
294
|
+
'FOK': True,
|
|
295
|
+
'PO': True,
|
|
296
|
+
'GTD': False,
|
|
297
|
+
},
|
|
298
|
+
'hedged': False,
|
|
299
|
+
'trailing': False,
|
|
300
|
+
'leverage': False,
|
|
301
|
+
'marketBuyByCost': False,
|
|
302
|
+
'marketBuyRequiresPrice': False,
|
|
303
|
+
'selfTradePrevention': False,
|
|
304
|
+
'iceberg': True, # todo
|
|
305
|
+
},
|
|
306
|
+
'createOrders': None,
|
|
307
|
+
'fetchMyTrades': {
|
|
308
|
+
'marginMode': False,
|
|
309
|
+
'limit': 100, # todo
|
|
310
|
+
'daysBack': 100000, # todo
|
|
311
|
+
'untilDays': 100000, # todo
|
|
312
|
+
'symbolRequired': False,
|
|
313
|
+
},
|
|
314
|
+
'fetchOrder': {
|
|
315
|
+
'marginMode': False,
|
|
316
|
+
'trigger': False,
|
|
317
|
+
'trailing': False,
|
|
318
|
+
'symbolRequired': False,
|
|
319
|
+
},
|
|
320
|
+
'fetchOpenOrders': {
|
|
321
|
+
'marginMode': False,
|
|
322
|
+
'limit': None,
|
|
323
|
+
'trigger': False,
|
|
324
|
+
'trailing': False,
|
|
325
|
+
'symbolRequired': False,
|
|
326
|
+
},
|
|
327
|
+
'fetchOrders': {
|
|
328
|
+
'marginMode': False,
|
|
329
|
+
'limit': None,
|
|
330
|
+
'daysBack': None,
|
|
331
|
+
'untilDays': None,
|
|
332
|
+
'trigger': False,
|
|
333
|
+
'trailing': False,
|
|
334
|
+
'symbolRequired': False,
|
|
335
|
+
},
|
|
336
|
+
'fetchClosedOrders': None,
|
|
337
|
+
'fetchOHLCV': {
|
|
338
|
+
'limit': None,
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
'swap': {
|
|
342
|
+
'linear': None,
|
|
343
|
+
'inverse': None,
|
|
344
|
+
},
|
|
345
|
+
'future': {
|
|
346
|
+
'linear': None,
|
|
347
|
+
'inverse': None,
|
|
348
|
+
},
|
|
349
|
+
},
|
|
239
350
|
'fees': {
|
|
240
351
|
'trading': {
|
|
241
352
|
'tierBased': False,
|
|
@@ -289,7 +400,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
289
400
|
async def sign_in(self, params={}):
|
|
290
401
|
"""
|
|
291
402
|
sign in, must be called prior to using other authenticated methods
|
|
292
|
-
|
|
403
|
+
|
|
404
|
+
https://apidoc.ndax.io/#authenticate2fa
|
|
405
|
+
|
|
293
406
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
294
407
|
:returns: response from exchange
|
|
295
408
|
"""
|
|
@@ -325,7 +438,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
325
438
|
#
|
|
326
439
|
# {
|
|
327
440
|
# "Authenticated": True,
|
|
328
|
-
# "UserId":
|
|
441
|
+
# "UserId":57764,
|
|
329
442
|
# "SessionToken":"4a2a5857-c4e5-4fac-b09e-2c4c30b591a0"
|
|
330
443
|
# }
|
|
331
444
|
#
|
|
@@ -337,7 +450,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
337
450
|
async def fetch_currencies(self, params={}) -> Currencies:
|
|
338
451
|
"""
|
|
339
452
|
fetches all available currencies on an exchange
|
|
340
|
-
|
|
453
|
+
|
|
454
|
+
https://apidoc.ndax.io/#getproduct
|
|
455
|
+
|
|
341
456
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
342
457
|
:returns dict: an associative dictionary of currencies
|
|
343
458
|
"""
|
|
@@ -347,44 +462,44 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
347
462
|
}
|
|
348
463
|
response = await self.publicGetGetProducts(self.extend(request, params))
|
|
349
464
|
#
|
|
350
|
-
#
|
|
351
|
-
#
|
|
352
|
-
#
|
|
353
|
-
#
|
|
354
|
-
#
|
|
355
|
-
#
|
|
356
|
-
#
|
|
357
|
-
#
|
|
358
|
-
#
|
|
359
|
-
#
|
|
360
|
-
#
|
|
361
|
-
#
|
|
362
|
-
#
|
|
363
|
-
#
|
|
465
|
+
# [
|
|
466
|
+
# {
|
|
467
|
+
# "OMSId": "1",
|
|
468
|
+
# "ProductId": "1",
|
|
469
|
+
# "Product": "BTC",
|
|
470
|
+
# "ProductFullName": "Bitcoin",
|
|
471
|
+
# "MasterDataUniqueProductSymbol": "",
|
|
472
|
+
# "ProductType": "CryptoCurrency",
|
|
473
|
+
# "DecimalPlaces": "8",
|
|
474
|
+
# "TickSize": "0.0000000100000000000000000000",
|
|
475
|
+
# "DepositEnabled": True,
|
|
476
|
+
# "WithdrawEnabled": True,
|
|
477
|
+
# "NoFees": False,
|
|
478
|
+
# "IsDisabled": False,
|
|
479
|
+
# "MarginEnabled": False
|
|
480
|
+
# },
|
|
481
|
+
# ...
|
|
364
482
|
#
|
|
365
483
|
result: dict = {}
|
|
366
484
|
for i in range(0, len(response)):
|
|
367
485
|
currency = response[i]
|
|
368
486
|
id = self.safe_string(currency, 'ProductId')
|
|
369
|
-
|
|
487
|
+
code = self.safe_currency_code(self.safe_string(currency, 'Product'))
|
|
370
488
|
ProductType = self.safe_string(currency, 'ProductType')
|
|
371
489
|
type = 'fiat' if (ProductType == 'NationalCurrency') else 'crypto'
|
|
372
490
|
if ProductType == 'Unknown':
|
|
373
491
|
# such currency is just a blanket entry
|
|
374
492
|
type = 'other'
|
|
375
|
-
code = self.
|
|
376
|
-
isDisabled = self.safe_value(currency, 'IsDisabled')
|
|
377
|
-
active = not isDisabled
|
|
378
|
-
result[code] = {
|
|
493
|
+
result[code] = self.safe_currency_structure({
|
|
379
494
|
'id': id,
|
|
380
|
-
'name':
|
|
495
|
+
'name': self.safe_string(currency, 'ProductFullName'),
|
|
381
496
|
'code': code,
|
|
382
497
|
'type': type,
|
|
383
498
|
'precision': self.safe_number(currency, 'TickSize'),
|
|
384
499
|
'info': currency,
|
|
385
|
-
'active':
|
|
386
|
-
'deposit':
|
|
387
|
-
'withdraw':
|
|
500
|
+
'active': not self.safe_bool(currency, 'IsDisabled'),
|
|
501
|
+
'deposit': self.safe_bool(currency, 'DepositEnabled'),
|
|
502
|
+
'withdraw': self.safe_bool(currency, 'WithdrawEnabled'),
|
|
388
503
|
'fee': None,
|
|
389
504
|
'limits': {
|
|
390
505
|
'amount': {
|
|
@@ -397,13 +512,16 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
397
512
|
},
|
|
398
513
|
},
|
|
399
514
|
'networks': {},
|
|
400
|
-
|
|
515
|
+
'margin': self.safe_bool(currency, 'MarginEnabled'),
|
|
516
|
+
})
|
|
401
517
|
return result
|
|
402
518
|
|
|
403
519
|
async def fetch_markets(self, params={}) -> List[Market]:
|
|
404
520
|
"""
|
|
405
521
|
retrieves data on all markets for ndax
|
|
406
|
-
|
|
522
|
+
|
|
523
|
+
https://apidoc.ndax.io/#getinstruments
|
|
524
|
+
|
|
407
525
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
408
526
|
:returns dict[]: an array of objects representing market data
|
|
409
527
|
"""
|
|
@@ -545,7 +663,8 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
545
663
|
bidask = self.parse_bid_ask(level, priceKey, amountKey)
|
|
546
664
|
levelSide = self.safe_integer(level, 9)
|
|
547
665
|
side = asksKey if levelSide else bidsKey
|
|
548
|
-
result[side]
|
|
666
|
+
resultSide = result[side]
|
|
667
|
+
resultSide.append(bidask)
|
|
549
668
|
result['bids'] = self.sort_by(result['bids'], 0, True)
|
|
550
669
|
result['asks'] = self.sort_by(result['asks'], 0)
|
|
551
670
|
result['timestamp'] = timestamp
|
|
@@ -556,7 +675,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
556
675
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
557
676
|
"""
|
|
558
677
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
559
|
-
|
|
678
|
+
|
|
679
|
+
https://apidoc.ndax.io/#getl2snapshot
|
|
680
|
+
|
|
560
681
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
561
682
|
:param int [limit]: the maximum amount of order book entries to return
|
|
562
683
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -665,7 +786,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
665
786
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
666
787
|
"""
|
|
667
788
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
668
|
-
|
|
789
|
+
|
|
790
|
+
https://apidoc.ndax.io/#getlevel1
|
|
791
|
+
|
|
669
792
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
670
793
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
671
794
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -736,7 +859,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
736
859
|
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
737
860
|
"""
|
|
738
861
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
739
|
-
|
|
862
|
+
|
|
863
|
+
https://apidoc.ndax.io/#gettickerhistory
|
|
864
|
+
|
|
740
865
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
741
866
|
:param str timeframe: the length of time each candle represents
|
|
742
867
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -970,7 +1095,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
970
1095
|
async def fetch_accounts(self, params={}) -> List[Account]:
|
|
971
1096
|
"""
|
|
972
1097
|
fetch all the accounts associated with a profile
|
|
973
|
-
|
|
1098
|
+
|
|
1099
|
+
https://apidoc.ndax.io/#getuseraccounts
|
|
1100
|
+
|
|
974
1101
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
975
1102
|
:returns dict: a dictionary of `account structures <https://docs.ccxt.com/#/?id=account-structure>` indexed by the account type
|
|
976
1103
|
"""
|
|
@@ -1018,15 +1145,19 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1018
1145
|
async def fetch_balance(self, params={}) -> Balances:
|
|
1019
1146
|
"""
|
|
1020
1147
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
|
1021
|
-
|
|
1148
|
+
|
|
1149
|
+
https://apidoc.ndax.io/#getaccountpositions
|
|
1150
|
+
|
|
1022
1151
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1023
1152
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
|
1024
1153
|
"""
|
|
1025
1154
|
omsId = self.safe_integer(self.options, 'omsId', 1)
|
|
1026
1155
|
await self.load_markets()
|
|
1027
1156
|
await self.load_accounts()
|
|
1028
|
-
defaultAccountId = self.safe_integer_2(self.options, 'accountId', 'AccountId'
|
|
1157
|
+
defaultAccountId = self.safe_integer_2(self.options, 'accountId', 'AccountId')
|
|
1029
1158
|
accountId = self.safe_integer_2(params, 'accountId', 'AccountId', defaultAccountId)
|
|
1159
|
+
if accountId is None:
|
|
1160
|
+
accountId = int(self.accounts[0]['id'])
|
|
1030
1161
|
params = self.omit(params, ['accountId', 'AccountId'])
|
|
1031
1162
|
request: dict = {
|
|
1032
1163
|
'omsId': omsId,
|
|
@@ -1084,7 +1215,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1084
1215
|
}
|
|
1085
1216
|
return self.safe_string(types, type, type)
|
|
1086
1217
|
|
|
1087
|
-
def parse_ledger_entry(self, item: dict, currency: Currency = None):
|
|
1218
|
+
def parse_ledger_entry(self, item: dict, currency: Currency = None) -> LedgerEntry:
|
|
1088
1219
|
#
|
|
1089
1220
|
# {
|
|
1090
1221
|
# "TransactionId": 2663709493,
|
|
@@ -1102,6 +1233,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1102
1233
|
# }
|
|
1103
1234
|
#
|
|
1104
1235
|
currencyId = self.safe_string(item, 'ProductId')
|
|
1236
|
+
currency = self.safe_currency(currencyId, currency)
|
|
1105
1237
|
credit = self.safe_string(item, 'CR')
|
|
1106
1238
|
debit = self.safe_string(item, 'DR')
|
|
1107
1239
|
amount = None
|
|
@@ -1119,7 +1251,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1119
1251
|
elif direction == 'in':
|
|
1120
1252
|
before = Precise.string_max('0', Precise.string_sub(after, amount))
|
|
1121
1253
|
timestamp = self.safe_integer(item, 'TimeStamp')
|
|
1122
|
-
return {
|
|
1254
|
+
return self.safe_ledger_entry({
|
|
1123
1255
|
'info': item,
|
|
1124
1256
|
'id': self.safe_string(item, 'TransactionId'),
|
|
1125
1257
|
'direction': direction,
|
|
@@ -1135,17 +1267,19 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1135
1267
|
'timestamp': timestamp,
|
|
1136
1268
|
'datetime': self.iso8601(timestamp),
|
|
1137
1269
|
'fee': None,
|
|
1138
|
-
}
|
|
1270
|
+
}, currency)
|
|
1139
1271
|
|
|
1140
|
-
async def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1272
|
+
async def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[LedgerEntry]:
|
|
1141
1273
|
"""
|
|
1142
|
-
fetch the history of changes, actions done by the user or operations that altered balance of the user
|
|
1143
|
-
|
|
1144
|
-
|
|
1274
|
+
fetch the history of changes, actions done by the user or operations that altered the balance of the user
|
|
1275
|
+
|
|
1276
|
+
https://apidoc.ndax.io/#getaccounttransactions
|
|
1277
|
+
|
|
1278
|
+
:param str [code]: unified currency code, default is None
|
|
1145
1279
|
:param int [since]: timestamp in ms of the earliest ledger entry, default is None
|
|
1146
|
-
:param int [limit]: max number of ledger
|
|
1280
|
+
:param int [limit]: max number of ledger entries to return, default is None
|
|
1147
1281
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1148
|
-
:returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger
|
|
1282
|
+
:returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger>`
|
|
1149
1283
|
"""
|
|
1150
1284
|
omsId = self.safe_integer(self.options, 'omsId', 1)
|
|
1151
1285
|
await self.load_markets()
|
|
@@ -1278,7 +1412,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1278
1412
|
'postOnly': None,
|
|
1279
1413
|
'side': self.safe_string_lower(order, 'Side'),
|
|
1280
1414
|
'price': self.safe_string(order, 'Price'),
|
|
1281
|
-
'
|
|
1415
|
+
'triggerPrice': self.parse_number(self.omit_zero(self.safe_string(order, 'StopPrice'))),
|
|
1282
1416
|
'cost': self.safe_string(order, 'GrossValueExecuted'),
|
|
1283
1417
|
'amount': self.safe_string(order, 'OrigQuantity'),
|
|
1284
1418
|
'filled': self.safe_string(order, 'QuantityExecuted'),
|
|
@@ -1291,14 +1425,17 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1291
1425
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
1292
1426
|
"""
|
|
1293
1427
|
create a trade order
|
|
1294
|
-
|
|
1428
|
+
|
|
1429
|
+
https://apidoc.ndax.io/#sendorder
|
|
1430
|
+
|
|
1295
1431
|
:param str symbol: unified symbol of the market to create an order in
|
|
1296
1432
|
:param str type: 'market' or 'limit'
|
|
1297
1433
|
:param str side: 'buy' or 'sell'
|
|
1298
1434
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
1299
|
-
:param float [price]: the price at which the order is to be
|
|
1435
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
1300
1436
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1301
1437
|
:param float [params.triggerPrice]: the price at which a trigger order would be triggered
|
|
1438
|
+
:param str [params.clientOrderId]: a unique id for the order
|
|
1302
1439
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1303
1440
|
"""
|
|
1304
1441
|
omsId = self.safe_integer(self.options, 'omsId', 1)
|
|
@@ -1400,7 +1537,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1400
1537
|
async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1401
1538
|
"""
|
|
1402
1539
|
fetch all trades made by the user
|
|
1403
|
-
|
|
1540
|
+
|
|
1541
|
+
https://apidoc.ndax.io/#gettradeshistory
|
|
1542
|
+
|
|
1404
1543
|
:param str symbol: unified market symbol
|
|
1405
1544
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
1406
1545
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -1483,7 +1622,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1483
1622
|
async def cancel_all_orders(self, symbol: Str = None, params={}):
|
|
1484
1623
|
"""
|
|
1485
1624
|
cancel all open orders
|
|
1486
|
-
|
|
1625
|
+
|
|
1626
|
+
https://apidoc.ndax.io/#cancelallorders
|
|
1627
|
+
|
|
1487
1628
|
:param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
|
|
1488
1629
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1489
1630
|
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1519,10 +1660,13 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1519
1660
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
1520
1661
|
"""
|
|
1521
1662
|
cancels an open order
|
|
1522
|
-
|
|
1663
|
+
|
|
1664
|
+
https://apidoc.ndax.io/#cancelorder
|
|
1665
|
+
|
|
1523
1666
|
:param str id: order id
|
|
1524
1667
|
:param str symbol: unified symbol of the market the order was made in
|
|
1525
1668
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1669
|
+
:param str [params.clientOrderId]: a unique id for the order
|
|
1526
1670
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1527
1671
|
"""
|
|
1528
1672
|
omsId = self.safe_integer(self.options, 'omsId', 1)
|
|
@@ -1554,7 +1698,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1554
1698
|
async def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1555
1699
|
"""
|
|
1556
1700
|
fetch all unfilled currently open orders
|
|
1557
|
-
|
|
1701
|
+
|
|
1702
|
+
https://apidoc.ndax.io/#getopenorders
|
|
1703
|
+
|
|
1558
1704
|
:param str symbol: unified market symbol
|
|
1559
1705
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
1560
1706
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
@@ -1630,7 +1776,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1630
1776
|
async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
|
1631
1777
|
"""
|
|
1632
1778
|
fetches information on multiple orders made by the user
|
|
1633
|
-
|
|
1779
|
+
|
|
1780
|
+
https://apidoc.ndax.io/#getorderhistory
|
|
1781
|
+
|
|
1634
1782
|
:param str symbol: unified market symbol of the market orders were made in
|
|
1635
1783
|
:param int [since]: the earliest time in ms to fetch orders for
|
|
1636
1784
|
:param int [limit]: the maximum number of order structures to retrieve
|
|
@@ -1720,7 +1868,10 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1720
1868
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1721
1869
|
"""
|
|
1722
1870
|
fetches information on an order made by the user
|
|
1723
|
-
|
|
1871
|
+
|
|
1872
|
+
https://apidoc.ndax.io/#getorderstatus
|
|
1873
|
+
|
|
1874
|
+
:param str id: order id
|
|
1724
1875
|
:param str symbol: unified symbol of the market the order was made in
|
|
1725
1876
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1726
1877
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1793,7 +1944,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1793
1944
|
async def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1794
1945
|
"""
|
|
1795
1946
|
fetch all the trades made from a single order
|
|
1796
|
-
|
|
1947
|
+
|
|
1948
|
+
https://apidoc.ndax.io/#getorderhistorybyorderid
|
|
1949
|
+
|
|
1797
1950
|
:param str id: order id
|
|
1798
1951
|
:param str symbol: unified market symbol
|
|
1799
1952
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
@@ -1870,7 +2023,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1870
2023
|
trades = self.safe_list(grouped, 'Trade', [])
|
|
1871
2024
|
return self.parse_trades(trades, market, since, limit)
|
|
1872
2025
|
|
|
1873
|
-
async def fetch_deposit_address(self, code: str, params={}):
|
|
2026
|
+
async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1874
2027
|
"""
|
|
1875
2028
|
fetch the deposit address for a currency associated with self account
|
|
1876
2029
|
:param str code: unified currency code
|
|
@@ -1905,7 +2058,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1905
2058
|
#
|
|
1906
2059
|
return self.parse_deposit_address(response, currency)
|
|
1907
2060
|
|
|
1908
|
-
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
|
2061
|
+
def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
|
|
1909
2062
|
#
|
|
1910
2063
|
# fetchDepositAddress, createDepositAddress
|
|
1911
2064
|
#
|
|
@@ -1932,14 +2085,14 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1932
2085
|
code = currency['code']
|
|
1933
2086
|
self.check_address(address)
|
|
1934
2087
|
return {
|
|
2088
|
+
'info': depositAddress,
|
|
1935
2089
|
'currency': code,
|
|
2090
|
+
'network': None,
|
|
1936
2091
|
'address': address,
|
|
1937
2092
|
'tag': tag,
|
|
1938
|
-
'network': None,
|
|
1939
|
-
'info': depositAddress,
|
|
1940
2093
|
}
|
|
1941
2094
|
|
|
1942
|
-
async def create_deposit_address(self, code: str, params={}):
|
|
2095
|
+
async def create_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1943
2096
|
"""
|
|
1944
2097
|
create a currency deposit address
|
|
1945
2098
|
:param str code: unified currency code of the currency for the deposit address
|
|
@@ -1954,7 +2107,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
1954
2107
|
async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
1955
2108
|
"""
|
|
1956
2109
|
fetch all deposits made to an account
|
|
1957
|
-
|
|
2110
|
+
|
|
2111
|
+
https://apidoc.ndax.io/#getdeposits
|
|
2112
|
+
|
|
1958
2113
|
:param str code: unified currency code
|
|
1959
2114
|
:param int [since]: not used by ndax fetchDeposits
|
|
1960
2115
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
|
@@ -2010,7 +2165,9 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
2010
2165
|
async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
|
2011
2166
|
"""
|
|
2012
2167
|
fetch all withdrawals made from an account
|
|
2013
|
-
|
|
2168
|
+
|
|
2169
|
+
https://apidoc.ndax.io/#getwithdraws
|
|
2170
|
+
|
|
2014
2171
|
:param str code: unified currency code
|
|
2015
2172
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
|
2016
2173
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
|
@@ -2200,7 +2357,7 @@ class ndax(Exchange, ImplicitAPI):
|
|
|
2200
2357
|
'network': None,
|
|
2201
2358
|
}
|
|
2202
2359
|
|
|
2203
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
2360
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
2204
2361
|
"""
|
|
2205
2362
|
make a withdrawal
|
|
2206
2363
|
:param str code: unified currency code
|