ccxt-ir 4.3.46.0.3__py2.py3-none-any.whl → 4.5.0__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +39 -35
- ccxt/abantether.py +8 -8
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/apex.py +31 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +106 -48
- ccxt/abstract/binancecoinm.py +106 -48
- ccxt/abstract/binanceus.py +141 -83
- ccxt/abstract/binanceusdm.py +106 -48
- ccxt/abstract/bingx.py +50 -1
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +67 -0
- ccxt/abstract/bitmart.py +19 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitrue.py +68 -68
- ccxt/abstract/bitstamp.py +1 -0
- ccxt/abstract/blofin.py +30 -0
- ccxt/abstract/btcbox.py +2 -0
- ccxt/abstract/bybit.py +28 -13
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbaseexchange.py +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/cryptocom.py +16 -0
- ccxt/abstract/cryptomus.py +20 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/derive.py +117 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/foxbit.py +26 -0
- ccxt/abstract/gate.py +19 -0
- ccxt/abstract/gateio.py +19 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +1 -0
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +10 -0
- ccxt/abstract/kucoinfutures.py +18 -0
- ccxt/abstract/lbank.py +2 -1
- ccxt/abstract/luno.py +1 -0
- ccxt/abstract/mexc.py +2 -0
- ccxt/abstract/modetrade.py +119 -0
- ccxt/abstract/myokx.py +349 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +25 -0
- ccxt/abstract/okxus.py +349 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/paradex.py +23 -0
- ccxt/abstract/phemex.py +2 -0
- ccxt/abstract/poloniex.py +36 -0
- ccxt/abstract/tradeogre.py +3 -1
- ccxt/abstract/upbit.py +51 -34
- ccxt/abstract/whitebit.py +16 -0
- ccxt/abstract/woo.py +64 -6
- ccxt/abstract/xt.py +10 -5
- ccxt/afratether.py +7 -7
- ccxt/alpaca.py +828 -51
- ccxt/apex.py +1875 -0
- ccxt/arzinja.py +7 -7
- ccxt/arzplus.py +9 -9
- ccxt/ascendex.py +501 -306
- ccxt/async_support/__init__.py +39 -35
- ccxt/async_support/abantether.py +8 -8
- ccxt/async_support/afratether.py +9 -9
- ccxt/async_support/alpaca.py +828 -51
- ccxt/async_support/apex.py +1875 -0
- ccxt/async_support/arzinja.py +10 -10
- ccxt/async_support/arzplus.py +12 -12
- ccxt/async_support/ascendex.py +502 -306
- ccxt/async_support/base/exchange.py +303 -89
- ccxt/async_support/base/ws/cache.py +9 -3
- ccxt/async_support/base/ws/client.py +173 -38
- ccxt/async_support/base/ws/future.py +25 -37
- ccxt/async_support/bequant.py +5 -3
- ccxt/async_support/bigone.py +279 -144
- ccxt/async_support/binance.py +2347 -1158
- ccxt/async_support/binancecoinm.py +9 -3
- ccxt/async_support/binanceus.py +17 -3
- ccxt/async_support/binanceusdm.py +9 -4
- ccxt/async_support/bingx.py +2962 -920
- ccxt/async_support/bit2c.py +147 -27
- ccxt/async_support/bitbank.py +151 -23
- ccxt/async_support/bitbns.py +104 -30
- ccxt/async_support/bitfinex.py +3291 -1113
- ccxt/async_support/bitflyer.py +202 -27
- ccxt/async_support/bitget.py +3683 -1538
- ccxt/async_support/bithumb.py +195 -38
- ccxt/async_support/bitimen.py +12 -12
- ccxt/async_support/bitir.py +38 -38
- ccxt/async_support/bitmart.py +1288 -350
- ccxt/async_support/bitmex.py +260 -75
- ccxt/async_support/bitopro.py +262 -62
- ccxt/async_support/bitpin.py +17 -16
- ccxt/async_support/bitrue.py +459 -290
- ccxt/async_support/bitso.py +199 -54
- ccxt/async_support/bitstamp.py +230 -96
- ccxt/async_support/bitteam.py +167 -25
- ccxt/async_support/{huobijp.py → bittrade.py} +158 -30
- ccxt/async_support/bitvavo.py +213 -49
- ccxt/async_support/blockchaincom.py +160 -46
- ccxt/async_support/blofin.py +502 -120
- ccxt/async_support/btcalpha.py +169 -31
- ccxt/async_support/btcbox.py +292 -23
- ccxt/async_support/btcmarkets.py +211 -58
- ccxt/async_support/btcturk.py +161 -38
- ccxt/async_support/bybit.py +1775 -1030
- ccxt/async_support/cex.py +1440 -1303
- ccxt/async_support/coinbase.py +724 -212
- ccxt/async_support/coinbaseadvanced.py +2 -1
- ccxt/async_support/coinbaseexchange.py +388 -89
- ccxt/async_support/coinbaseinternational.py +412 -57
- ccxt/async_support/coincatch.py +177 -78
- ccxt/async_support/coincheck.py +135 -19
- ccxt/async_support/coinex.py +606 -232
- ccxt/async_support/coinmate.py +189 -63
- ccxt/async_support/coinmetro.py +195 -54
- ccxt/async_support/coinone.py +158 -51
- ccxt/async_support/coinsph.py +336 -61
- ccxt/async_support/coinspot.py +151 -52
- ccxt/async_support/cryptocom.py +661 -111
- ccxt/async_support/cryptomus.py +1137 -0
- ccxt/async_support/defx.py +2071 -0
- ccxt/async_support/delta.py +299 -99
- ccxt/async_support/deribit.py +348 -126
- ccxt/async_support/derive.py +2572 -0
- ccxt/async_support/digifinex.py +430 -214
- ccxt/async_support/ellipx.py +2029 -0
- ccxt/async_support/eterex.py +10 -10
- ccxt/async_support/excoino.py +31 -31
- ccxt/async_support/exir.py +14 -14
- ccxt/async_support/exmo.py +344 -131
- ccxt/async_support/exnovin.py +10 -10
- ccxt/async_support/farhadexchange.py +12 -12
- ccxt/async_support/fmfwio.py +2 -1
- ccxt/async_support/foxbit.py +1935 -0
- ccxt/async_support/gate.py +1351 -529
- ccxt/async_support/gateio.py +2 -1
- ccxt/async_support/gemini.py +144 -39
- ccxt/async_support/hashkey.py +152 -109
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/hitbtc.py +395 -167
- ccxt/async_support/hitobit.py +12 -12
- ccxt/async_support/hollaex.py +307 -119
- ccxt/async_support/htx.py +851 -383
- ccxt/async_support/huobi.py +2 -1
- ccxt/async_support/hyperliquid.py +1848 -536
- ccxt/async_support/independentreserve.py +288 -15
- ccxt/async_support/indodax.py +190 -33
- ccxt/async_support/jibitex.py +12 -12
- ccxt/async_support/kraken.py +795 -351
- ccxt/async_support/krakenfutures.py +214 -62
- ccxt/async_support/kucoin.py +715 -396
- ccxt/async_support/kucoinfutures.py +652 -89
- ccxt/async_support/latoken.py +217 -113
- ccxt/async_support/lbank.py +425 -97
- ccxt/async_support/luno.py +382 -35
- ccxt/async_support/mercado.py +113 -6
- ccxt/async_support/mexc.py +874 -437
- ccxt/async_support/modetrade.py +2818 -0
- ccxt/async_support/myokx.py +54 -0
- ccxt/async_support/ndax.py +221 -64
- ccxt/async_support/nobitex.py +31 -37
- ccxt/async_support/novadax.py +190 -34
- ccxt/async_support/oceanex.py +217 -28
- ccxt/async_support/okcoin.py +253 -145
- ccxt/async_support/okexchange.py +11 -11
- ccxt/async_support/okx.py +1088 -351
- ccxt/async_support/okxus.py +54 -0
- ccxt/async_support/ompfinex.py +25 -24
- ccxt/async_support/onetrading.py +213 -392
- ccxt/async_support/oxfun.py +245 -166
- ccxt/async_support/p2b.py +151 -29
- ccxt/async_support/paradex.py +562 -49
- ccxt/async_support/paymium.py +82 -19
- ccxt/async_support/phemex.py +713 -172
- ccxt/async_support/poloniex.py +1602 -283
- ccxt/async_support/probit.py +224 -95
- ccxt/async_support/ramzinex.py +30 -27
- ccxt/async_support/sarmayex.py +9 -9
- ccxt/async_support/sarrafex.py +13 -13
- ccxt/async_support/tabdeal.py +14 -13
- ccxt/async_support/tetherland.py +9 -9
- ccxt/async_support/timex.py +210 -51
- ccxt/async_support/tokocrypto.py +167 -47
- ccxt/async_support/tradeogre.py +266 -31
- ccxt/async_support/twox.py +9 -9
- ccxt/async_support/ubitex.py +12 -12
- ccxt/async_support/upbit.py +568 -165
- ccxt/async_support/vertex.py +160 -32
- ccxt/async_support/wallex.py +12 -12
- ccxt/async_support/wavesexchange.py +165 -30
- ccxt/async_support/whitebit.py +975 -127
- ccxt/async_support/woo.py +1918 -1016
- ccxt/async_support/woofipro.py +433 -141
- ccxt/async_support/xt.py +649 -193
- ccxt/async_support/yobit.py +195 -70
- ccxt/async_support/zaif.py +91 -15
- ccxt/async_support/zonda.py +151 -36
- ccxt/base/decimal_to_precision.py +14 -10
- ccxt/base/errors.py +49 -18
- ccxt/base/exchange.py +1556 -450
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +114 -6
- ccxt/bequant.py +5 -3
- ccxt/bigone.py +279 -144
- ccxt/binance.py +2347 -1158
- ccxt/binancecoinm.py +9 -3
- ccxt/binanceus.py +17 -3
- ccxt/binanceusdm.py +9 -4
- ccxt/bingx.py +2962 -920
- ccxt/bit2c.py +147 -27
- ccxt/bitbank.py +151 -23
- ccxt/bitbns.py +104 -30
- ccxt/bitfinex.py +3290 -1113
- ccxt/bitflyer.py +202 -27
- ccxt/bitget.py +3683 -1538
- ccxt/bithumb.py +194 -38
- ccxt/bitimen.py +9 -9
- ccxt/bitir.py +35 -35
- ccxt/bitmart.py +1288 -350
- ccxt/bitmex.py +260 -75
- ccxt/bitopro.py +262 -62
- ccxt/bitpin.py +15 -14
- ccxt/bitrue.py +459 -290
- ccxt/bitso.py +199 -54
- ccxt/bitstamp.py +230 -96
- ccxt/bitteam.py +167 -25
- ccxt/{huobijp.py → bittrade.py} +158 -30
- ccxt/bitvavo.py +213 -49
- ccxt/blockchaincom.py +160 -46
- ccxt/blofin.py +502 -120
- ccxt/btcalpha.py +169 -31
- ccxt/btcbox.py +291 -23
- ccxt/btcmarkets.py +211 -58
- ccxt/btcturk.py +161 -38
- ccxt/bybit.py +1775 -1030
- ccxt/cex.py +1439 -1303
- ccxt/coinbase.py +724 -212
- ccxt/coinbaseadvanced.py +2 -1
- ccxt/coinbaseexchange.py +388 -89
- ccxt/coinbaseinternational.py +412 -57
- ccxt/coincatch.py +177 -78
- ccxt/coincheck.py +135 -19
- ccxt/coinex.py +606 -232
- ccxt/coinmate.py +189 -63
- ccxt/coinmetro.py +194 -54
- ccxt/coinone.py +158 -51
- ccxt/coinsph.py +336 -61
- ccxt/coinspot.py +151 -52
- ccxt/cryptocom.py +661 -111
- ccxt/cryptomus.py +1137 -0
- ccxt/defx.py +2070 -0
- ccxt/delta.py +299 -99
- ccxt/deribit.py +348 -126
- ccxt/derive.py +2571 -0
- ccxt/digifinex.py +430 -214
- ccxt/ellipx.py +2029 -0
- ccxt/eterex.py +7 -7
- ccxt/excoino.py +29 -29
- ccxt/exir.py +11 -11
- ccxt/exmo.py +343 -131
- ccxt/exnovin.py +8 -8
- ccxt/farhadexchange.py +10 -10
- ccxt/fmfwio.py +2 -1
- ccxt/foxbit.py +1935 -0
- ccxt/gate.py +1351 -529
- ccxt/gateio.py +2 -1
- ccxt/gemini.py +144 -39
- ccxt/hashkey.py +152 -109
- ccxt/hibachi.py +2079 -0
- ccxt/hitbtc.py +395 -167
- ccxt/hitobit.py +9 -9
- ccxt/hollaex.py +307 -119
- ccxt/htx.py +851 -383
- ccxt/huobi.py +2 -1
- ccxt/hyperliquid.py +1848 -536
- ccxt/independentreserve.py +287 -15
- ccxt/indodax.py +190 -33
- ccxt/jibitex.py +9 -9
- ccxt/kraken.py +794 -351
- ccxt/krakenfutures.py +214 -62
- ccxt/kucoin.py +715 -396
- ccxt/kucoinfutures.py +652 -89
- ccxt/latoken.py +217 -113
- ccxt/lbank.py +425 -97
- ccxt/luno.py +382 -35
- ccxt/mercado.py +113 -6
- ccxt/mexc.py +873 -437
- ccxt/modetrade.py +2818 -0
- ccxt/myokx.py +54 -0
- ccxt/ndax.py +221 -64
- ccxt/nobitex.py +29 -35
- ccxt/novadax.py +190 -34
- ccxt/oceanex.py +217 -28
- ccxt/okcoin.py +253 -145
- ccxt/okexchange.py +9 -9
- ccxt/okx.py +1088 -351
- ccxt/okxus.py +54 -0
- ccxt/ompfinex.py +22 -21
- ccxt/onetrading.py +213 -392
- ccxt/oxfun.py +245 -166
- ccxt/p2b.py +151 -29
- ccxt/paradex.py +562 -49
- ccxt/paymium.py +82 -19
- ccxt/phemex.py +712 -172
- ccxt/poloniex.py +1601 -283
- ccxt/pro/__init__.py +76 -17
- ccxt/pro/alpaca.py +21 -6
- ccxt/pro/apex.py +984 -0
- ccxt/pro/ascendex.py +58 -10
- ccxt/pro/bequant.py +6 -1
- ccxt/pro/binance.py +728 -156
- ccxt/pro/binancecoinm.py +6 -2
- ccxt/pro/binanceus.py +8 -4
- ccxt/pro/binanceusdm.py +7 -2
- ccxt/pro/bingx.py +333 -142
- ccxt/pro/bitfinex.py +727 -262
- ccxt/pro/bitget.py +570 -79
- ccxt/pro/bithumb.py +20 -6
- ccxt/pro/bitmart.py +216 -87
- ccxt/pro/bitmex.py +47 -9
- ccxt/pro/bitopro.py +26 -14
- ccxt/pro/bitrue.py +22 -22
- ccxt/pro/bitstamp.py +54 -21
- ccxt/pro/{huobijp.py → bittrade.py} +7 -6
- ccxt/pro/bitvavo.py +191 -67
- ccxt/pro/blockchaincom.py +21 -8
- ccxt/pro/blofin.py +9 -1
- ccxt/pro/bybit.py +632 -245
- ccxt/pro/cex.py +59 -24
- ccxt/pro/coinbase.py +102 -73
- ccxt/pro/coinbaseadvanced.py +2 -1
- ccxt/pro/coinbaseexchange.py +8 -8
- ccxt/pro/coinbaseinternational.py +181 -25
- ccxt/pro/coincatch.py +6 -7
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +967 -665
- ccxt/pro/coinone.py +16 -9
- ccxt/pro/cryptocom.py +448 -45
- ccxt/pro/defx.py +831 -0
- ccxt/pro/deribit.py +150 -14
- ccxt/pro/derive.py +704 -0
- ccxt/pro/exmo.py +239 -6
- ccxt/pro/gate.py +623 -65
- ccxt/pro/gateio.py +2 -1
- ccxt/pro/gemini.py +27 -11
- ccxt/pro/hashkey.py +2 -2
- ccxt/pro/hitbtc.py +196 -91
- ccxt/pro/hollaex.py +23 -7
- ccxt/pro/htx.py +51 -14
- ccxt/pro/huobi.py +2 -1
- ccxt/pro/hyperliquid.py +591 -27
- ccxt/pro/independentreserve.py +9 -6
- ccxt/pro/kraken.py +640 -320
- ccxt/pro/krakenfutures.py +62 -35
- ccxt/pro/kucoin.py +267 -46
- ccxt/pro/kucoinfutures.py +165 -21
- ccxt/pro/lbank.py +102 -21
- ccxt/pro/luno.py +12 -8
- ccxt/pro/mexc.py +877 -111
- ccxt/pro/modetrade.py +1271 -0
- ccxt/pro/myokx.py +38 -0
- ccxt/pro/ndax.py +15 -2
- ccxt/pro/okcoin.py +23 -4
- ccxt/pro/okx.py +573 -98
- ccxt/pro/okxus.py +38 -0
- ccxt/pro/onetrading.py +30 -13
- ccxt/pro/oxfun.py +131 -27
- ccxt/pro/p2b.py +88 -22
- ccxt/pro/paradex.py +3 -3
- ccxt/pro/phemex.py +75 -21
- ccxt/pro/poloniex.py +124 -41
- ccxt/pro/probit.py +87 -80
- ccxt/pro/tradeogre.py +272 -0
- ccxt/pro/upbit.py +152 -12
- ccxt/pro/vertex.py +8 -3
- ccxt/pro/whitebit.py +58 -5
- ccxt/pro/woo.py +228 -37
- ccxt/pro/woofipro.py +106 -18
- ccxt/pro/xt.py +111 -5
- ccxt/probit.py +224 -95
- ccxt/protobuf/__init__.py +0 -0
- ccxt/protobuf/mexc/PrivateAccountV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateDealsV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PrivateOrdersV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicAggreDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicAggreDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicBookTickerBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicBookTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicDealsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsBatchV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicIncreaseDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicLimitDepthsV3Api_pb2.py +39 -0
- ccxt/protobuf/mexc/PublicMiniTickerV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PublicMiniTickersV3Api_pb2.py +38 -0
- ccxt/protobuf/mexc/PublicSpotKlineV3Api_pb2.py +37 -0
- ccxt/protobuf/mexc/PushDataV3ApiWrapper_pb2.py +52 -0
- ccxt/protobuf/mexc/__init__.py +0 -0
- ccxt/ramzinex.py +28 -25
- ccxt/sarmayex.py +7 -7
- ccxt/sarrafex.py +10 -10
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/tabdeal.py +12 -11
- ccxt/test/tests_async.py +261 -57
- ccxt/test/tests_helpers.py +1 -3
- ccxt/test/tests_init.py +4 -3
- ccxt/test/tests_sync.py +261 -57
- ccxt/tetherland.py +7 -7
- ccxt/timex.py +210 -51
- ccxt/tokocrypto.py +167 -47
- ccxt/tradeogre.py +266 -31
- ccxt/twox.py +7 -7
- ccxt/ubitex.py +9 -9
- ccxt/upbit.py +568 -165
- ccxt/vertex.py +160 -32
- ccxt/wallex.py +9 -9
- ccxt/wavesexchange.py +165 -30
- ccxt/whitebit.py +975 -127
- ccxt/woo.py +1917 -1016
- ccxt/woofipro.py +432 -141
- ccxt/xt.py +649 -193
- ccxt/yobit.py +194 -70
- ccxt/zaif.py +91 -15
- ccxt/zonda.py +151 -36
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/METADATA +225 -73
- ccxt_ir-4.5.0.dist-info/RECORD +743 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/WHEEL +1 -1
- ccxt/__test__.py +0 -7
- ccxt/abstract/ace.py +0 -15
- ccxt/abstract/bitbay.py +0 -53
- ccxt/abstract/bitcoincom.py +0 -115
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/bitpanda.py +0 -35
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/coinlist.py +0 -54
- ccxt/abstract/currencycom.py +0 -68
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/abstract/idex.py +0 -26
- ccxt/abstract/kuna.py +0 -182
- ccxt/abstract/lykke.py +0 -29
- ccxt/abstract/poloniexfutures.py +0 -48
- ccxt/abstract/wazirx.py +0 -30
- ccxt/ace.py +0 -1012
- ccxt/async_support/ace.py +0 -1012
- ccxt/async_support/base/ws/aiohttp_client.py +0 -125
- ccxt/async_support/base/ws/fast_client.py +0 -96
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitcoincom.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3552
- ccxt/async_support/bitpanda.py +0 -16
- ccxt/async_support/bl3p.py +0 -485
- ccxt/async_support/coinlist.py +0 -2243
- ccxt/async_support/currencycom.py +0 -1950
- ccxt/async_support/hitbtc3.py +0 -16
- ccxt/async_support/idex.py +0 -1766
- ccxt/async_support/kuna.py +0 -1841
- ccxt/async_support/lykke.py +0 -1270
- ccxt/async_support/poloniexfutures.py +0 -1717
- ccxt/async_support/wazirx.py +0 -1224
- ccxt/bitbay.py +0 -17
- ccxt/bitcoincom.py +0 -17
- ccxt/bitfinex2.py +0 -3552
- ccxt/bitpanda.py +0 -16
- ccxt/bl3p.py +0 -485
- ccxt/coinlist.py +0 -2243
- ccxt/currencycom.py +0 -1950
- ccxt/hitbtc3.py +0 -16
- ccxt/idex.py +0 -1766
- ccxt/kuna.py +0 -1841
- ccxt/lykke.py +0 -1270
- ccxt/poloniexfutures.py +0 -1717
- ccxt/pro/bitcoincom.py +0 -34
- ccxt/pro/bitfinex2.py +0 -1083
- ccxt/pro/bitpanda.py +0 -15
- ccxt/pro/currencycom.py +0 -536
- ccxt/pro/idex.py +0 -672
- ccxt/pro/poloniexfutures.py +0 -990
- ccxt/pro/wazirx.py +0 -749
- ccxt/test/base/__init__.py +0 -29
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -109
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -31
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_liquidation.py +0 -50
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -193
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -33
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -69
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -353
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -92
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- ccxt/test/test_async.py +0 -1649
- ccxt/test/test_sync.py +0 -1648
- ccxt/wazirx.py +0 -1224
- ccxt_ir-4.3.46.0.3.dist-info/RECORD +0 -773
- /ccxt/abstract/{huobijp.py → bittrade.py} +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info/licenses}/LICENSE.txt +0 -0
- {ccxt_ir-4.3.46.0.3.dist-info → ccxt_ir-4.5.0.dist-info}/top_level.txt +0 -0
ccxt/wavesexchange.py
CHANGED
|
@@ -6,9 +6,8 @@
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.wavesexchange import ImplicitAPI
|
|
8
8
|
import json
|
|
9
|
-
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
|
9
|
+
from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
|
10
10
|
from typing import List
|
|
11
|
-
from typing import Any
|
|
12
11
|
from ccxt.base.errors import ExchangeError
|
|
13
12
|
from ccxt.base.errors import AuthenticationError
|
|
14
13
|
from ccxt.base.errors import AccountSuspended
|
|
@@ -26,7 +25,7 @@ from ccxt.base.precise import Precise
|
|
|
26
25
|
|
|
27
26
|
class wavesexchange(Exchange, ImplicitAPI):
|
|
28
27
|
|
|
29
|
-
def describe(self):
|
|
28
|
+
def describe(self) -> Any:
|
|
30
29
|
return self.deep_extend(super(wavesexchange, self).describe(), {
|
|
31
30
|
'id': 'wavesexchange',
|
|
32
31
|
'name': 'Waves.Exchange',
|
|
@@ -58,6 +57,8 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
58
57
|
'fetchCrossBorrowRate': False,
|
|
59
58
|
'fetchCrossBorrowRates': False,
|
|
60
59
|
'fetchDepositAddress': True,
|
|
60
|
+
'fetchDepositAddresses': None,
|
|
61
|
+
'fetchDepositAddressesByNetwork': None,
|
|
61
62
|
'fetchDepositWithdrawFee': 'emulated',
|
|
62
63
|
'fetchDepositWithdrawFees': True,
|
|
63
64
|
'fetchFundingHistory': False,
|
|
@@ -135,7 +136,13 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
135
136
|
'forward': 'https://wx.network/api/v1/forward/matcher',
|
|
136
137
|
'market': 'https://wx.network/api/v1/forward/marketdata/api/v1',
|
|
137
138
|
},
|
|
138
|
-
'doc':
|
|
139
|
+
'doc': [
|
|
140
|
+
'https://docs.wx.network',
|
|
141
|
+
'https://docs.waves.tech',
|
|
142
|
+
'https://api.wavesplatform.com/v0/docs/',
|
|
143
|
+
'https://nodes.wavesnodes.com/api-docs/index.html',
|
|
144
|
+
'https://matcher.waves.exchange/api-docs/index.html',
|
|
145
|
+
],
|
|
139
146
|
'www': 'https://wx.network',
|
|
140
147
|
},
|
|
141
148
|
'api': {
|
|
@@ -349,6 +356,84 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
349
356
|
'BEP20': 'BSC',
|
|
350
357
|
},
|
|
351
358
|
},
|
|
359
|
+
'features': {
|
|
360
|
+
'spot': {
|
|
361
|
+
'sandbox': True,
|
|
362
|
+
'createOrder': {
|
|
363
|
+
'marginMode': False,
|
|
364
|
+
'triggerPrice': True, # todo
|
|
365
|
+
'triggerDirection': False,
|
|
366
|
+
'triggerPriceType': None,
|
|
367
|
+
'stopLossPrice': False, # todo
|
|
368
|
+
'takeProfitPrice': False, # todo
|
|
369
|
+
'attachedStopLossTakeProfit': None,
|
|
370
|
+
'timeInForce': {
|
|
371
|
+
'IOC': False,
|
|
372
|
+
'FOK': False,
|
|
373
|
+
'PO': False,
|
|
374
|
+
'GTD': True, # todo
|
|
375
|
+
},
|
|
376
|
+
'hedged': False,
|
|
377
|
+
'trailing': False,
|
|
378
|
+
'leverage': False,
|
|
379
|
+
'marketBuyByCost': False, # todo
|
|
380
|
+
'marketBuyRequiresPrice': True,
|
|
381
|
+
'selfTradePrevention': False,
|
|
382
|
+
'iceberg': False,
|
|
383
|
+
},
|
|
384
|
+
'createOrders': None,
|
|
385
|
+
'fetchMyTrades': {
|
|
386
|
+
'marginMode': False,
|
|
387
|
+
'limit': 100, # todo
|
|
388
|
+
'daysBack': 100000, # todo
|
|
389
|
+
'untilDays': 100000, # todo
|
|
390
|
+
'symbolRequired': False,
|
|
391
|
+
},
|
|
392
|
+
'fetchOrder': {
|
|
393
|
+
'marginMode': False,
|
|
394
|
+
'trigger': False,
|
|
395
|
+
'trailing': False,
|
|
396
|
+
'symbolRequired': False,
|
|
397
|
+
},
|
|
398
|
+
'fetchOpenOrders': {
|
|
399
|
+
'marginMode': False,
|
|
400
|
+
'limit': 100, # todo
|
|
401
|
+
'trigger': False,
|
|
402
|
+
'trailing': False,
|
|
403
|
+
'symbolRequired': False,
|
|
404
|
+
},
|
|
405
|
+
'fetchOrders': {
|
|
406
|
+
'marginMode': False,
|
|
407
|
+
'limit': 100, # todo
|
|
408
|
+
'daysBack': None,
|
|
409
|
+
'untilDays': None,
|
|
410
|
+
'trigger': False,
|
|
411
|
+
'trailing': False,
|
|
412
|
+
'symbolRequired': True,
|
|
413
|
+
}, # todo
|
|
414
|
+
'fetchClosedOrders': {
|
|
415
|
+
'marginMode': False,
|
|
416
|
+
'limit': 100,
|
|
417
|
+
'daysBack': 100000, # todo
|
|
418
|
+
'daysBackCanceled': 1, # todo
|
|
419
|
+
'untilDays': 100000, # todo
|
|
420
|
+
'trigger': False,
|
|
421
|
+
'trailing': False,
|
|
422
|
+
'symbolRequired': False,
|
|
423
|
+
},
|
|
424
|
+
'fetchOHLCV': {
|
|
425
|
+
'limit': None, # todo
|
|
426
|
+
},
|
|
427
|
+
},
|
|
428
|
+
'swap': {
|
|
429
|
+
'linear': None,
|
|
430
|
+
'inverse': None,
|
|
431
|
+
},
|
|
432
|
+
'future': {
|
|
433
|
+
'linear': None,
|
|
434
|
+
'inverse': None,
|
|
435
|
+
},
|
|
436
|
+
},
|
|
352
437
|
'commonCurrencies': {
|
|
353
438
|
'EGG': 'Waves Ducks',
|
|
354
439
|
},
|
|
@@ -599,6 +684,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
599
684
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
600
685
|
"""
|
|
601
686
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
687
|
+
|
|
688
|
+
https://matcher.waves.exchange/api-docs/index.html#/markets/getOrderBook
|
|
689
|
+
|
|
602
690
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
603
691
|
:param int [limit]: the maximum amount of order book entries to return
|
|
604
692
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -670,6 +758,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
670
758
|
raise AuthenticationError(self.id + ' apiKey must be a base58 encoded public key')
|
|
671
759
|
if len(hexSecretKeyBytes) != 64:
|
|
672
760
|
raise AuthenticationError(self.id + ' secret must be a base58 encoded private key')
|
|
761
|
+
return True
|
|
673
762
|
|
|
674
763
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
|
675
764
|
query = self.omit(params, self.extract_params(path))
|
|
@@ -719,6 +808,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
719
808
|
def sign_in(self, params={}):
|
|
720
809
|
"""
|
|
721
810
|
sign in, must be called prior to using other authenticated methods
|
|
811
|
+
|
|
812
|
+
https://docs.wx.network/en/api/auth/oauth2-token
|
|
813
|
+
|
|
722
814
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
723
815
|
:returns: response from exchange
|
|
724
816
|
"""
|
|
@@ -829,6 +921,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
829
921
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
830
922
|
"""
|
|
831
923
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
924
|
+
|
|
925
|
+
https://api.wavesplatform.com/v0/docs/#/pairs/getPairsListAll
|
|
926
|
+
|
|
832
927
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
833
928
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
834
929
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -870,7 +965,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
870
965
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
871
966
|
"""
|
|
872
967
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
873
|
-
:param str[]
|
|
968
|
+
:param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
874
969
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
875
970
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
876
971
|
"""
|
|
@@ -909,11 +1004,15 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
909
1004
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
910
1005
|
"""
|
|
911
1006
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
1007
|
+
|
|
1008
|
+
https://api.wavesplatform.com/v0/docs/#/candles/getCandles
|
|
1009
|
+
|
|
912
1010
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
913
1011
|
:param str timeframe: the length of time each candle represents
|
|
914
1012
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
915
1013
|
:param int [limit]: the maximum amount of candles to fetch
|
|
916
1014
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1015
|
+
:param int [params.until]: timestamp in ms of the latest candle to fetch
|
|
917
1016
|
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
|
918
1017
|
"""
|
|
919
1018
|
self.load_markets()
|
|
@@ -924,19 +1023,29 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
924
1023
|
'interval': self.safe_string(self.timeframes, timeframe, timeframe),
|
|
925
1024
|
}
|
|
926
1025
|
allowedCandles = self.safe_integer(self.options, 'allowedCandles', 1440)
|
|
1026
|
+
until = self.safe_integer(params, 'until')
|
|
1027
|
+
untilIsDefined = until is not None
|
|
927
1028
|
if limit is None:
|
|
928
1029
|
limit = allowedCandles
|
|
929
1030
|
limit = min(allowedCandles, limit)
|
|
930
1031
|
duration = self.parse_timeframe(timeframe) * 1000
|
|
931
1032
|
if since is None:
|
|
932
|
-
|
|
1033
|
+
now = self.milliseconds()
|
|
1034
|
+
timeEnd = until if untilIsDefined else now
|
|
1035
|
+
durationRoundedTimestamp = self.parse_to_int(timeEnd / duration) * duration
|
|
933
1036
|
delta = (limit - 1) * duration
|
|
934
1037
|
timeStart = durationRoundedTimestamp - delta
|
|
935
1038
|
request['timeStart'] = str(timeStart)
|
|
1039
|
+
if untilIsDefined:
|
|
1040
|
+
request['timeEnd'] = str(until)
|
|
936
1041
|
else:
|
|
937
1042
|
request['timeStart'] = str(since)
|
|
938
|
-
|
|
939
|
-
|
|
1043
|
+
if untilIsDefined:
|
|
1044
|
+
request['timeEnd'] = str(until)
|
|
1045
|
+
else:
|
|
1046
|
+
timeEnd = self.sum(since, duration * limit)
|
|
1047
|
+
request['timeEnd'] = str(timeEnd)
|
|
1048
|
+
params = self.omit(params, 'until')
|
|
940
1049
|
response = self.publicGetCandlesBaseIdQuoteId(self.extend(request, params))
|
|
941
1050
|
#
|
|
942
1051
|
# {
|
|
@@ -1018,7 +1127,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1018
1127
|
self.safe_number(data, 'volume', 0),
|
|
1019
1128
|
]
|
|
1020
1129
|
|
|
1021
|
-
def fetch_deposit_address(self, code: str, params={}):
|
|
1130
|
+
def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
|
1022
1131
|
"""
|
|
1023
1132
|
fetch the deposit address for a currency associated with self account
|
|
1024
1133
|
:param str code: unified currency code
|
|
@@ -1097,12 +1206,11 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1097
1206
|
responseInner = self.nodeGetAddressesPublicKeyPublicKey(self.extend(request, request))
|
|
1098
1207
|
addressInner = self.safe_string(response, 'address')
|
|
1099
1208
|
return {
|
|
1100
|
-
'
|
|
1101
|
-
'code': code, # kept here for backward-compatibility, but will be removed soon
|
|
1209
|
+
'info': responseInner,
|
|
1102
1210
|
'currency': code,
|
|
1103
1211
|
'network': network,
|
|
1212
|
+
'address': addressInner,
|
|
1104
1213
|
'tag': None,
|
|
1105
|
-
'info': responseInner,
|
|
1106
1214
|
}
|
|
1107
1215
|
else:
|
|
1108
1216
|
request: dict = {
|
|
@@ -1140,12 +1248,11 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1140
1248
|
addresses = self.safe_value(response, 'deposit_addresses')
|
|
1141
1249
|
address = self.safe_string(addresses, 0)
|
|
1142
1250
|
return {
|
|
1143
|
-
'
|
|
1144
|
-
'code': code, # kept here for backward-compatibility, but will be removed soon
|
|
1251
|
+
'info': response,
|
|
1145
1252
|
'currency': code,
|
|
1146
|
-
'tag': None,
|
|
1147
1253
|
'network': unifiedNetwork,
|
|
1148
|
-
'
|
|
1254
|
+
'address': address,
|
|
1255
|
+
'tag': None,
|
|
1149
1256
|
}
|
|
1150
1257
|
|
|
1151
1258
|
def get_matcher_public_key(self):
|
|
@@ -1216,13 +1323,16 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1216
1323
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
|
1217
1324
|
"""
|
|
1218
1325
|
create a trade order
|
|
1326
|
+
|
|
1327
|
+
https://matcher.waves.exchange/api-docs/index.html#/serialize/serializeOrder
|
|
1328
|
+
|
|
1219
1329
|
:param str symbol: unified symbol of the market to create an order in
|
|
1220
1330
|
:param str type: 'market' or 'limit'
|
|
1221
1331
|
:param str side: 'buy' or 'sell'
|
|
1222
1332
|
:param float amount: how much of currency you want to trade in units of base currency
|
|
1223
|
-
:param float [price]: the price at which the order is to be
|
|
1333
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
1224
1334
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1225
|
-
:param float [params.
|
|
1335
|
+
:param float [params.triggerPrice]: The price at which a stop order is triggered at
|
|
1226
1336
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1227
1337
|
"""
|
|
1228
1338
|
self.check_required_dependencies()
|
|
@@ -1233,12 +1343,13 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1233
1343
|
amountAsset = self.get_asset_id(market['baseId'])
|
|
1234
1344
|
priceAsset = self.get_asset_id(market['quoteId'])
|
|
1235
1345
|
isMarketOrder = (type == 'market')
|
|
1236
|
-
|
|
1237
|
-
isStopOrder = (
|
|
1346
|
+
triggerPrice = self.safe_float_2(params, 'triggerPrice', 'stopPrice')
|
|
1347
|
+
isStopOrder = (triggerPrice is not None)
|
|
1238
1348
|
if (isMarketOrder) and (price is None):
|
|
1239
1349
|
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')
|
|
1240
1350
|
timestamp = self.milliseconds()
|
|
1241
|
-
defaultExpiryDelta =
|
|
1351
|
+
defaultExpiryDelta = None
|
|
1352
|
+
defaultExpiryDelta, params = self.handle_option_and_params(params, 'createOrder', 'defaultExpiry', self.safe_integer(self.options, 'createOrderDefaultExpiry', 2419200000))
|
|
1242
1353
|
expiration = self.sum(timestamp, defaultExpiryDelta)
|
|
1243
1354
|
matcherFees = self.get_fees_for_asset(symbol, side, amount, price)
|
|
1244
1355
|
# {
|
|
@@ -1329,7 +1440,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1329
1440
|
'c': {
|
|
1330
1441
|
't': 'sp',
|
|
1331
1442
|
'v': {
|
|
1332
|
-
'p': self.to_real_symbol_price(symbol,
|
|
1443
|
+
'p': self.to_real_symbol_price(symbol, triggerPrice),
|
|
1333
1444
|
},
|
|
1334
1445
|
},
|
|
1335
1446
|
}
|
|
@@ -1373,17 +1484,20 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1373
1484
|
# }
|
|
1374
1485
|
#
|
|
1375
1486
|
if isMarketOrder:
|
|
1376
|
-
response = self.matcherPostMatcherOrderbookMarket(body)
|
|
1487
|
+
response = self.matcherPostMatcherOrderbookMarket(self.extend(body, params))
|
|
1377
1488
|
value = self.safe_dict(response, 'message')
|
|
1378
1489
|
return self.parse_order(value, market)
|
|
1379
1490
|
else:
|
|
1380
|
-
response = self.matcherPostMatcherOrderbook(body)
|
|
1491
|
+
response = self.matcherPostMatcherOrderbook(self.extend(body, params))
|
|
1381
1492
|
value = self.safe_dict(response, 'message')
|
|
1382
1493
|
return self.parse_order(value, market)
|
|
1383
1494
|
|
|
1384
1495
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
1385
1496
|
"""
|
|
1386
1497
|
cancels an open order
|
|
1498
|
+
|
|
1499
|
+
https://matcher.waves.exchange/api-docs/index.html#/cancel/cancelOrdersByIdsWithKeyOrSignature
|
|
1500
|
+
|
|
1387
1501
|
:param str id: order id
|
|
1388
1502
|
:param str symbol: unified symbol of the market the order was made in
|
|
1389
1503
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -1430,6 +1544,10 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1430
1544
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
|
1431
1545
|
"""
|
|
1432
1546
|
fetches information on an order made by the user
|
|
1547
|
+
|
|
1548
|
+
https://matcher.waves.exchange/api-docs/index.html#/status/getOrderStatusByPKAndIdWithSig
|
|
1549
|
+
|
|
1550
|
+
:param str id: order id
|
|
1433
1551
|
:param str symbol: unified symbol of the market the order was made in
|
|
1434
1552
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1435
1553
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
@@ -1696,7 +1814,6 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1696
1814
|
'postOnly': None,
|
|
1697
1815
|
'side': side,
|
|
1698
1816
|
'price': price,
|
|
1699
|
-
'stopPrice': triggerPrice,
|
|
1700
1817
|
'triggerPrice': triggerPrice,
|
|
1701
1818
|
'amount': amount,
|
|
1702
1819
|
'cost': None,
|
|
@@ -1860,6 +1977,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1860
1977
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1861
1978
|
"""
|
|
1862
1979
|
fetch all trades made by the user
|
|
1980
|
+
|
|
1981
|
+
https://api.wavesplatform.com/v0/docs/#/transactions/searchTxsExchange
|
|
1982
|
+
|
|
1863
1983
|
:param str symbol: unified market symbol
|
|
1864
1984
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
1865
1985
|
:param int [limit]: the maximum number of trades structures to retrieve
|
|
@@ -1949,6 +2069,9 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
1949
2069
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
1950
2070
|
"""
|
|
1951
2071
|
get the list of most recent trades for a particular symbol
|
|
2072
|
+
|
|
2073
|
+
https://api.wavesplatform.com/v0/docs/#/transactions/searchTxsExchange
|
|
2074
|
+
|
|
1952
2075
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
1953
2076
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
1954
2077
|
:param int [limit]: the maximum amount of trades to fetch
|
|
@@ -2091,11 +2214,21 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
2091
2214
|
order1 = self.safe_value(data, 'order1')
|
|
2092
2215
|
order2 = self.safe_value(data, 'order2')
|
|
2093
2216
|
order = None
|
|
2094
|
-
#
|
|
2217
|
+
# at first, detect if response is from `fetch_my_trades`
|
|
2095
2218
|
if self.safe_string(order1, 'senderPublicKey') == self.apiKey:
|
|
2096
2219
|
order = order1
|
|
2097
|
-
|
|
2220
|
+
elif self.safe_string(order2, 'senderPublicKey') == self.apiKey:
|
|
2098
2221
|
order = order2
|
|
2222
|
+
else:
|
|
2223
|
+
# response is from `fetch_trades`, so find only taker order
|
|
2224
|
+
date1 = self.safe_string(order1, 'timestamp')
|
|
2225
|
+
date2 = self.safe_string(order2, 'timestamp')
|
|
2226
|
+
ts1 = self.parse8601(date1)
|
|
2227
|
+
ts2 = self.parse8601(date2)
|
|
2228
|
+
if ts1 > ts2:
|
|
2229
|
+
order = order1
|
|
2230
|
+
else:
|
|
2231
|
+
order = order2
|
|
2099
2232
|
symbol = None
|
|
2100
2233
|
assetPair = self.safe_value(order, 'assetPair')
|
|
2101
2234
|
if assetPair is not None:
|
|
@@ -2190,8 +2323,10 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
2190
2323
|
def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
|
|
2191
2324
|
"""
|
|
2192
2325
|
fetch deposit and withdraw fees
|
|
2193
|
-
|
|
2194
|
-
|
|
2326
|
+
|
|
2327
|
+
https://docs.wx.network/en/api/gateways/deposit/currencies
|
|
2328
|
+
https://docs.wx.network/en/api/gateways/withdraw/currencies
|
|
2329
|
+
|
|
2195
2330
|
:param str[]|None codes: list of unified currency codes
|
|
2196
2331
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2197
2332
|
:returns dict: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
|
|
@@ -2277,7 +2412,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
|
2277
2412
|
raise ExchangeError(self.id + ' ' + body)
|
|
2278
2413
|
return None
|
|
2279
2414
|
|
|
2280
|
-
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
2415
|
+
def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
2281
2416
|
"""
|
|
2282
2417
|
make a withdrawal
|
|
2283
2418
|
:param str code: unified currency code
|