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/vertex.py
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.vertex import ImplicitAPI
|
|
8
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction
|
|
8
|
+
from ccxt.base.types import Any, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction
|
|
9
9
|
from typing import List
|
|
10
10
|
from ccxt.base.errors import ExchangeError
|
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -22,7 +22,7 @@ from ccxt.base.precise import Precise
|
|
|
22
22
|
|
|
23
23
|
class vertex(Exchange, ImplicitAPI):
|
|
24
24
|
|
|
25
|
-
def describe(self):
|
|
25
|
+
def describe(self) -> Any:
|
|
26
26
|
return self.deep_extend(super(vertex, self).describe(), {
|
|
27
27
|
'id': 'vertex',
|
|
28
28
|
'name': 'Vertex',
|
|
@@ -55,6 +55,8 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
55
55
|
'createOrder': True,
|
|
56
56
|
'createOrders': True,
|
|
57
57
|
'createReduceOnlyOrder': True,
|
|
58
|
+
'createStopOrder': True,
|
|
59
|
+
'createTriggerOrder': True,
|
|
58
60
|
'editOrder': False,
|
|
59
61
|
'fetchAccounts': False,
|
|
60
62
|
'fetchBalance': True,
|
|
@@ -91,6 +93,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
91
93
|
'fetchOHLCV': True,
|
|
92
94
|
'fetchOpenInterest': True,
|
|
93
95
|
'fetchOpenInterestHistory': False,
|
|
96
|
+
'fetchOpenInterests': True,
|
|
94
97
|
'fetchOpenOrders': True,
|
|
95
98
|
'fetchOrder': True,
|
|
96
99
|
'fetchOrderBook': True,
|
|
@@ -327,6 +330,72 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
327
330
|
'timeDifference': 0, # the difference between system clock and exchange server clock
|
|
328
331
|
'brokerId': 5930043274845996,
|
|
329
332
|
},
|
|
333
|
+
'features': {
|
|
334
|
+
'default': {
|
|
335
|
+
'sandbox': True,
|
|
336
|
+
'createOrder': {
|
|
337
|
+
'marginMode': False,
|
|
338
|
+
'triggerPrice': True, # todo
|
|
339
|
+
'triggerDirection': False,
|
|
340
|
+
'triggerPriceType': None,
|
|
341
|
+
'stopLossPrice': True, # todo
|
|
342
|
+
'takeProfitPrice': True, # todo
|
|
343
|
+
'attachedStopLossTakeProfit': None,
|
|
344
|
+
'timeInForce': {
|
|
345
|
+
'IOC': False,
|
|
346
|
+
'FOK': False,
|
|
347
|
+
'PO': True,
|
|
348
|
+
'GTD': True,
|
|
349
|
+
},
|
|
350
|
+
'hedged': False,
|
|
351
|
+
'trailing': False,
|
|
352
|
+
'leverage': False,
|
|
353
|
+
'marketBuyByCost': True, # todo
|
|
354
|
+
'marketBuyRequiresPrice': True, # todo fix implementation
|
|
355
|
+
'selfTradePrevention': False,
|
|
356
|
+
'iceberg': False,
|
|
357
|
+
},
|
|
358
|
+
'createOrders': None,
|
|
359
|
+
'fetchMyTrades': {
|
|
360
|
+
'marginMode': False,
|
|
361
|
+
'limit': 500,
|
|
362
|
+
'daysBack': 100000, # todo
|
|
363
|
+
'untilDays': None,
|
|
364
|
+
'symbolRequired': False,
|
|
365
|
+
},
|
|
366
|
+
'fetchOrder': {
|
|
367
|
+
'marginMode': False,
|
|
368
|
+
'trigger': False,
|
|
369
|
+
'trailing': False,
|
|
370
|
+
'symbolRequired': True,
|
|
371
|
+
},
|
|
372
|
+
'fetchOpenOrders': {
|
|
373
|
+
'marginMode': False,
|
|
374
|
+
'limit': 500,
|
|
375
|
+
'trigger': True,
|
|
376
|
+
'trailing': False,
|
|
377
|
+
'symbolRequired': False,
|
|
378
|
+
},
|
|
379
|
+
'fetchOrders': None, # todo, only for trigger
|
|
380
|
+
'fetchClosedOrders': None, # todo through fetchOrders
|
|
381
|
+
'fetchOHLCV': {
|
|
382
|
+
'limit': 1000,
|
|
383
|
+
},
|
|
384
|
+
},
|
|
385
|
+
'spot': {
|
|
386
|
+
'extends': 'default',
|
|
387
|
+
},
|
|
388
|
+
'swap': {
|
|
389
|
+
'linear': {
|
|
390
|
+
'extends': 'default',
|
|
391
|
+
},
|
|
392
|
+
'inverse': None,
|
|
393
|
+
},
|
|
394
|
+
'future': {
|
|
395
|
+
'linear': None,
|
|
396
|
+
'inverse': None,
|
|
397
|
+
},
|
|
398
|
+
},
|
|
330
399
|
})
|
|
331
400
|
|
|
332
401
|
def set_sandbox_mode(self, enabled):
|
|
@@ -388,11 +457,10 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
388
457
|
tickerId = self.safe_string(data, 'ticker_id')
|
|
389
458
|
if (tickerId is not None) and (tickerId.find('PERP') > 0):
|
|
390
459
|
continue
|
|
391
|
-
id = self.safe_string(data, 'product_id')
|
|
392
460
|
name = self.safe_string(data, 'symbol')
|
|
393
461
|
code = self.safe_currency_code(name)
|
|
394
|
-
result[code] = {
|
|
395
|
-
'id':
|
|
462
|
+
result[code] = self.safe_currency_structure({
|
|
463
|
+
'id': self.safe_string(data, 'product_id'),
|
|
396
464
|
'name': name,
|
|
397
465
|
'code': code,
|
|
398
466
|
'precision': None,
|
|
@@ -412,7 +480,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
412
480
|
'max': None,
|
|
413
481
|
},
|
|
414
482
|
},
|
|
415
|
-
}
|
|
483
|
+
})
|
|
416
484
|
return result
|
|
417
485
|
|
|
418
486
|
def parse_market(self, market) -> Market:
|
|
@@ -553,7 +621,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
553
621
|
result.append(self.parse_market(rawMarket))
|
|
554
622
|
return result
|
|
555
623
|
|
|
556
|
-
def fetch_time(self, params={}):
|
|
624
|
+
def fetch_time(self, params={}) -> Int:
|
|
557
625
|
"""
|
|
558
626
|
fetches the current integer timestamp in milliseconds from the exchange server
|
|
559
627
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -561,7 +629,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
561
629
|
"""
|
|
562
630
|
response = self.v1GatewayGetTime(params)
|
|
563
631
|
# 1717481623452
|
|
564
|
-
return self.
|
|
632
|
+
return self.parse_to_int(response)
|
|
565
633
|
|
|
566
634
|
def fetch_status(self, params={}):
|
|
567
635
|
"""
|
|
@@ -1327,16 +1395,74 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
1327
1395
|
# }
|
|
1328
1396
|
# }
|
|
1329
1397
|
#
|
|
1330
|
-
|
|
1398
|
+
marketId = self.safe_string(interest, 'ticker_id')
|
|
1331
1399
|
return self.safe_open_interest({
|
|
1332
|
-
'symbol': market
|
|
1333
|
-
'openInterestAmount':
|
|
1334
|
-
'openInterestValue':
|
|
1400
|
+
'symbol': self.safe_symbol(marketId, market),
|
|
1401
|
+
'openInterestAmount': self.safe_number(interest, 'open_interest'),
|
|
1402
|
+
'openInterestValue': self.safe_number(interest, 'open_interest_usd'),
|
|
1335
1403
|
'timestamp': None,
|
|
1336
1404
|
'datetime': None,
|
|
1337
1405
|
'info': interest,
|
|
1338
1406
|
}, market)
|
|
1339
1407
|
|
|
1408
|
+
def fetch_open_interests(self, symbols: Strings = None, params={}):
|
|
1409
|
+
"""
|
|
1410
|
+
Retrieves the open interest for a list of symbols
|
|
1411
|
+
|
|
1412
|
+
https://docs.vertexprotocol.com/developer-resources/api/v2/contracts
|
|
1413
|
+
|
|
1414
|
+
:param str[] [symbols]: a list of unified CCXT market symbols
|
|
1415
|
+
:param dict [params]: exchange specific parameters
|
|
1416
|
+
:returns dict[]: a list of `open interest structures <https://docs.ccxt.com/#/?id=open-interest-structure>`
|
|
1417
|
+
"""
|
|
1418
|
+
self.load_markets()
|
|
1419
|
+
symbols = self.market_symbols(symbols)
|
|
1420
|
+
response = self.v2ArchiveGetContracts(params)
|
|
1421
|
+
#
|
|
1422
|
+
# {
|
|
1423
|
+
# "ADA-PERP_USDC": {
|
|
1424
|
+
# "ticker_id": "ADA-PERP_USDC",
|
|
1425
|
+
# "base_currency": "ADA-PERP",
|
|
1426
|
+
# "quote_currency": "USDC",
|
|
1427
|
+
# "last_price": 0.85506,
|
|
1428
|
+
# "base_volume": 1241320.0,
|
|
1429
|
+
# "quote_volume": 1122670.9080057142,
|
|
1430
|
+
# "product_type": "perpetual",
|
|
1431
|
+
# "contract_price": 0.8558601432685385,
|
|
1432
|
+
# "contract_price_currency": "USD",
|
|
1433
|
+
# "open_interest": 104040.0,
|
|
1434
|
+
# "open_interest_usd": 89043.68930565874,
|
|
1435
|
+
# "index_price": 0.8561952606869176,
|
|
1436
|
+
# "mark_price": 0.856293781088936,
|
|
1437
|
+
# "funding_rate": 0.000116153806226841,
|
|
1438
|
+
# "next_funding_rate_timestamp": 1734685200,
|
|
1439
|
+
# "price_change_percent_24h": -12.274325340321374
|
|
1440
|
+
# },
|
|
1441
|
+
# }
|
|
1442
|
+
#
|
|
1443
|
+
parsedSymbols = []
|
|
1444
|
+
results = []
|
|
1445
|
+
markets = list(response.keys())
|
|
1446
|
+
if symbols is None:
|
|
1447
|
+
symbols = []
|
|
1448
|
+
for y in range(0, len(markets)):
|
|
1449
|
+
tickerId = markets[y]
|
|
1450
|
+
parsedTickerId = tickerId.split('-')
|
|
1451
|
+
currentSymbol = parsedTickerId[0] + '/USDC:USDC'
|
|
1452
|
+
if not self.in_array(currentSymbol, symbols):
|
|
1453
|
+
symbols.append(currentSymbol)
|
|
1454
|
+
for i in range(0, len(markets)):
|
|
1455
|
+
marketId = markets[i]
|
|
1456
|
+
marketInner = self.safe_market(marketId)
|
|
1457
|
+
openInterest = self.safe_dict(response, marketId, {})
|
|
1458
|
+
for j in range(0, len(symbols)):
|
|
1459
|
+
market = self.market(symbols[j])
|
|
1460
|
+
tickerId = market['base'] + '_USDC'
|
|
1461
|
+
if marketInner['marketId'] == tickerId:
|
|
1462
|
+
parsedSymbols.append(market['symbol'])
|
|
1463
|
+
results.append(self.parse_open_interest(openInterest, market))
|
|
1464
|
+
return self.filter_by_array(results, 'symbol', parsedSymbols)
|
|
1465
|
+
|
|
1340
1466
|
def fetch_open_interest(self, symbol: str, params={}):
|
|
1341
1467
|
"""
|
|
1342
1468
|
Retrieves the open interest of a derivative trading pair
|
|
@@ -1396,7 +1522,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
1396
1522
|
marketId = base + '/' + quote
|
|
1397
1523
|
if base.find('PERP') > 0:
|
|
1398
1524
|
marketId = marketId.replace('-PERP', '') + ':USDC'
|
|
1399
|
-
market = self.
|
|
1525
|
+
market = self.safe_market(marketId, market)
|
|
1400
1526
|
last = self.safe_string(ticker, 'last_price')
|
|
1401
1527
|
return self.safe_ticker({
|
|
1402
1528
|
'symbol': market['symbol'],
|
|
@@ -1962,7 +2088,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
1962
2088
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
1963
2089
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
1964
2090
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
1965
|
-
:param boolean [params.
|
|
2091
|
+
:param boolean [params.trigger]: whether the order is a trigger/algo order
|
|
1966
2092
|
:param str [params.user]: user address, will default to self.walletAddress if not provided
|
|
1967
2093
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
|
1968
2094
|
"""
|
|
@@ -1972,13 +2098,13 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
1972
2098
|
userAddress, params = self.handle_public_address('fetchOpenOrders', params)
|
|
1973
2099
|
request = {}
|
|
1974
2100
|
market: Market = None
|
|
1975
|
-
|
|
2101
|
+
trigger = self.safe_bool_2(params, 'stop', 'trigger')
|
|
1976
2102
|
params = self.omit(params, ['stop', 'trigger'])
|
|
1977
2103
|
if symbol is not None:
|
|
1978
2104
|
market = self.market(symbol)
|
|
1979
2105
|
request['product_id'] = self.parse_to_numeric(market['id'])
|
|
1980
2106
|
response = None
|
|
1981
|
-
if
|
|
2107
|
+
if trigger:
|
|
1982
2108
|
contracts = self.query_contracts()
|
|
1983
2109
|
chainId = self.safe_string(contracts, 'chain_id')
|
|
1984
2110
|
verifyingContractAddress = self.safe_string(contracts, 'endpoint_addr')
|
|
@@ -2043,7 +2169,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2043
2169
|
# "product_id": 1,
|
|
2044
2170
|
# "orders": [
|
|
2045
2171
|
# {
|
|
2046
|
-
# "product_id":
|
|
2172
|
+
# "product_id": 2,
|
|
2047
2173
|
# "sender": "0x7a5ec2748e9065794491a8d29dcf3f9edb8d7c43000000000000000000000000",
|
|
2048
2174
|
# "price_x18": "1000000000000000000",
|
|
2049
2175
|
# "amount": "1000000000000000000",
|
|
@@ -2052,7 +2178,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2052
2178
|
# "order_type": "default",
|
|
2053
2179
|
# "unfilled_amount": "1000000000000000000",
|
|
2054
2180
|
# "digest": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
2055
|
-
# "placed_at":
|
|
2181
|
+
# "placed_at": 1682437737,
|
|
2056
2182
|
# "order_type": "ioc"
|
|
2057
2183
|
# }
|
|
2058
2184
|
# ]
|
|
@@ -2074,14 +2200,14 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2074
2200
|
:param int [since]: the earliest time in ms to fetch open orders for
|
|
2075
2201
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
|
2076
2202
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2077
|
-
:param boolean [params.
|
|
2203
|
+
:param boolean [params.trigger]: whether the order is a trigger/algo order
|
|
2078
2204
|
:param str [params.user]: user address, will default to self.walletAddress if not provided
|
|
2079
2205
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
|
2080
2206
|
"""
|
|
2081
2207
|
self.check_required_credentials()
|
|
2082
|
-
|
|
2208
|
+
trigger = self.safe_bool_2(params, 'stop', 'trigger')
|
|
2083
2209
|
params = self.omit(params, ['stop', 'trigger'])
|
|
2084
|
-
if not
|
|
2210
|
+
if not trigger:
|
|
2085
2211
|
raise NotSupported(self.id + ' fetchOrders only support trigger orders')
|
|
2086
2212
|
userAddress = None
|
|
2087
2213
|
userAddress, params = self.handle_public_address('fetchOrders', params)
|
|
@@ -2156,7 +2282,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2156
2282
|
cancel all open orders in a market
|
|
2157
2283
|
:param str symbol: unified market symbol
|
|
2158
2284
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2159
|
-
:param boolean [params.
|
|
2285
|
+
:param boolean [params.trigger]: whether the order is a trigger/algo order
|
|
2160
2286
|
:returns dict: an list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
|
2161
2287
|
"""
|
|
2162
2288
|
self.check_required_credentials()
|
|
@@ -2187,10 +2313,10 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2187
2313
|
'signature': self.build_cancel_all_orders_sig(cancels, chainId, verifyingContractAddress),
|
|
2188
2314
|
},
|
|
2189
2315
|
}
|
|
2190
|
-
|
|
2316
|
+
trigger = self.safe_bool_2(params, 'stop', 'trigger')
|
|
2191
2317
|
params = self.omit(params, ['stop', 'trigger'])
|
|
2192
2318
|
response = None
|
|
2193
|
-
if
|
|
2319
|
+
if trigger:
|
|
2194
2320
|
response = self.v1TriggerPostExecute(self.extend(request, params))
|
|
2195
2321
|
#
|
|
2196
2322
|
# {
|
|
@@ -2225,7 +2351,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2225
2351
|
# "request_type": "execute_cancel_product_orders"
|
|
2226
2352
|
# }
|
|
2227
2353
|
#
|
|
2228
|
-
return response
|
|
2354
|
+
return [self.safe_order({'info': response})]
|
|
2229
2355
|
|
|
2230
2356
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
|
2231
2357
|
"""
|
|
@@ -2239,7 +2365,8 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2239
2365
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2240
2366
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
2241
2367
|
"""
|
|
2242
|
-
|
|
2368
|
+
order = self.cancel_orders([id], symbol, params)
|
|
2369
|
+
return self.safe_order({'info': order})
|
|
2243
2370
|
|
|
2244
2371
|
def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
|
2245
2372
|
"""
|
|
@@ -2270,24 +2397,25 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2270
2397
|
'digests': ids,
|
|
2271
2398
|
'nonce': nonce,
|
|
2272
2399
|
}
|
|
2400
|
+
productIds = cancels['productIds']
|
|
2273
2401
|
marketIdNum = self.parse_to_numeric(marketId)
|
|
2274
2402
|
for i in range(0, len(ids)):
|
|
2275
|
-
|
|
2403
|
+
productIds.append(marketIdNum)
|
|
2276
2404
|
request = {
|
|
2277
2405
|
'cancel_orders': {
|
|
2278
2406
|
'tx': {
|
|
2279
2407
|
'sender': cancels['sender'],
|
|
2280
|
-
'productIds':
|
|
2408
|
+
'productIds': productIds,
|
|
2281
2409
|
'digests': cancels['digests'],
|
|
2282
2410
|
'nonce': self.number_to_string(cancels['nonce']),
|
|
2283
2411
|
},
|
|
2284
2412
|
'signature': self.build_cancel_orders_sig(cancels, chainId, verifyingContractAddress),
|
|
2285
2413
|
},
|
|
2286
2414
|
}
|
|
2287
|
-
|
|
2415
|
+
trigger = self.safe_bool_2(params, 'stop', 'trigger')
|
|
2288
2416
|
params = self.omit(params, ['stop', 'trigger'])
|
|
2289
2417
|
response = None
|
|
2290
|
-
if
|
|
2418
|
+
if trigger:
|
|
2291
2419
|
response = self.v1TriggerPostExecute(self.extend(request, params))
|
|
2292
2420
|
#
|
|
2293
2421
|
# {
|
|
@@ -2731,7 +2859,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2731
2859
|
'takeProfitPrice': None,
|
|
2732
2860
|
})
|
|
2733
2861
|
|
|
2734
|
-
def fetch_positions(self, symbols: Strings = None, params={}):
|
|
2862
|
+
def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
|
|
2735
2863
|
"""
|
|
2736
2864
|
fetch all open positions
|
|
2737
2865
|
|
|
@@ -2779,7 +2907,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
|
2779
2907
|
#
|
|
2780
2908
|
return self.safe_dict(response, 'data', {})
|
|
2781
2909
|
|
|
2782
|
-
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
|
2910
|
+
def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}) -> Transaction:
|
|
2783
2911
|
"""
|
|
2784
2912
|
make a withdrawal
|
|
2785
2913
|
|
ccxt/wallex.py
CHANGED
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.wallex import ImplicitAPI
|
|
8
|
-
from ccxt.base.types import Int, Market, OrderBook, Strings, Ticker, Tickers
|
|
8
|
+
from ccxt.base.types import Any, Int, Market, OrderBook, Strings, Ticker, Tickers
|
|
9
9
|
from typing import List
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class wallex(Exchange, ImplicitAPI):
|
|
13
13
|
|
|
14
|
-
def describe(self):
|
|
14
|
+
def describe(self) -> Any:
|
|
15
15
|
return self.deep_extend(super(wallex, self).describe(), {
|
|
16
16
|
'id': 'wallex',
|
|
17
17
|
'name': 'Wallex',
|
|
18
|
-
'
|
|
18
|
+
'countries': ['IR'],
|
|
19
19
|
'rateLimit': 1000,
|
|
20
20
|
'version': '1',
|
|
21
21
|
'certified': False,
|
|
@@ -125,10 +125,10 @@ class wallex(Exchange, ImplicitAPI):
|
|
|
125
125
|
},
|
|
126
126
|
})
|
|
127
127
|
|
|
128
|
-
def fetch_markets(self,
|
|
128
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
|
129
129
|
"""
|
|
130
130
|
retrieves data on all markets for wallex
|
|
131
|
-
|
|
131
|
+
https://api-docs.wallex.ir/#be8d9c51a2
|
|
132
132
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
133
133
|
:returns dict[]: an array of objects representing market data
|
|
134
134
|
"""
|
|
@@ -251,7 +251,7 @@ class wallex(Exchange, ImplicitAPI):
|
|
|
251
251
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
252
252
|
"""
|
|
253
253
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
254
|
-
|
|
254
|
+
https://api-docs.wallex.ir/#be8d9c51a2
|
|
255
255
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
256
256
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
257
257
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -274,7 +274,7 @@ class wallex(Exchange, ImplicitAPI):
|
|
|
274
274
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
275
275
|
"""
|
|
276
276
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
277
|
-
|
|
277
|
+
https://api-docs.wallex.ir/#be8d9c51a2
|
|
278
278
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
279
279
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
280
280
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
@@ -372,7 +372,7 @@ class wallex(Exchange, ImplicitAPI):
|
|
|
372
372
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
373
373
|
"""
|
|
374
374
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
375
|
-
|
|
375
|
+
https://api-docs.wallex.ir/#be8d9c51a2
|
|
376
376
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
377
377
|
:param str timeframe: the length of time each candle represents
|
|
378
378
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -418,7 +418,7 @@ class wallex(Exchange, ImplicitAPI):
|
|
|
418
418
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
419
419
|
"""
|
|
420
420
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
|
421
|
-
|
|
421
|
+
https://api-docs.wallex.ir/#be8d9c51a2
|
|
422
422
|
:param str[]|None symbols: list of unified market symbols, all symbols fetched if None, default is None
|
|
423
423
|
:param int [limit]: max number of entries per orderbook to return, default is None
|
|
424
424
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|