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
|
@@ -7,9 +7,8 @@ from ccxt.async_support.base.exchange import Exchange
|
|
|
7
7
|
from ccxt.abstract.wavesexchange import ImplicitAPI
|
|
8
8
|
import asyncio
|
|
9
9
|
import json
|
|
10
|
-
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
|
10
|
+
from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
|
11
11
|
from typing import List
|
|
12
|
-
from typing import Any
|
|
13
12
|
from ccxt.base.errors import ExchangeError
|
|
14
13
|
from ccxt.base.errors import AuthenticationError
|
|
15
14
|
from ccxt.base.errors import AccountSuspended
|
|
@@ -27,7 +26,7 @@ from ccxt.base.precise import Precise
|
|
|
27
26
|
|
|
28
27
|
class wavesexchange(Exchange, ImplicitAPI):
|
|
29
28
|
|
|
30
|
-
def describe(self):
|
|
29
|
+
def describe(self) -> Any:
|
|
31
30
|
return self.deep_extend(super(wavesexchange, self).describe(), {
|
|
32
31
|
'id': 'wavesexchange',
|
|
33
32
|
'name': 'Waves.Exchange',
|
|
@@ -59,6 +58,8 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
59
58
|
'fetchCrossBorrowRate': False,
|
|
60
59
|
'fetchCrossBorrowRates': False,
|
|
61
60
|
'fetchDepositAddress': True,
|
|
61
|
+
'fetchDepositAddresses': None,
|
|
62
|
+
'fetchDepositAddressesByNetwork': None,
|
|
62
63
|
'fetchDepositWithdrawFee': 'emulated',
|
|
63
64
|
'fetchDepositWithdrawFees': True,
|
|
64
65
|
'fetchFundingHistory': False,
|
|
@@ -136,7 +137,13 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
136
137
|
'forward': 'https://wx.network/api/v1/forward/matcher',
|
|
137
138
|
'market': 'https://wx.network/api/v1/forward/marketdata/api/v1',
|
|
138
139
|
},
|
|
139
|
-
'doc':
|
|
140
|
+
'doc': [
|
|
141
|
+
'https://docs.wx.network',
|
|
142
|
+
'https://docs.waves.tech',
|
|
143
|
+
'https://api.wavesplatform.com/v0/docs/',
|
|
144
|
+
'https://nodes.wavesnodes.com/api-docs/index.html',
|
|
145
|
+
'https://matcher.waves.exchange/api-docs/index.html',
|
|
146
|
+
],
|
|
140
147
|
'www': 'https://wx.network',
|
|
141
148
|
},
|
|
142
149
|
'api': {
|
|
@@ -350,6 +357,84 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
350
357
|
'BEP20': 'BSC',
|
|
351
358
|
},
|
|
352
359
|
},
|
|
360
|
+
'features': {
|
|
361
|
+
'spot': {
|
|
362
|
+
'sandbox': True,
|
|
363
|
+
'createOrder': {
|
|
364
|
+
'marginMode': False,
|
|
365
|
+
'triggerPrice': True, # todo
|
|
366
|
+
'triggerDirection': False,
|
|
367
|
+
'triggerPriceType': None,
|
|
368
|
+
'stopLossPrice': False, # todo
|
|
369
|
+
'takeProfitPrice': False, # todo
|
|
370
|
+
'attachedStopLossTakeProfit': None,
|
|
371
|
+
'timeInForce': {
|
|
372
|
+
'IOC': False,
|
|
373
|
+
'FOK': False,
|
|
374
|
+
'PO': False,
|
|
375
|
+
'GTD': True, # todo
|
|
376
|
+
},
|
|
377
|
+
'hedged': False,
|
|
378
|
+
'trailing': False,
|
|
379
|
+
'leverage': False,
|
|
380
|
+
'marketBuyByCost': False, # todo
|
|
381
|
+
'marketBuyRequiresPrice': True,
|
|
382
|
+
'selfTradePrevention': False,
|
|
383
|
+
'iceberg': False,
|
|
384
|
+
},
|
|
385
|
+
'createOrders': None,
|
|
386
|
+
'fetchMyTrades': {
|
|
387
|
+
'marginMode': False,
|
|
388
|
+
'limit': 100, # todo
|
|
389
|
+
'daysBack': 100000, # todo
|
|
390
|
+
'untilDays': 100000, # todo
|
|
391
|
+
'symbolRequired': False,
|
|
392
|
+
},
|
|
393
|
+
'fetchOrder': {
|
|
394
|
+
'marginMode': False,
|
|
395
|
+
'trigger': False,
|
|
396
|
+
'trailing': False,
|
|
397
|
+
'symbolRequired': False,
|
|
398
|
+
},
|
|
399
|
+
'fetchOpenOrders': {
|
|
400
|
+
'marginMode': False,
|
|
401
|
+
'limit': 100, # todo
|
|
402
|
+
'trigger': False,
|
|
403
|
+
'trailing': False,
|
|
404
|
+
'symbolRequired': False,
|
|
405
|
+
},
|
|
406
|
+
'fetchOrders': {
|
|
407
|
+
'marginMode': False,
|
|
408
|
+
'limit': 100, # todo
|
|
409
|
+
'daysBack': None,
|
|
410
|
+
'untilDays': None,
|
|
411
|
+
'trigger': False,
|
|
412
|
+
'trailing': False,
|
|
413
|
+
'symbolRequired': True,
|
|
414
|
+
}, # todo
|
|
415
|
+
'fetchClosedOrders': {
|
|
416
|
+
'marginMode': False,
|
|
417
|
+
'limit': 100,
|
|
418
|
+
'daysBack': 100000, # todo
|
|
419
|
+
'daysBackCanceled': 1, # todo
|
|
420
|
+
'untilDays': 100000, # todo
|
|
421
|
+
'trigger': False,
|
|
422
|
+
'trailing': False,
|
|
423
|
+
'symbolRequired': False,
|
|
424
|
+
},
|
|
425
|
+
'fetchOHLCV': {
|
|
426
|
+
'limit': None, # todo
|
|
427
|
+
},
|
|
428
|
+
},
|
|
429
|
+
'swap': {
|
|
430
|
+
'linear': None,
|
|
431
|
+
'inverse': None,
|
|
432
|
+
},
|
|
433
|
+
'future': {
|
|
434
|
+
'linear': None,
|
|
435
|
+
'inverse': None,
|
|
436
|
+
},
|
|
437
|
+
},
|
|
353
438
|
'commonCurrencies': {
|
|
354
439
|
'EGG': 'Waves Ducks',
|
|
355
440
|
},
|
|
@@ -600,6 +685,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
600
685
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
601
686
|
"""
|
|
602
687
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
688
|
+
|
|
689
|
+
https://matcher.waves.exchange/api-docs/index.html#/markets/getOrderBook
|
|
690
|
+
|
|
603
691
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
604
692
|
:param int [limit]: the maximum amount of order book entries to return
|
|
605
693
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -671,6 +759,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
671
759
|
raise AuthenticationError(self.id + ' apiKey must be a base58 encoded public key')
|
|
672
760
|
if len(hexSecretKeyBytes) != 64:
|
|
673
761
|
raise AuthenticationError(self.id + ' secret must be a base58 encoded private key')
|
|
762
|
+
return True
|
|
674
763
|
|
|
675
764
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
|
676
765
|
query = self.omit(params, self.extract_params(path))
|
|
@@ -720,6 +809,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
720
809
|
async def sign_in(self, params={}):
|
|
721
810
|
"""
|
|
722
811
|
sign in, must be called prior to using other authenticated methods
|
|
812
|
+
|
|
813
|
+
https://docs.wx.network/en/api/auth/oauth2-token
|
|
814
|
+
|
|
723
815
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
724
816
|
:returns: response from exchange
|
|
725
817
|
"""
|
|
@@ -830,6 +922,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
830
922
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
831
923
|
"""
|
|
832
924
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
925
|
+
|
|
926
|
+
https://api.wavesplatform.com/v0/docs/#/pairs/getPairsListAll
|
|
927
|
+
|
|
833
928
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
834
929
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
835
930
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -871,7 +966,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
871
966
|
async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
872
967
|
"""
|
|
873
968
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
874
|
-
:param str[]
|
|
969
|
+
:param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
875
970
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
876
971
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
877
972
|
"""
|
|
@@ -910,11 +1005,15 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
910
1005
|
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
911
1006
|
"""
|
|
912
1007
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
1008
|
+
|
|
1009
|
+
https://api.wavesplatform.com/v0/docs/#/candles/getCandles
|
|
1010
|
+
|
|
913
1011
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
914
1012
|
:param str timeframe: the length of time each candle represents
|
|
915
1013
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
916
1014
|
:param int [limit]: the maximum amount of candles to fetch
|
|
917
1015
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1016
|
+
:param int [params.until]: timestamp in ms of the latest candle to fetch
|
|
918
1017
|
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
|
919
1018
|
"""
|
|
920
1019
|
await self.load_markets()
|
|
@@ -925,19 +1024,29 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
925
1024
|
'interval': self.safe_string(self.timeframes, timeframe, timeframe),
|
|
926
1025
|
}
|
|
927
1026
|
allowedCandles = self.safe_integer(self.options, 'allowedCandles', 1440)
|
|
1027
|
+
until = self.safe_integer(params, 'until')
|
|
1028
|
+
untilIsDefined = until is not None
|
|
928
1029
|
if limit is None:
|
|
929
1030
|
limit = allowedCandles
|
|
930
1031
|
limit = min(allowedCandles, limit)
|
|
931
1032
|
duration = self.parse_timeframe(timeframe) * 1000
|
|
932
1033
|
if since is None:
|
|
933
|
-
|
|
1034
|
+
now = self.milliseconds()
|
|
1035
|
+
timeEnd = until if untilIsDefined else now
|
|
1036
|
+
durationRoundedTimestamp = self.parse_to_int(timeEnd / duration) * duration
|
|
934
1037
|
delta = (limit - 1) * duration
|
|
935
1038
|
timeStart = durationRoundedTimestamp - delta
|
|
936
1039
|
request['timeStart'] = str(timeStart)
|
|
1040
|
+
if untilIsDefined:
|
|
1041
|
+
request['timeEnd'] = str(until)
|
|
937
1042
|
else:
|
|
938
1043
|
request['timeStart'] = str(since)
|
|
939
|
-
|
|
940
|
-
|
|
1044
|
+
if untilIsDefined:
|
|
1045
|
+
request['timeEnd'] = str(until)
|
|
1046
|
+
else:
|
|
1047
|
+
timeEnd = self.sum(since, duration * limit)
|
|
1048
|
+
request['timeEnd'] = str(timeEnd)
|
|
1049
|
+
params = self.omit(params, 'until')
|
|
941
1050
|
response = await self.publicGetCandlesBaseIdQuoteId(self.extend(request, params))
|
|
942
1051
|
#
|
|
943
1052
|
# {
|
|
@@ -1019,7 +1128,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1019
1128
|
self.safe_number(data, 'volume', 0),
|
|
1020
1129
|
]
|
|
1021
1130
|
|
|
1022
|
-
async def fetch_deposit_address(self, code: str, params={}):
|
|
1131
|
+
async def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1023
1132
|
"""
|
|
1024
1133
|
fetch the deposit address for a currency associated with self account
|
|
1025
1134
|
:param str code: unified currency code
|
|
@@ -1098,12 +1207,11 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1098
1207
|
responseInner = await self.nodeGetAddressesPublicKeyPublicKey(self.extend(request, request))
|
|
1099
1208
|
addressInner = self.safe_string(response, 'address')
|
|
1100
1209
|
return {
|
|
1101
|
-
'
|
|
1102
|
-
'code': code, # kept here for backward-compatibility, but will be removed soon
|
|
1210
|
+
'info': responseInner,
|
|
1103
1211
|
'currency': code,
|
|
1104
1212
|
'network': network,
|
|
1213
|
+
'address': addressInner,
|
|
1105
1214
|
'tag': None,
|
|
1106
|
-
'info': responseInner,
|
|
1107
1215
|
}
|
|
1108
1216
|
else:
|
|
1109
1217
|
request: dict = {
|
|
@@ -1141,12 +1249,11 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1141
1249
|
addresses = self.safe_value(response, 'deposit_addresses')
|
|
1142
1250
|
address = self.safe_string(addresses, 0)
|
|
1143
1251
|
return {
|
|
1144
|
-
'
|
|
1145
|
-
'code': code, # kept here for backward-compatibility, but will be removed soon
|
|
1252
|
+
'info': response,
|
|
1146
1253
|
'currency': code,
|
|
1147
|
-
'tag': None,
|
|
1148
1254
|
'network': unifiedNetwork,
|
|
1149
|
-
'
|
|
1255
|
+
'address': address,
|
|
1256
|
+
'tag': None,
|
|
1150
1257
|
}
|
|
1151
1258
|
|
|
1152
1259
|
async def get_matcher_public_key(self):
|
|
@@ -1217,13 +1324,16 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1217
1324
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
1218
1325
|
"""
|
|
1219
1326
|
create a trade order
|
|
1327
|
+
|
|
1328
|
+
https://matcher.waves.exchange/api-docs/index.html#/serialize/serializeOrder
|
|
1329
|
+
|
|
1220
1330
|
:param str symbol: unified symbol of the market to create an order in
|
|
1221
1331
|
:param str type: 'market' or 'limit'
|
|
1222
1332
|
:param str side: 'buy' or 'sell'
|
|
1223
1333
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
1224
|
-
:param float [price]: the price at which the order is to be
|
|
1334
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
1225
1335
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1226
|
-
:param float [params.
|
|
1336
|
+
:param float [params.triggerPrice]: The price at which a stop order is triggered at
|
|
1227
1337
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1228
1338
|
"""
|
|
1229
1339
|
self.check_required_dependencies()
|
|
@@ -1234,12 +1344,13 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1234
1344
|
amountAsset = self.get_asset_id(market['baseId'])
|
|
1235
1345
|
priceAsset = self.get_asset_id(market['quoteId'])
|
|
1236
1346
|
isMarketOrder = (type == 'market')
|
|
1237
|
-
|
|
1238
|
-
isStopOrder = (
|
|
1347
|
+
triggerPrice = self.safe_float_2(params, 'triggerPrice', 'stopPrice')
|
|
1348
|
+
isStopOrder = (triggerPrice is not None)
|
|
1239
1349
|
if (isMarketOrder) and (price is None):
|
|
1240
1350
|
raise InvalidOrder(self.id + ' createOrder() requires a price argument for ' + type + ' orders to determine the max price for buy and the min price for sell')
|
|
1241
1351
|
timestamp = self.milliseconds()
|
|
1242
|
-
defaultExpiryDelta =
|
|
1352
|
+
defaultExpiryDelta = None
|
|
1353
|
+
defaultExpiryDelta, params = self.handle_option_and_params(params, 'createOrder', 'defaultExpiry', self.safe_integer(self.options, 'createOrderDefaultExpiry', 2419200000))
|
|
1243
1354
|
expiration = self.sum(timestamp, defaultExpiryDelta)
|
|
1244
1355
|
matcherFees = await self.get_fees_for_asset(symbol, side, amount, price)
|
|
1245
1356
|
# {
|
|
@@ -1330,7 +1441,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1330
1441
|
'c': {
|
|
1331
1442
|
't': 'sp',
|
|
1332
1443
|
'v': {
|
|
1333
|
-
'p': self.to_real_symbol_price(symbol,
|
|
1444
|
+
'p': self.to_real_symbol_price(symbol, triggerPrice),
|
|
1334
1445
|
},
|
|
1335
1446
|
},
|
|
1336
1447
|
}
|
|
@@ -1374,17 +1485,20 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1374
1485
|
# }
|
|
1375
1486
|
#
|
|
1376
1487
|
if isMarketOrder:
|
|
1377
|
-
response = await self.matcherPostMatcherOrderbookMarket(body)
|
|
1488
|
+
response = await self.matcherPostMatcherOrderbookMarket(self.extend(body, params))
|
|
1378
1489
|
value = self.safe_dict(response, 'message')
|
|
1379
1490
|
return self.parse_order(value, market)
|
|
1380
1491
|
else:
|
|
1381
|
-
response = await self.matcherPostMatcherOrderbook(body)
|
|
1492
|
+
response = await self.matcherPostMatcherOrderbook(self.extend(body, params))
|
|
1382
1493
|
value = self.safe_dict(response, 'message')
|
|
1383
1494
|
return self.parse_order(value, market)
|
|
1384
1495
|
|
|
1385
1496
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
1386
1497
|
"""
|
|
1387
1498
|
cancels an open order
|
|
1499
|
+
|
|
1500
|
+
https://matcher.waves.exchange/api-docs/index.html#/cancel/cancelOrdersByIdsWithKeyOrSignature
|
|
1501
|
+
|
|
1388
1502
|
:param str id: order id
|
|
1389
1503
|
:param str symbol: unified symbol of the market the order was made in
|
|
1390
1504
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1431,6 +1545,10 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1431
1545
|
async def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1432
1546
|
"""
|
|
1433
1547
|
fetches information on an order made by the user
|
|
1548
|
+
|
|
1549
|
+
https://matcher.waves.exchange/api-docs/index.html#/status/getOrderStatusByPKAndIdWithSig
|
|
1550
|
+
|
|
1551
|
+
:param str id: order id
|
|
1434
1552
|
:param str symbol: unified symbol of the market the order was made in
|
|
1435
1553
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1436
1554
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1697,7 +1815,6 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1697
1815
|
'postOnly': None,
|
|
1698
1816
|
'side': side,
|
|
1699
1817
|
'price': price,
|
|
1700
|
-
'stopPrice': triggerPrice,
|
|
1701
1818
|
'triggerPrice': triggerPrice,
|
|
1702
1819
|
'amount': amount,
|
|
1703
1820
|
'cost': None,
|
|
@@ -1861,6 +1978,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1861
1978
|
async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1862
1979
|
"""
|
|
1863
1980
|
fetch all trades made by the user
|
|
1981
|
+
|
|
1982
|
+
https://api.wavesplatform.com/v0/docs/#/transactions/searchTxsExchange
|
|
1983
|
+
|
|
1864
1984
|
:param str symbol: unified market symbol
|
|
1865
1985
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
1866
1986
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -1950,6 +2070,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1950
2070
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
1951
2071
|
"""
|
|
1952
2072
|
get the list of most recent trades for a particular symbol
|
|
2073
|
+
|
|
2074
|
+
https://api.wavesplatform.com/v0/docs/#/transactions/searchTxsExchange
|
|
2075
|
+
|
|
1953
2076
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
1954
2077
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
1955
2078
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -2092,11 +2215,21 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
2092
2215
|
order1 = self.safe_value(data, 'order1')
|
|
2093
2216
|
order2 = self.safe_value(data, 'order2')
|
|
2094
2217
|
order = None
|
|
2095
|
-
#
|
|
2218
|
+
# at first, detect if response is from `fetch_my_trades`
|
|
2096
2219
|
if self.safe_string(order1, 'senderPublicKey') == self.apiKey:
|
|
2097
2220
|
order = order1
|
|
2098
|
-
|
|
2221
|
+
elif self.safe_string(order2, 'senderPublicKey') == self.apiKey:
|
|
2099
2222
|
order = order2
|
|
2223
|
+
else:
|
|
2224
|
+
# response is from `fetch_trades`, so find only taker order
|
|
2225
|
+
date1 = self.safe_string(order1, 'timestamp')
|
|
2226
|
+
date2 = self.safe_string(order2, 'timestamp')
|
|
2227
|
+
ts1 = self.parse8601(date1)
|
|
2228
|
+
ts2 = self.parse8601(date2)
|
|
2229
|
+
if ts1 > ts2:
|
|
2230
|
+
order = order1
|
|
2231
|
+
else:
|
|
2232
|
+
order = order2
|
|
2100
2233
|
symbol = None
|
|
2101
2234
|
assetPair = self.safe_value(order, 'assetPair')
|
|
2102
2235
|
if assetPair is not None:
|
|
@@ -2191,8 +2324,10 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
2191
2324
|
async def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
|
|
2192
2325
|
"""
|
|
2193
2326
|
fetch deposit and withdraw fees
|
|
2194
|
-
|
|
2195
|
-
|
|
2327
|
+
|
|
2328
|
+
https://docs.wx.network/en/api/gateways/deposit/currencies
|
|
2329
|
+
https://docs.wx.network/en/api/gateways/withdraw/currencies
|
|
2330
|
+
|
|
2196
2331
|
:param str[]|None codes: list of unified currency codes
|
|
2197
2332
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2198
2333
|
:returns dict: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -2278,7 +2413,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
2278
2413
|
raise ExchangeError(self.id + ' ' + body)
|
|
2279
2414
|
return None
|
|
2280
2415
|
|
|
2281
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
2416
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
2282
2417
|
"""
|
|
2283
2418
|
make a withdrawal
|
|
2284
2419
|
:param str code: unified currency code
|