ccxt 4.2.77__py2.py3-none-any.whl → 4.4.49__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 +36 -14
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +112 -48
- ccxt/abstract/binancecoinm.py +112 -48
- ccxt/abstract/binanceus.py +147 -83
- ccxt/abstract/binanceusdm.py +112 -48
- ccxt/abstract/bingx.py +133 -78
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitfinex1.py +69 -0
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +8 -1
- ccxt/abstract/bitmart.py +13 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitpanda.py +0 -12
- ccxt/abstract/bitrue.py +3 -3
- ccxt/abstract/bitstamp.py +26 -3
- ccxt/abstract/blofin.py +24 -0
- ccxt/abstract/btcbox.py +1 -0
- ccxt/abstract/bybit.py +29 -14
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbase.py +6 -0
- ccxt/abstract/coinbaseadvanced.py +94 -0
- ccxt/abstract/{coinbasepro.py → coinbaseexchange.py} +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/coincatch.py +94 -0
- ccxt/abstract/coinex.py +233 -123
- ccxt/abstract/coinmetro.py +1 -0
- ccxt/abstract/cryptocom.py +14 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/gate.py +20 -0
- ccxt/abstract/gateio.py +20 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hashkey.py +67 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +4 -3
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +24 -0
- ccxt/abstract/kucoinfutures.py +34 -0
- ccxt/abstract/luno.py +2 -0
- ccxt/abstract/mexc.py +4 -0
- ccxt/abstract/myokx.py +340 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +30 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/oxfun.py +34 -0
- ccxt/abstract/paradex.py +40 -0
- ccxt/abstract/phemex.py +1 -0
- ccxt/abstract/upbit.py +4 -0
- ccxt/abstract/vertex.py +19 -0
- ccxt/abstract/whitebit.py +31 -1
- ccxt/abstract/woo.py +6 -2
- ccxt/abstract/woofipro.py +119 -0
- ccxt/abstract/xt.py +153 -0
- ccxt/abstract/zonda.py +6 -0
- ccxt/ace.py +164 -60
- ccxt/alpaca.py +727 -63
- ccxt/ascendex.py +395 -249
- ccxt/async_support/__init__.py +36 -14
- ccxt/async_support/ace.py +164 -60
- ccxt/async_support/alpaca.py +727 -63
- ccxt/async_support/ascendex.py +396 -249
- ccxt/async_support/base/exchange.py +531 -155
- ccxt/async_support/base/ws/aiohttp_client.py +28 -5
- ccxt/async_support/base/ws/cache.py +3 -2
- ccxt/async_support/base/ws/client.py +26 -5
- ccxt/async_support/base/ws/fast_client.py +4 -3
- ccxt/async_support/base/ws/functions.py +1 -1
- ccxt/async_support/base/ws/future.py +40 -31
- ccxt/async_support/base/ws/order_book_side.py +3 -0
- ccxt/async_support/bequant.py +1 -1
- ccxt/async_support/bigone.py +329 -202
- ccxt/async_support/binance.py +3030 -1087
- ccxt/async_support/binancecoinm.py +2 -1
- ccxt/async_support/binanceus.py +12 -1
- ccxt/async_support/binanceusdm.py +3 -1
- ccxt/async_support/bingx.py +3205 -937
- ccxt/async_support/bit2c.py +119 -38
- ccxt/async_support/bitbank.py +215 -76
- ccxt/async_support/bitbns.py +124 -53
- ccxt/async_support/bitfinex.py +3236 -1078
- ccxt/async_support/bitfinex1.py +1711 -0
- ccxt/async_support/bitflyer.py +238 -49
- ccxt/async_support/bitget.py +1525 -573
- ccxt/async_support/bithumb.py +199 -65
- ccxt/async_support/bitmart.py +1320 -435
- ccxt/async_support/bitmex.py +308 -111
- ccxt/async_support/bitopro.py +256 -96
- ccxt/async_support/bitrue.py +365 -233
- ccxt/async_support/bitso.py +201 -89
- ccxt/async_support/bitstamp.py +438 -269
- ccxt/async_support/bitteam.py +179 -73
- ccxt/async_support/bitvavo.py +180 -70
- ccxt/async_support/bl3p.py +92 -25
- ccxt/async_support/blockchaincom.py +193 -79
- ccxt/async_support/blofin.py +392 -148
- ccxt/async_support/btcalpha.py +161 -55
- ccxt/async_support/btcbox.py +250 -34
- ccxt/async_support/btcmarkets.py +232 -85
- ccxt/async_support/btcturk.py +159 -60
- ccxt/async_support/bybit.py +2231 -1193
- ccxt/async_support/cex.py +1409 -1329
- ccxt/async_support/coinbase.py +1454 -287
- ccxt/async_support/coinbaseadvanced.py +17 -0
- ccxt/async_support/{coinbasepro.py → coinbaseexchange.py} +233 -99
- ccxt/async_support/coinbaseinternational.py +428 -88
- ccxt/async_support/coincatch.py +5152 -0
- ccxt/async_support/coincheck.py +121 -38
- ccxt/async_support/coinex.py +4020 -3339
- ccxt/async_support/coinlist.py +273 -116
- ccxt/async_support/coinmate.py +204 -97
- ccxt/async_support/coinmetro.py +203 -110
- ccxt/async_support/coinone.py +142 -68
- ccxt/async_support/coinsph.py +223 -97
- ccxt/async_support/coinspot.py +137 -62
- ccxt/async_support/cryptocom.py +515 -185
- ccxt/async_support/currencycom.py +203 -85
- ccxt/async_support/defx.py +2066 -0
- ccxt/async_support/delta.py +404 -109
- ccxt/async_support/deribit.py +639 -323
- ccxt/async_support/digifinex.py +465 -233
- ccxt/async_support/ellipx.py +1887 -0
- ccxt/async_support/exmo.py +317 -128
- ccxt/async_support/gate.py +1472 -463
- ccxt/async_support/gemini.py +206 -84
- ccxt/async_support/hashkey.py +4164 -0
- ccxt/async_support/hitbtc.py +433 -178
- ccxt/async_support/hollaex.py +207 -83
- ccxt/async_support/htx.py +1095 -563
- ccxt/async_support/huobijp.py +178 -56
- ccxt/async_support/hyperliquid.py +1678 -292
- ccxt/async_support/idex.py +219 -95
- ccxt/async_support/independentreserve.py +300 -31
- ccxt/async_support/indodax.py +226 -62
- ccxt/async_support/kraken.py +871 -354
- ccxt/async_support/krakenfutures.py +324 -100
- ccxt/async_support/kucoin.py +917 -357
- ccxt/async_support/kucoinfutures.py +1004 -149
- ccxt/async_support/kuna.py +198 -107
- ccxt/async_support/latoken.py +199 -79
- ccxt/async_support/lbank.py +360 -113
- ccxt/async_support/luno.py +185 -62
- ccxt/async_support/lykke.py +168 -55
- ccxt/async_support/mercado.py +101 -29
- ccxt/async_support/mexc.py +995 -429
- ccxt/async_support/myokx.py +53 -0
- ccxt/async_support/ndax.py +234 -82
- ccxt/async_support/novadax.py +195 -75
- ccxt/async_support/oceanex.py +244 -59
- ccxt/async_support/okcoin.py +301 -165
- ccxt/async_support/okx.py +1776 -454
- ccxt/async_support/onetrading.py +198 -414
- ccxt/async_support/oxfun.py +2898 -0
- ccxt/async_support/p2b.py +142 -52
- ccxt/async_support/paradex.py +2085 -0
- ccxt/async_support/paymium.py +56 -32
- ccxt/async_support/phemex.py +572 -196
- ccxt/async_support/poloniex.py +218 -95
- ccxt/async_support/poloniexfutures.py +260 -92
- ccxt/async_support/probit.py +143 -110
- ccxt/async_support/timex.py +123 -70
- ccxt/async_support/tokocrypto.py +129 -93
- ccxt/async_support/tradeogre.py +39 -25
- ccxt/async_support/upbit.py +322 -113
- ccxt/async_support/vertex.py +2983 -0
- ccxt/async_support/wavesexchange.py +227 -173
- ccxt/async_support/wazirx.py +145 -65
- ccxt/async_support/whitebit.py +533 -138
- ccxt/async_support/woo.py +1137 -296
- ccxt/async_support/woofipro.py +2716 -0
- ccxt/async_support/xt.py +4628 -0
- ccxt/async_support/yobit.py +160 -92
- ccxt/async_support/zaif.py +80 -33
- ccxt/async_support/zonda.py +140 -69
- ccxt/base/errors.py +51 -20
- ccxt/base/exchange.py +1722 -480
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +223 -4
- ccxt/bequant.py +1 -1
- ccxt/bigone.py +329 -202
- ccxt/binance.py +3030 -1087
- ccxt/binancecoinm.py +2 -1
- ccxt/binanceus.py +12 -1
- ccxt/binanceusdm.py +3 -1
- ccxt/bingx.py +3205 -937
- ccxt/bit2c.py +119 -38
- ccxt/bitbank.py +215 -76
- ccxt/bitbns.py +124 -53
- ccxt/bitfinex.py +3235 -1078
- ccxt/bitfinex1.py +1710 -0
- ccxt/bitflyer.py +238 -49
- ccxt/bitget.py +1525 -573
- ccxt/bithumb.py +198 -65
- ccxt/bitmart.py +1320 -435
- ccxt/bitmex.py +308 -111
- ccxt/bitopro.py +256 -96
- ccxt/bitrue.py +365 -233
- ccxt/bitso.py +201 -89
- ccxt/bitstamp.py +438 -269
- ccxt/bitteam.py +179 -73
- ccxt/bitvavo.py +180 -70
- ccxt/bl3p.py +92 -25
- ccxt/blockchaincom.py +193 -79
- ccxt/blofin.py +392 -148
- ccxt/btcalpha.py +161 -55
- ccxt/btcbox.py +250 -34
- ccxt/btcmarkets.py +232 -85
- ccxt/btcturk.py +159 -60
- ccxt/bybit.py +2231 -1193
- ccxt/cex.py +1408 -1329
- ccxt/coinbase.py +1454 -287
- ccxt/coinbaseadvanced.py +17 -0
- ccxt/{coinbasepro.py → coinbaseexchange.py} +233 -99
- ccxt/coinbaseinternational.py +428 -88
- ccxt/coincatch.py +5152 -0
- ccxt/coincheck.py +121 -38
- ccxt/coinex.py +4020 -3339
- ccxt/coinlist.py +273 -116
- ccxt/coinmate.py +204 -97
- ccxt/coinmetro.py +203 -110
- ccxt/coinone.py +142 -68
- ccxt/coinsph.py +223 -97
- ccxt/coinspot.py +137 -62
- ccxt/cryptocom.py +515 -185
- ccxt/currencycom.py +203 -85
- ccxt/defx.py +2065 -0
- ccxt/delta.py +404 -109
- ccxt/deribit.py +639 -323
- ccxt/digifinex.py +465 -233
- ccxt/ellipx.py +1887 -0
- ccxt/exmo.py +317 -128
- ccxt/gate.py +1472 -463
- ccxt/gemini.py +206 -84
- ccxt/hashkey.py +4164 -0
- ccxt/hitbtc.py +433 -178
- ccxt/hollaex.py +207 -83
- ccxt/htx.py +1095 -563
- ccxt/huobijp.py +178 -56
- ccxt/hyperliquid.py +1677 -292
- ccxt/idex.py +219 -95
- ccxt/independentreserve.py +299 -31
- ccxt/indodax.py +226 -62
- ccxt/kraken.py +871 -354
- ccxt/krakenfutures.py +324 -100
- ccxt/kucoin.py +917 -357
- ccxt/kucoinfutures.py +1004 -149
- ccxt/kuna.py +198 -107
- ccxt/latoken.py +199 -79
- ccxt/lbank.py +360 -113
- ccxt/luno.py +185 -62
- ccxt/lykke.py +168 -55
- ccxt/mercado.py +101 -29
- ccxt/mexc.py +994 -429
- ccxt/myokx.py +53 -0
- ccxt/ndax.py +234 -82
- ccxt/novadax.py +195 -75
- ccxt/oceanex.py +244 -59
- ccxt/okcoin.py +301 -165
- ccxt/okx.py +1776 -454
- ccxt/onetrading.py +198 -414
- ccxt/oxfun.py +2897 -0
- ccxt/p2b.py +142 -52
- ccxt/paradex.py +2085 -0
- ccxt/paymium.py +56 -32
- ccxt/phemex.py +572 -196
- ccxt/poloniex.py +218 -95
- ccxt/poloniexfutures.py +260 -92
- ccxt/pro/__init__.py +29 -5
- ccxt/pro/alpaca.py +32 -17
- ccxt/pro/ascendex.py +62 -14
- ccxt/pro/bequant.py +4 -0
- ccxt/pro/binance.py +1596 -329
- ccxt/pro/binancecoinm.py +1 -0
- ccxt/pro/binanceus.py +2 -9
- ccxt/pro/binanceusdm.py +2 -0
- ccxt/pro/bingx.py +527 -134
- ccxt/pro/bitcoincom.py +4 -1
- ccxt/pro/bitfinex.py +731 -266
- ccxt/pro/bitfinex1.py +635 -0
- ccxt/pro/bitget.py +726 -357
- ccxt/pro/bithumb.py +380 -0
- ccxt/pro/bitmart.py +143 -39
- ccxt/pro/bitmex.py +199 -40
- ccxt/pro/bitopro.py +25 -13
- ccxt/pro/bitrue.py +31 -32
- ccxt/pro/bitstamp.py +7 -6
- ccxt/pro/bitvavo.py +203 -81
- ccxt/pro/blockchaincom.py +30 -17
- ccxt/pro/blofin.py +692 -0
- ccxt/pro/bybit.py +791 -82
- ccxt/pro/cex.py +99 -51
- ccxt/pro/coinbase.py +220 -30
- ccxt/{async_support/hitbtc3.py → pro/coinbaseadvanced.py} +5 -5
- ccxt/pro/{coinbasepro.py → coinbaseexchange.py} +19 -19
- ccxt/pro/coinbaseinternational.py +193 -30
- ccxt/pro/coincatch.py +1464 -0
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +965 -665
- ccxt/pro/coinone.py +17 -10
- ccxt/pro/cryptocom.py +446 -66
- ccxt/pro/currencycom.py +11 -10
- ccxt/pro/defx.py +832 -0
- ccxt/pro/deribit.py +167 -31
- ccxt/pro/exmo.py +252 -20
- ccxt/pro/gate.py +729 -64
- ccxt/pro/gemini.py +44 -26
- ccxt/pro/hashkey.py +802 -0
- ccxt/pro/hitbtc.py +208 -103
- ccxt/pro/hollaex.py +25 -9
- ccxt/pro/htx.py +83 -39
- ccxt/pro/huobijp.py +17 -16
- ccxt/pro/hyperliquid.py +502 -31
- ccxt/pro/idex.py +28 -13
- ccxt/pro/independentreserve.py +21 -16
- ccxt/pro/kraken.py +298 -51
- ccxt/pro/krakenfutures.py +166 -75
- ccxt/pro/kucoin.py +395 -77
- ccxt/pro/kucoinfutures.py +400 -99
- ccxt/pro/lbank.py +52 -31
- ccxt/pro/luno.py +12 -10
- ccxt/pro/mexc.py +400 -50
- ccxt/pro/myokx.py +28 -0
- ccxt/pro/ndax.py +25 -12
- ccxt/pro/okcoin.py +28 -9
- ccxt/pro/okx.py +935 -124
- ccxt/pro/onetrading.py +41 -24
- ccxt/pro/oxfun.py +1054 -0
- ccxt/pro/p2b.py +100 -24
- ccxt/pro/paradex.py +352 -0
- ccxt/pro/phemex.py +92 -33
- ccxt/pro/poloniex.py +128 -49
- ccxt/pro/poloniexfutures.py +53 -32
- ccxt/pro/probit.py +92 -85
- ccxt/pro/upbit.py +401 -8
- ccxt/pro/vertex.py +943 -0
- ccxt/pro/wazirx.py +46 -28
- ccxt/pro/whitebit.py +65 -12
- ccxt/pro/woo.py +437 -65
- ccxt/pro/woofipro.py +1271 -0
- ccxt/pro/xt.py +1067 -0
- ccxt/probit.py +143 -110
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/__init__.py +38 -0
- ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
- ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
- ccxt/static_dependencies/lark/ast_utils.py +59 -0
- ccxt/static_dependencies/lark/common.py +86 -0
- ccxt/static_dependencies/lark/exceptions.py +292 -0
- ccxt/static_dependencies/lark/grammar.py +130 -0
- ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
- ccxt/static_dependencies/lark/indenter.py +143 -0
- ccxt/static_dependencies/lark/lark.py +658 -0
- ccxt/static_dependencies/lark/lexer.py +678 -0
- ccxt/static_dependencies/lark/load_grammar.py +1428 -0
- ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
- ccxt/static_dependencies/lark/parser_frontends.py +257 -0
- ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
- ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
- ccxt/static_dependencies/lark/parsers/earley.py +314 -0
- ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
- ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
- ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
- ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
- ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
- ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
- ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
- ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/lark/reconstruct.py +107 -0
- ccxt/static_dependencies/lark/tools/__init__.py +70 -0
- ccxt/static_dependencies/lark/tools/nearley.py +202 -0
- ccxt/static_dependencies/lark/tools/serialize.py +32 -0
- ccxt/static_dependencies/lark/tools/standalone.py +196 -0
- ccxt/static_dependencies/lark/tree.py +267 -0
- ccxt/static_dependencies/lark/tree_matcher.py +186 -0
- ccxt/static_dependencies/lark/tree_templates.py +180 -0
- ccxt/static_dependencies/lark/utils.py +343 -0
- ccxt/static_dependencies/lark/visitors.py +596 -0
- ccxt/static_dependencies/marshmallow/__init__.py +81 -0
- ccxt/static_dependencies/marshmallow/base.py +65 -0
- ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
- ccxt/static_dependencies/marshmallow/decorators.py +231 -0
- ccxt/static_dependencies/marshmallow/error_store.py +60 -0
- ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
- ccxt/static_dependencies/marshmallow/fields.py +2114 -0
- ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/schema.py +1228 -0
- ccxt/static_dependencies/marshmallow/types.py +12 -0
- ccxt/static_dependencies/marshmallow/utils.py +378 -0
- ccxt/static_dependencies/marshmallow/validate.py +678 -0
- ccxt/static_dependencies/marshmallow/warnings.py +2 -0
- ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
- ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
- ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
- ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
- ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
- ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
- ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/static_dependencies/starknet/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
- ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
- ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
- ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
- ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
- ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
- ccxt/static_dependencies/starknet/common.py +15 -0
- ccxt/static_dependencies/starknet/constants.py +39 -0
- ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
- ccxt/static_dependencies/starknet/hash/address.py +79 -0
- ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
- ccxt/static_dependencies/starknet/hash/selector.py +16 -0
- ccxt/static_dependencies/starknet/hash/storage.py +12 -0
- ccxt/static_dependencies/starknet/hash/utils.py +78 -0
- ccxt/static_dependencies/starknet/models/__init__.py +0 -0
- ccxt/static_dependencies/starknet/models/typed_data.py +45 -0
- ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
- ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
- ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
- ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
- ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
- ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
- ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
- ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
- ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
- ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
- ccxt/static_dependencies/starknet/utils/schema.py +13 -0
- ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
- ccxt/static_dependencies/starkware/__init__.py +0 -0
- ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
- ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +50 -0
- ccxt/static_dependencies/starkware/crypto/math_utils.py +78 -0
- ccxt/static_dependencies/starkware/crypto/signature.py +2344 -0
- ccxt/static_dependencies/starkware/crypto/utils.py +63 -0
- ccxt/static_dependencies/sympy/__init__.py +0 -0
- ccxt/static_dependencies/sympy/core/__init__.py +0 -0
- ccxt/static_dependencies/sympy/core/intfunc.py +35 -0
- ccxt/static_dependencies/sympy/external/__init__.py +0 -0
- ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
- ccxt/static_dependencies/sympy/external/importtools.py +187 -0
- ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
- ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
- ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
- ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
- ccxt/test/{test_async.py → tests_async.py} +456 -391
- ccxt/test/tests_helpers.py +285 -0
- ccxt/test/tests_init.py +39 -0
- ccxt/test/{test_sync.py → tests_sync.py} +456 -393
- ccxt/timex.py +123 -70
- ccxt/tokocrypto.py +129 -93
- ccxt/tradeogre.py +39 -25
- ccxt/upbit.py +322 -113
- ccxt/vertex.py +2983 -0
- ccxt/wavesexchange.py +227 -173
- ccxt/wazirx.py +145 -65
- ccxt/whitebit.py +533 -138
- ccxt/woo.py +1137 -296
- ccxt/woofipro.py +2716 -0
- ccxt/xt.py +4627 -0
- ccxt/yobit.py +159 -92
- ccxt/zaif.py +80 -33
- ccxt/zonda.py +140 -69
- ccxt-4.4.49.dist-info/LICENSE.txt +21 -0
- ccxt-4.4.49.dist-info/METADATA +646 -0
- ccxt-4.4.49.dist-info/RECORD +669 -0
- {ccxt-4.2.77.dist-info → ccxt-4.4.49.dist-info}/WHEEL +1 -1
- ccxt/abstract/bitbay.py +0 -47
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3496
- ccxt/async_support/flowbtc.py +0 -34
- ccxt/bitbay.py +0 -17
- ccxt/bitfinex2.py +0 -3496
- ccxt/flowbtc.py +0 -34
- ccxt/hitbtc3.py +0 -16
- ccxt/pro/bitfinex2.py +0 -1081
- ccxt/test/base/__init__.py +0 -28
- 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 -103
- 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 -32
- 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_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -190
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -32
- 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 -63
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -345
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -86
- 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-4.2.77.dist-info/METADATA +0 -626
- ccxt-4.2.77.dist-info/RECORD +0 -534
- {ccxt-4.2.77.dist-info → ccxt-4.4.49.dist-info}/top_level.txt +0 -0
ccxt/pro/wazirx.py
CHANGED
@@ -22,6 +22,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
22
22
|
'watchTicker': True,
|
23
23
|
'watchTickers': True,
|
24
24
|
'watchTrades': True,
|
25
|
+
'watchTradesForSymbols': False,
|
25
26
|
'watchMyTrades': True,
|
26
27
|
'watchOrders': True,
|
27
28
|
'watchOrderBook': True,
|
@@ -50,7 +51,9 @@ class wazirx(ccxt.async_support.wazirx):
|
|
50
51
|
async def watch_balance(self, params={}) -> Balances:
|
51
52
|
"""
|
52
53
|
watch balance and get the amount of funds available for trading or funds locked in orders
|
53
|
-
|
54
|
+
|
55
|
+
https://docs.wazirx.com/#account-update
|
56
|
+
|
54
57
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
55
58
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
56
59
|
"""
|
@@ -58,7 +61,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
58
61
|
token = await self.authenticate(params)
|
59
62
|
messageHash = 'balance'
|
60
63
|
url = self.urls['api']['ws']
|
61
|
-
subscribe = {
|
64
|
+
subscribe: dict = {
|
62
65
|
'event': 'subscribe',
|
63
66
|
'streams': ['outboundAccountPosition'],
|
64
67
|
'auth_key': token,
|
@@ -166,7 +169,9 @@ class wazirx(ccxt.async_support.wazirx):
|
|
166
169
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
167
170
|
"""
|
168
171
|
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
169
|
-
|
172
|
+
|
173
|
+
https://docs.wazirx.com/#all-market-tickers-stream
|
174
|
+
|
170
175
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
171
176
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
172
177
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -177,7 +182,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
177
182
|
messageHash = 'ticker:' + market['symbol']
|
178
183
|
subscribeHash = 'tickers'
|
179
184
|
stream = '!' + 'ticker@arr'
|
180
|
-
subscribe = {
|
185
|
+
subscribe: dict = {
|
181
186
|
'event': 'subscribe',
|
182
187
|
'streams': [stream],
|
183
188
|
}
|
@@ -187,7 +192,9 @@ class wazirx(ccxt.async_support.wazirx):
|
|
187
192
|
async def watch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
188
193
|
"""
|
189
194
|
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
190
|
-
|
195
|
+
|
196
|
+
https://docs.wazirx.com/#all-market-tickers-stream
|
197
|
+
|
191
198
|
:param str[] symbols: unified symbol of the market to fetch the ticker for
|
192
199
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
193
200
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -197,7 +204,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
197
204
|
url = self.urls['api']['ws']
|
198
205
|
messageHash = 'tickers'
|
199
206
|
stream = '!' + 'ticker@arr'
|
200
|
-
subscribe = {
|
207
|
+
subscribe: dict = {
|
201
208
|
'event': 'subscribe',
|
202
209
|
'streams': [stream],
|
203
210
|
}
|
@@ -283,6 +290,9 @@ class wazirx(ccxt.async_support.wazirx):
|
|
283
290
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
284
291
|
"""
|
285
292
|
get the list of most recent trades for a particular symbol
|
293
|
+
|
294
|
+
https://docs.wazirx.com/#trade-streams
|
295
|
+
|
286
296
|
:param str symbol: unified symbol of the market to fetch trades for
|
287
297
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
288
298
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -294,7 +304,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
294
304
|
symbol = market['symbol']
|
295
305
|
messageHash = market['id'] + '@trades'
|
296
306
|
url = self.urls['api']['ws']
|
297
|
-
message = {
|
307
|
+
message: dict = {
|
298
308
|
'event': 'subscribe',
|
299
309
|
'streams': [messageHash],
|
300
310
|
}
|
@@ -343,7 +353,9 @@ class wazirx(ccxt.async_support.wazirx):
|
|
343
353
|
async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
344
354
|
"""
|
345
355
|
watch trades by user
|
346
|
-
|
356
|
+
|
357
|
+
https://docs.wazirx.com/#trade-update
|
358
|
+
|
347
359
|
:param str symbol: unified symbol of the market to fetch trades for
|
348
360
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
349
361
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -357,7 +369,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
357
369
|
symbol = market['symbol']
|
358
370
|
url = self.urls['api']['ws']
|
359
371
|
messageHash = 'myTrades'
|
360
|
-
message = {
|
372
|
+
message: dict = {
|
361
373
|
'event': 'subscribe',
|
362
374
|
'streams': ['ownTrade'],
|
363
375
|
'auth_key': token,
|
@@ -371,6 +383,9 @@ class wazirx(ccxt.async_support.wazirx):
|
|
371
383
|
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
372
384
|
"""
|
373
385
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
386
|
+
|
387
|
+
https://docs.wazirx.com/#kline-candlestick-stream
|
388
|
+
|
374
389
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
375
390
|
:param str timeframe: the length of time each candle represents
|
376
391
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -384,7 +399,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
384
399
|
url = self.urls['api']['ws']
|
385
400
|
messageHash = 'ohlcv:' + symbol + ':' + timeframe
|
386
401
|
stream = market['id'] + '@kline_' + timeframe
|
387
|
-
message = {
|
402
|
+
message: dict = {
|
388
403
|
'event': 'subscribe',
|
389
404
|
'streams': [stream],
|
390
405
|
}
|
@@ -455,7 +470,9 @@ class wazirx(ccxt.async_support.wazirx):
|
|
455
470
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
456
471
|
"""
|
457
472
|
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
458
|
-
|
473
|
+
|
474
|
+
https://docs.wazirx.com/#depth-stream
|
475
|
+
|
459
476
|
:param str symbol: unified symbol of the market to fetch the order book for
|
460
477
|
:param int [limit]: the maximum amount of order book entries to return
|
461
478
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -467,7 +484,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
467
484
|
url = self.urls['api']['ws']
|
468
485
|
messageHash = 'orderbook:' + symbol
|
469
486
|
stream = market['id'] + '@depth'
|
470
|
-
subscribe = {
|
487
|
+
subscribe: dict = {
|
471
488
|
'event': 'subscribe',
|
472
489
|
'streams': [stream],
|
473
490
|
}
|
@@ -505,20 +522,20 @@ class wazirx(ccxt.async_support.wazirx):
|
|
505
522
|
market = self.safe_market(marketId)
|
506
523
|
symbol = market['symbol']
|
507
524
|
messageHash = 'orderbook:' + symbol
|
508
|
-
currentOrderBook = self.safe_value(self.orderbooks, symbol)
|
509
|
-
if
|
525
|
+
# currentOrderBook = self.safe_value(self.orderbooks, symbol)
|
526
|
+
if not (symbol in self.orderbooks):
|
510
527
|
snapshot = self.parse_order_book(data, symbol, timestamp, 'b', 'a')
|
511
|
-
|
512
|
-
self.orderbooks[symbol] = orderBook
|
528
|
+
self.orderbooks[symbol] = self.order_book(snapshot)
|
513
529
|
else:
|
514
|
-
|
515
|
-
|
516
|
-
self.
|
517
|
-
self.handle_deltas(
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
530
|
+
orderbook = self.orderbooks[symbol]
|
531
|
+
asks = self.safe_list(data, 'a', [])
|
532
|
+
bids = self.safe_list(data, 'b', [])
|
533
|
+
self.handle_deltas(orderbook['asks'], asks)
|
534
|
+
self.handle_deltas(orderbook['bids'], bids)
|
535
|
+
orderbook['nonce'] = timestamp
|
536
|
+
orderbook['timestamp'] = timestamp
|
537
|
+
orderbook['datetime'] = self.iso8601(timestamp)
|
538
|
+
self.orderbooks[symbol] = orderbook
|
522
539
|
client.resolve(self.orderbooks[symbol], messageHash)
|
523
540
|
|
524
541
|
async def watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
@@ -528,7 +545,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
528
545
|
symbol = market['symbol']
|
529
546
|
token = await self.authenticate(params)
|
530
547
|
messageHash = 'orders'
|
531
|
-
message = {
|
548
|
+
message: dict = {
|
532
549
|
'event': 'subscribe',
|
533
550
|
'streams': ['orderUpdate'],
|
534
551
|
'auth_key': token,
|
@@ -701,7 +718,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
701
718
|
self.handle_error(client, message)
|
702
719
|
return
|
703
720
|
event = self.safe_string(message, 'event')
|
704
|
-
eventHandlers = {
|
721
|
+
eventHandlers: dict = {
|
705
722
|
'error': self.handle_error,
|
706
723
|
'connected': self.handle_connected,
|
707
724
|
'subscribed': self.handle_subscribed,
|
@@ -711,7 +728,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
711
728
|
eventHandler(client, message)
|
712
729
|
return
|
713
730
|
stream = self.safe_string(message, 'stream', '')
|
714
|
-
streamHandlers = {
|
731
|
+
streamHandlers: dict = {
|
715
732
|
'ticker@arr': self.handle_ticker,
|
716
733
|
'@depth': self.handle_order_book,
|
717
734
|
'@kline': self.handle_ohlcv,
|
@@ -722,7 +739,8 @@ class wazirx(ccxt.async_support.wazirx):
|
|
722
739
|
}
|
723
740
|
streams = list(streamHandlers.keys())
|
724
741
|
for i in range(0, len(streams)):
|
725
|
-
|
742
|
+
streamContains = stream.find(streams[i]) > -1
|
743
|
+
if streamContains:
|
726
744
|
handler = streamHandlers[streams[i]]
|
727
745
|
handler(client, message)
|
728
746
|
return
|
ccxt/pro/whitebit.py
CHANGED
@@ -5,12 +5,12 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
|
8
|
-
from ccxt.base.types import Balances, Int, Order, OrderBook, Str, Ticker, Trade
|
8
|
+
from ccxt.base.types import Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
|
+
from ccxt.base.errors import AuthenticationError
|
11
12
|
from ccxt.base.errors import ArgumentsRequired
|
12
13
|
from ccxt.base.errors import BadRequest
|
13
|
-
from ccxt.base.errors import AuthenticationError
|
14
14
|
from ccxt.base.precise import Precise
|
15
15
|
|
16
16
|
|
@@ -26,7 +26,9 @@ class whitebit(ccxt.async_support.whitebit):
|
|
26
26
|
'watchOrderBook': True,
|
27
27
|
'watchOrders': True,
|
28
28
|
'watchTicker': True,
|
29
|
+
'watchTickers': True,
|
29
30
|
'watchTrades': True,
|
31
|
+
'watchTradesForSymbols': False,
|
30
32
|
},
|
31
33
|
'urls': {
|
32
34
|
'api': {
|
@@ -67,6 +69,9 @@ class whitebit(ccxt.async_support.whitebit):
|
|
67
69
|
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
68
70
|
"""
|
69
71
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
72
|
+
|
73
|
+
https://docs.whitebit.com/public/websocket/#kline
|
74
|
+
|
70
75
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
71
76
|
:param str timeframe: the length of time each candle represents
|
72
77
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -135,6 +140,9 @@ class whitebit(ccxt.async_support.whitebit):
|
|
135
140
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
136
141
|
"""
|
137
142
|
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
143
|
+
|
144
|
+
https://docs.whitebit.com/public/websocket/#market-depth
|
145
|
+
|
138
146
|
:param str symbol: unified symbol of the market to fetch the order book for
|
139
147
|
:param int [limit]: the maximum amount of order book entries to return
|
140
148
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -233,6 +241,9 @@ class whitebit(ccxt.async_support.whitebit):
|
|
233
241
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
234
242
|
"""
|
235
243
|
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
244
|
+
|
245
|
+
https://docs.whitebit.com/public/websocket/#market-statistics
|
246
|
+
|
236
247
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
237
248
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
238
249
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -245,6 +256,35 @@ class whitebit(ccxt.async_support.whitebit):
|
|
245
256
|
# every time we want to subscribe to another market we have to "re-subscribe" sending it all again
|
246
257
|
return await self.watch_multiple_subscription(messageHash, method, symbol, False, params)
|
247
258
|
|
259
|
+
async def watch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
260
|
+
"""
|
261
|
+
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
262
|
+
|
263
|
+
https://docs.whitebit.com/public/websocket/#market-statistics
|
264
|
+
|
265
|
+
:param str[] [symbols]: unified symbol of the market to fetch the ticker for
|
266
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
267
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
268
|
+
"""
|
269
|
+
await self.load_markets()
|
270
|
+
symbols = self.market_symbols(symbols, None, False)
|
271
|
+
method = 'market_subscribe'
|
272
|
+
url = self.urls['api']['ws']
|
273
|
+
id = self.nonce()
|
274
|
+
messageHashes = []
|
275
|
+
args = []
|
276
|
+
for i in range(0, len(symbols)):
|
277
|
+
market = self.market(symbols[i])
|
278
|
+
messageHashes.append('ticker:' + market['symbol'])
|
279
|
+
args.append(market['id'])
|
280
|
+
request: dict = {
|
281
|
+
'id': id,
|
282
|
+
'method': method,
|
283
|
+
'params': args,
|
284
|
+
}
|
285
|
+
await self.watch_multiple(url, messageHashes, self.extend(request, params), messageHashes)
|
286
|
+
return self.filter_by_array(self.tickers, 'symbol', symbols)
|
287
|
+
|
248
288
|
def handle_ticker(self, client: Client, message):
|
249
289
|
#
|
250
290
|
# {
|
@@ -295,6 +335,9 @@ class whitebit(ccxt.async_support.whitebit):
|
|
295
335
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
296
336
|
"""
|
297
337
|
get the list of most recent trades for a particular symbol
|
338
|
+
|
339
|
+
https://docs.whitebit.com/public/websocket/#market-trades
|
340
|
+
|
298
341
|
:param str symbol: unified symbol of the market to fetch trades for
|
299
342
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
300
343
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -356,6 +399,9 @@ class whitebit(ccxt.async_support.whitebit):
|
|
356
399
|
async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
357
400
|
"""
|
358
401
|
watches trades made by the user
|
402
|
+
|
403
|
+
https://docs.whitebit.com/private/websocket/#deals
|
404
|
+
|
359
405
|
:param str symbol: unified market symbol
|
360
406
|
:param int [since]: the earliest time in ms to fetch trades for
|
361
407
|
:param int [limit]: the maximum number of trades structures to retrieve
|
@@ -449,11 +495,14 @@ class whitebit(ccxt.async_support.whitebit):
|
|
449
495
|
async def watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
450
496
|
"""
|
451
497
|
watches information on multiple orders made by the user
|
498
|
+
|
499
|
+
https://docs.whitebit.com/private/websocket/#orders-pending
|
500
|
+
|
452
501
|
:param str symbol: unified market symbol of the market orders were made in
|
453
502
|
:param int [since]: the earliest time in ms to fetch orders for
|
454
503
|
:param int [limit]: the maximum number of order structures to retrieve
|
455
504
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
456
|
-
:returns dict[]: a list of
|
505
|
+
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
457
506
|
"""
|
458
507
|
if symbol is None:
|
459
508
|
raise ArgumentsRequired(self.id + ' watchOrders() requires a symbol argument')
|
@@ -596,7 +645,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
596
645
|
}, market)
|
597
646
|
|
598
647
|
def parse_ws_order_type(self, status):
|
599
|
-
statuses = {
|
648
|
+
statuses: dict = {
|
600
649
|
'1': 'limit',
|
601
650
|
'2': 'market',
|
602
651
|
'202': 'market',
|
@@ -612,6 +661,10 @@ class whitebit(ccxt.async_support.whitebit):
|
|
612
661
|
async def watch_balance(self, params={}) -> Balances:
|
613
662
|
"""
|
614
663
|
watch balance and get the amount of funds available for trading or funds locked in orders
|
664
|
+
|
665
|
+
https://docs.whitebit.com/private/websocket/#balance-spot
|
666
|
+
https://docs.whitebit.com/private/websocket/#balance-margin
|
667
|
+
|
615
668
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
616
669
|
:param str [params.type]: spot or contract if not provided self.options['defaultType'] is used
|
617
670
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
@@ -668,7 +721,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
668
721
|
async def watch_public(self, messageHash, method, reqParams=[], params={}):
|
669
722
|
url = self.urls['api']['ws']
|
670
723
|
id = self.nonce()
|
671
|
-
request = {
|
724
|
+
request: dict = {
|
672
725
|
'id': id,
|
673
726
|
'method': method,
|
674
727
|
'params': reqParams,
|
@@ -684,7 +737,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
684
737
|
request = None
|
685
738
|
marketIds = []
|
686
739
|
if client is None:
|
687
|
-
subscription = {}
|
740
|
+
subscription: dict = {}
|
688
741
|
market = self.market(symbol)
|
689
742
|
marketId = market['id']
|
690
743
|
subscription[marketId] = True
|
@@ -716,7 +769,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
716
769
|
marketIdsNew = list(subscription.keys())
|
717
770
|
if isNested:
|
718
771
|
marketIdsNew = [marketIdsNew]
|
719
|
-
resubRequest = {
|
772
|
+
resubRequest: dict = {
|
720
773
|
'id': id,
|
721
774
|
'method': method,
|
722
775
|
'params': marketIdsNew,
|
@@ -730,7 +783,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
730
783
|
await self.authenticate()
|
731
784
|
url = self.urls['api']['ws']
|
732
785
|
id = self.nonce()
|
733
|
-
request = {
|
786
|
+
request: dict = {
|
734
787
|
'id': id,
|
735
788
|
'method': method,
|
736
789
|
'params': reqParams,
|
@@ -754,7 +807,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
754
807
|
#
|
755
808
|
token = self.safe_string(authToken, 'websocket_token')
|
756
809
|
id = self.nonce()
|
757
|
-
request = {
|
810
|
+
request: dict = {
|
758
811
|
'id': id,
|
759
812
|
'method': 'authorize',
|
760
813
|
'params': [
|
@@ -762,7 +815,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
762
815
|
'public',
|
763
816
|
],
|
764
817
|
}
|
765
|
-
subscription = {
|
818
|
+
subscription: dict = {
|
766
819
|
'id': id,
|
767
820
|
'method': self.handle_authenticate,
|
768
821
|
}
|
@@ -821,7 +874,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
821
874
|
if id is not None:
|
822
875
|
self.handle_subscription_status(client, message, id)
|
823
876
|
return
|
824
|
-
methods = {
|
877
|
+
methods: dict = {
|
825
878
|
'market_update': self.handle_ticker,
|
826
879
|
'trades_update': self.handle_trades,
|
827
880
|
'depth_update': self.handle_order_book,
|
@@ -856,7 +909,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
856
909
|
client.lastPong = self.milliseconds()
|
857
910
|
return message
|
858
911
|
|
859
|
-
def ping(self, client):
|
912
|
+
def ping(self, client: Client):
|
860
913
|
return {
|
861
914
|
'id': 0,
|
862
915
|
'method': 'ping',
|