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/pro/p2b.py
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import ccxt.async_support
|
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheByTimestamp
|
|
8
|
-
from ccxt.base.types import Int, OrderBook, Ticker, Trade
|
|
8
|
+
from ccxt.base.types import Any, Bool, Int, OrderBook, Strings, Ticker, Tickers, Trade
|
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
|
10
10
|
from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
|
@@ -14,7 +14,7 @@ from ccxt.base.errors import BadRequest
|
|
|
14
14
|
|
|
15
15
|
class p2b(ccxt.async_support.p2b):
|
|
16
16
|
|
|
17
|
-
def describe(self):
|
|
17
|
+
def describe(self) -> Any:
|
|
18
18
|
return self.deep_extend(super(p2b, self).describe(), {
|
|
19
19
|
'has': {
|
|
20
20
|
'ws': True,
|
|
@@ -34,8 +34,9 @@ class p2b(ccxt.async_support.p2b):
|
|
|
34
34
|
'watchOrders': False,
|
|
35
35
|
# 'watchStatus': True,
|
|
36
36
|
'watchTicker': True,
|
|
37
|
-
'watchTickers':
|
|
37
|
+
'watchTickers': True,
|
|
38
38
|
'watchTrades': True,
|
|
39
|
+
'watchTradesForSymbols': True,
|
|
39
40
|
},
|
|
40
41
|
'urls': {
|
|
41
42
|
'api': {
|
|
@@ -66,7 +67,7 @@ class p2b(ccxt.async_support.p2b):
|
|
|
66
67
|
|
|
67
68
|
async def subscribe(self, name: str, messageHash: str, request, params={}):
|
|
68
69
|
"""
|
|
69
|
-
|
|
70
|
+
@ignore
|
|
70
71
|
Connects to a websocket channel
|
|
71
72
|
:param str name: name of the channel
|
|
72
73
|
:param str messageHash: string to look up in handler
|
|
@@ -86,7 +87,9 @@ class p2b(ccxt.async_support.p2b):
|
|
|
86
87
|
async def watch_ohlcv(self, symbol: str, timeframe='15m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
87
88
|
"""
|
|
88
89
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market. Can only subscribe to one timeframe at a time for each symbol
|
|
89
|
-
|
|
90
|
+
|
|
91
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#kline-candlestick
|
|
92
|
+
|
|
90
93
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
91
94
|
:param str timeframe: 15m, 30m, 1h or 1d
|
|
92
95
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
|
@@ -113,8 +116,10 @@ class p2b(ccxt.async_support.p2b):
|
|
|
113
116
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
114
117
|
"""
|
|
115
118
|
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
116
|
-
|
|
117
|
-
|
|
119
|
+
|
|
120
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#last-price
|
|
121
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#market-status
|
|
122
|
+
|
|
118
123
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
119
124
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
120
125
|
:param dict [params.method]: 'state'(default) or 'price'
|
|
@@ -132,31 +137,91 @@ class p2b(ccxt.async_support.p2b):
|
|
|
132
137
|
messageHash = name + '::' + market['symbol']
|
|
133
138
|
return await self.subscribe(name + '.subscribe', messageHash, request, params)
|
|
134
139
|
|
|
140
|
+
async def watch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
141
|
+
"""
|
|
142
|
+
|
|
143
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#last-price
|
|
144
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#market-status
|
|
145
|
+
|
|
146
|
+
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
147
|
+
:param str[] [symbols]: unified symbol of the market to fetch the ticker for
|
|
148
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
149
|
+
:param dict [params.method]: 'state'(default) or 'price'
|
|
150
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
151
|
+
"""
|
|
152
|
+
await self.load_markets()
|
|
153
|
+
symbols = self.market_symbols(symbols, None, False)
|
|
154
|
+
watchTickerOptions = self.safe_dict(self.options, 'watchTicker')
|
|
155
|
+
name = self.safe_string(watchTickerOptions, 'name', 'state') # or price
|
|
156
|
+
name, params = self.handle_option_and_params(params, 'method', 'name', name)
|
|
157
|
+
messageHashes = []
|
|
158
|
+
args = []
|
|
159
|
+
for i in range(0, len(symbols)):
|
|
160
|
+
market = self.market(symbols[i])
|
|
161
|
+
messageHashes.append(name + '::' + market['symbol'])
|
|
162
|
+
args.append(market['id'])
|
|
163
|
+
url = self.urls['api']['ws']
|
|
164
|
+
request: dict = {
|
|
165
|
+
'method': name + '.subscribe',
|
|
166
|
+
'params': args,
|
|
167
|
+
'id': self.milliseconds(),
|
|
168
|
+
}
|
|
169
|
+
await self.watch_multiple(url, messageHashes, self.extend(request, params), messageHashes)
|
|
170
|
+
return self.filter_by_array(self.tickers, 'symbol', symbols)
|
|
171
|
+
|
|
135
172
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
136
173
|
"""
|
|
137
174
|
get the list of most recent trades for a particular symbol
|
|
138
|
-
|
|
175
|
+
|
|
176
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#deals
|
|
177
|
+
|
|
139
178
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
140
179
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
141
180
|
:param int [limit]: the maximum amount of trades to fetch
|
|
142
181
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
143
182
|
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
|
|
144
183
|
"""
|
|
184
|
+
return await self.watch_trades_for_symbols([symbol], since, limit, params)
|
|
185
|
+
|
|
186
|
+
async def watch_trades_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
187
|
+
"""
|
|
188
|
+
get the list of most recent trades for a list of symbols
|
|
189
|
+
|
|
190
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#deals
|
|
191
|
+
|
|
192
|
+
:param str[] symbols: unified symbol of the market to fetch trades for
|
|
193
|
+
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
194
|
+
:param int [limit]: the maximum amount of trades to fetch
|
|
195
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
196
|
+
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
|
|
197
|
+
"""
|
|
145
198
|
await self.load_markets()
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
199
|
+
symbols = self.market_symbols(symbols, None, False, True, True)
|
|
200
|
+
messageHashes = []
|
|
201
|
+
if symbols is not None:
|
|
202
|
+
for i in range(0, len(symbols)):
|
|
203
|
+
messageHashes.append('deals::' + symbols[i])
|
|
204
|
+
marketIds = self.market_ids(symbols)
|
|
205
|
+
url = self.urls['api']['ws']
|
|
206
|
+
subscribe: dict = {
|
|
207
|
+
'method': 'deals.subscribe',
|
|
208
|
+
'params': marketIds,
|
|
209
|
+
'id': self.milliseconds(),
|
|
210
|
+
}
|
|
211
|
+
query = self.extend(subscribe, params)
|
|
212
|
+
trades = await self.watch_multiple(url, messageHashes, query, messageHashes)
|
|
152
213
|
if self.newUpdates:
|
|
153
|
-
|
|
214
|
+
first = self.safe_value(trades, 0)
|
|
215
|
+
tradeSymbol = self.safe_string(first, 'symbol')
|
|
216
|
+
limit = trades.getLimit(tradeSymbol, limit)
|
|
154
217
|
return self.filter_by_since_limit(trades, since, limit, 'timestamp', True)
|
|
155
218
|
|
|
156
219
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
157
220
|
"""
|
|
158
221
|
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
159
|
-
|
|
222
|
+
|
|
223
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#depth-of-market
|
|
224
|
+
|
|
160
225
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
161
226
|
:param int [limit]: 1-100, default=100
|
|
162
227
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -309,6 +374,7 @@ class p2b(ccxt.async_support.p2b):
|
|
|
309
374
|
else:
|
|
310
375
|
ticker = self.parse_ticker(tickerData, market)
|
|
311
376
|
symbol = ticker['symbol']
|
|
377
|
+
self.tickers[symbol] = ticker
|
|
312
378
|
messageHash = messageHashStart + '::' + symbol
|
|
313
379
|
client.resolve(ticker, messageHash)
|
|
314
380
|
return message
|
|
@@ -382,16 +448,16 @@ class p2b(ccxt.async_support.p2b):
|
|
|
382
448
|
if endpoint is not None:
|
|
383
449
|
endpoint(client, message)
|
|
384
450
|
|
|
385
|
-
def handle_error_message(self, client: Client, message):
|
|
451
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
|
386
452
|
error = self.safe_string(message, 'error')
|
|
387
453
|
if error is not None:
|
|
388
454
|
raise ExchangeError(self.id + ' error: ' + self.json(error))
|
|
389
455
|
return False
|
|
390
456
|
|
|
391
|
-
def ping(self, client):
|
|
457
|
+
def ping(self, client: Client):
|
|
392
458
|
"""
|
|
393
|
-
|
|
394
|
-
|
|
459
|
+
https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#ping
|
|
460
|
+
@param client
|
|
395
461
|
"""
|
|
396
462
|
return {
|
|
397
463
|
'method': 'server.ping',
|
|
@@ -412,8 +478,8 @@ class p2b(ccxt.async_support.p2b):
|
|
|
412
478
|
|
|
413
479
|
def on_error(self, client: Client, error):
|
|
414
480
|
self.options['tickerSubs'] = self.create_safe_dictionary()
|
|
415
|
-
self.on_error(client, error)
|
|
481
|
+
super(p2b, self).on_error(client, error)
|
|
416
482
|
|
|
417
483
|
def on_close(self, client: Client, error):
|
|
418
484
|
self.options['tickerSubs'] = self.create_safe_dictionary()
|
|
419
|
-
self.on_close(client, error)
|
|
485
|
+
super(p2b, self).on_close(client, error)
|
ccxt/pro/paradex.py
CHANGED
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
import ccxt.async_support
|
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache
|
|
8
|
-
from ccxt.base.types import Int, OrderBook, Strings, Ticker, Tickers, Trade
|
|
8
|
+
from ccxt.base.types import Any, Bool, Int, OrderBook, Strings, Ticker, Tickers, Trade
|
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
|
10
10
|
from typing import List
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
class paradex(ccxt.async_support.paradex):
|
|
14
14
|
|
|
15
|
-
def describe(self):
|
|
15
|
+
def describe(self) -> Any:
|
|
16
16
|
return self.deep_extend(super(paradex, self).describe(), {
|
|
17
17
|
'has': {
|
|
18
18
|
'ws': True,
|
|
@@ -287,7 +287,7 @@ class paradex(ccxt.async_support.paradex):
|
|
|
287
287
|
client.resolve(ticker, messageHash)
|
|
288
288
|
return message
|
|
289
289
|
|
|
290
|
-
def handle_error_message(self, client: Client, message):
|
|
290
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
|
291
291
|
#
|
|
292
292
|
# {
|
|
293
293
|
# "jsonrpc": "2.0",
|
ccxt/pro/phemex.py
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import ccxt.async_support
|
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
|
|
8
8
|
import hashlib
|
|
9
|
-
from ccxt.base.types import Balances, Int, Order, OrderBook, Str, Ticker, Trade
|
|
9
|
+
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
|
10
10
|
from ccxt.async_support.base.ws.client import Client
|
|
11
11
|
from typing import List
|
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
|
@@ -15,12 +15,12 @@ from ccxt.base.precise import Precise
|
|
|
15
15
|
|
|
16
16
|
class phemex(ccxt.async_support.phemex):
|
|
17
17
|
|
|
18
|
-
def describe(self):
|
|
18
|
+
def describe(self) -> Any:
|
|
19
19
|
return self.deep_extend(super(phemex, self).describe(), {
|
|
20
20
|
'has': {
|
|
21
21
|
'ws': True,
|
|
22
22
|
'watchTicker': True,
|
|
23
|
-
'watchTickers':
|
|
23
|
+
'watchTickers': True,
|
|
24
24
|
'watchTrades': True,
|
|
25
25
|
'watchMyTrades': True,
|
|
26
26
|
'watchOrders': True,
|
|
@@ -31,6 +31,7 @@ class phemex(ccxt.async_support.phemex):
|
|
|
31
31
|
'watchOrderBookForSymbols': False,
|
|
32
32
|
'watchTradesForSymbols': False,
|
|
33
33
|
'watchOHLCVForSymbols': False,
|
|
34
|
+
'watchBalance': True,
|
|
34
35
|
},
|
|
35
36
|
'urls': {
|
|
36
37
|
'test': {
|
|
@@ -45,7 +46,7 @@ class phemex(ccxt.async_support.phemex):
|
|
|
45
46
|
'OHLCVLimit': 1000,
|
|
46
47
|
},
|
|
47
48
|
'streaming': {
|
|
48
|
-
'keepAlive':
|
|
49
|
+
'keepAlive': 9000,
|
|
49
50
|
},
|
|
50
51
|
})
|
|
51
52
|
|
|
@@ -131,6 +132,8 @@ class phemex(ccxt.async_support.phemex):
|
|
|
131
132
|
'average': average,
|
|
132
133
|
'baseVolume': baseVolume,
|
|
133
134
|
'quoteVolume': quoteVolume,
|
|
135
|
+
'markPrice': self.parse_number(self.from_ep(self.safe_string(ticker, 'markPrice'), market)),
|
|
136
|
+
'indexPrice': self.parse_number(self.from_ep(self.safe_string(ticker, 'indexPrice'), market)),
|
|
134
137
|
'info': ticker,
|
|
135
138
|
}
|
|
136
139
|
return result
|
|
@@ -291,9 +294,11 @@ class phemex(ccxt.async_support.phemex):
|
|
|
291
294
|
|
|
292
295
|
async def watch_balance(self, params={}) -> Balances:
|
|
293
296
|
"""
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
+
|
|
298
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#subscribe-account-order-position-aop
|
|
299
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#subscribe-account-order-position-aop
|
|
300
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#subscribe-wallet-order-messages
|
|
301
|
+
|
|
297
302
|
watch balance and get the amount of funds available for trading or funds locked in orders
|
|
298
303
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
299
304
|
:param str [params.settle]: set to USDT to use hedged perpetual api
|
|
@@ -475,9 +480,11 @@ class phemex(ccxt.async_support.phemex):
|
|
|
475
480
|
|
|
476
481
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
|
477
482
|
"""
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
483
|
+
|
|
484
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#subscribe-24-hours-ticker
|
|
485
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#subscribe-24-hours-ticker
|
|
486
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#subscribe-24-hours-ticker
|
|
487
|
+
|
|
481
488
|
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
482
489
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
483
490
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
@@ -503,11 +510,54 @@ class phemex(ccxt.async_support.phemex):
|
|
|
503
510
|
request = self.deep_extend(subscribe, params)
|
|
504
511
|
return await self.watch(url, messageHash, request, subscriptionHash)
|
|
505
512
|
|
|
513
|
+
async def watch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
|
514
|
+
"""
|
|
515
|
+
|
|
516
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#subscribe-24-hours-ticker
|
|
517
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#subscribe-24-hours-ticker
|
|
518
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#subscribe-24-hours-ticker
|
|
519
|
+
|
|
520
|
+
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
521
|
+
:param str[] [symbols]: unified symbol of the market to fetch the ticker for
|
|
522
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
523
|
+
:param str [params.channel]: the channel to subscribe to, tickers by default. Can be tickers, sprd-tickers, index-tickers, block-tickers
|
|
524
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
525
|
+
"""
|
|
526
|
+
await self.load_markets()
|
|
527
|
+
symbols = self.market_symbols(symbols, None, False)
|
|
528
|
+
first = symbols[0]
|
|
529
|
+
market = self.market(first)
|
|
530
|
+
isSwap = market['swap']
|
|
531
|
+
settleIsUSDT = market['settle'] == 'USDT'
|
|
532
|
+
name = 'spot_market24h'
|
|
533
|
+
if isSwap:
|
|
534
|
+
name = 'perp_market24h_pack_p' if settleIsUSDT else 'market24h'
|
|
535
|
+
url = self.urls['api']['ws']
|
|
536
|
+
requestId = self.request_id()
|
|
537
|
+
subscriptionHash = name + '.subscribe'
|
|
538
|
+
messageHashes = []
|
|
539
|
+
for i in range(0, len(symbols)):
|
|
540
|
+
messageHashes.append('ticker:' + symbols[i])
|
|
541
|
+
subscribe: dict = {
|
|
542
|
+
'method': subscriptionHash,
|
|
543
|
+
'id': requestId,
|
|
544
|
+
'params': [],
|
|
545
|
+
}
|
|
546
|
+
request = self.deep_extend(subscribe, params)
|
|
547
|
+
ticker = await self.watch_multiple(url, messageHashes, request, messageHashes)
|
|
548
|
+
if self.newUpdates:
|
|
549
|
+
result: dict = {}
|
|
550
|
+
result[ticker['symbol']] = ticker
|
|
551
|
+
return result
|
|
552
|
+
return self.filter_by_array(self.tickers, 'symbol', symbols)
|
|
553
|
+
|
|
506
554
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
|
507
555
|
"""
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
556
|
+
|
|
557
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#subscribe-trade
|
|
558
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#subscribe-trade
|
|
559
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#subscribe-trade
|
|
560
|
+
|
|
511
561
|
get the list of most recent trades for a particular symbol
|
|
512
562
|
:param str symbol: unified symbol of the market to fetch trades for
|
|
513
563
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
|
@@ -540,10 +590,12 @@ class phemex(ccxt.async_support.phemex):
|
|
|
540
590
|
|
|
541
591
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
|
542
592
|
"""
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
593
|
+
|
|
594
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#subscribe-orderbook
|
|
595
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#subscribe-orderbook-for-new-model
|
|
596
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#subscribe-30-levels-orderbook
|
|
597
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#subscribe-full-orderbook
|
|
598
|
+
|
|
547
599
|
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
548
600
|
:param str symbol: unified symbol of the market to fetch the order book for
|
|
549
601
|
:param int [limit]: the maximum amount of order book entries to return
|
|
@@ -573,9 +625,11 @@ class phemex(ccxt.async_support.phemex):
|
|
|
573
625
|
|
|
574
626
|
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
575
627
|
"""
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
628
|
+
|
|
629
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#subscribe-kline
|
|
630
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Contract-API-en.md#subscribe-kline
|
|
631
|
+
https://github.com/phemex/phemex-api-docs/blob/master/Public-Spot-API-en.md#subscribe-kline
|
|
632
|
+
|
|
579
633
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
580
634
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
581
635
|
:param str timeframe: the length of time each candle represents
|
|
@@ -697,7 +751,7 @@ class phemex(ccxt.async_support.phemex):
|
|
|
697
751
|
:param int [since]: the earliest time in ms to fetch trades for
|
|
698
752
|
:param int [limit]: the maximum number of trade structures to retrieve
|
|
699
753
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
700
|
-
:returns dict[]: a list of
|
|
754
|
+
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
|
701
755
|
"""
|
|
702
756
|
await self.load_markets()
|
|
703
757
|
market = None
|