ccxt 4.2.76__py2.py3-none-any.whl → 4.4.48__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 +25 -0
- ccxt/abstract/kucoinfutures.py +35 -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 +3513 -1511
- 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 +3105 -881
- 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 +239 -50
- ccxt/async_support/bitget.py +1513 -563
- ccxt/async_support/bithumb.py +201 -67
- 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 +403 -150
- 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 +2326 -1255
- ccxt/async_support/cex.py +1409 -1329
- ccxt/async_support/coinbase.py +1455 -288
- 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 +206 -89
- 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 +467 -158
- ccxt/async_support/deribit.py +558 -324
- ccxt/async_support/digifinex.py +340 -223
- ccxt/async_support/ellipx.py +1826 -0
- ccxt/async_support/exmo.py +259 -128
- ccxt/async_support/gate.py +1473 -464
- ccxt/async_support/gemini.py +206 -84
- ccxt/async_support/hashkey.py +4164 -0
- ccxt/async_support/hitbtc.py +334 -178
- ccxt/async_support/hollaex.py +134 -83
- ccxt/async_support/htx.py +1095 -563
- ccxt/async_support/huobijp.py +105 -56
- ccxt/async_support/hyperliquid.py +1634 -269
- ccxt/async_support/idex.py +148 -95
- ccxt/async_support/independentreserve.py +236 -31
- ccxt/async_support/indodax.py +165 -62
- ccxt/async_support/kraken.py +871 -354
- ccxt/async_support/krakenfutures.py +324 -100
- ccxt/async_support/kucoin.py +1050 -355
- ccxt/async_support/kucoinfutures.py +1004 -149
- ccxt/async_support/kuna.py +138 -106
- ccxt/async_support/latoken.py +135 -79
- ccxt/async_support/lbank.py +290 -113
- ccxt/async_support/luno.py +112 -62
- ccxt/async_support/lykke.py +104 -55
- ccxt/async_support/mercado.py +36 -29
- ccxt/async_support/mexc.py +995 -429
- ccxt/async_support/myokx.py +43 -0
- ccxt/async_support/ndax.py +163 -82
- ccxt/async_support/novadax.py +121 -75
- ccxt/async_support/oceanex.py +175 -59
- ccxt/async_support/okcoin.py +222 -163
- ccxt/async_support/okx.py +1777 -455
- ccxt/async_support/onetrading.py +132 -414
- ccxt/async_support/oxfun.py +2832 -0
- ccxt/async_support/p2b.py +79 -51
- ccxt/async_support/paradex.py +2017 -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 +1155 -295
- 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 +1729 -482
- 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 +3513 -1511
- ccxt/binancecoinm.py +2 -1
- ccxt/binanceus.py +12 -1
- ccxt/binanceusdm.py +3 -1
- ccxt/bingx.py +3105 -881
- 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 +239 -50
- ccxt/bitget.py +1513 -563
- ccxt/bithumb.py +200 -67
- 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 +403 -150
- ccxt/btcalpha.py +161 -55
- ccxt/btcbox.py +250 -34
- ccxt/btcmarkets.py +232 -85
- ccxt/btcturk.py +159 -60
- ccxt/bybit.py +2326 -1255
- ccxt/cex.py +1408 -1329
- ccxt/coinbase.py +1455 -288
- 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 +206 -89
- ccxt/coinspot.py +137 -62
- ccxt/cryptocom.py +515 -185
- ccxt/currencycom.py +203 -85
- ccxt/defx.py +2065 -0
- ccxt/delta.py +467 -158
- ccxt/deribit.py +558 -324
- ccxt/digifinex.py +340 -223
- ccxt/ellipx.py +1826 -0
- ccxt/exmo.py +259 -128
- ccxt/gate.py +1473 -464
- ccxt/gemini.py +206 -84
- ccxt/hashkey.py +4164 -0
- ccxt/hitbtc.py +334 -178
- ccxt/hollaex.py +134 -83
- ccxt/htx.py +1095 -563
- ccxt/huobijp.py +105 -56
- ccxt/hyperliquid.py +1633 -269
- ccxt/idex.py +148 -95
- ccxt/independentreserve.py +235 -31
- ccxt/indodax.py +165 -62
- ccxt/kraken.py +871 -354
- ccxt/krakenfutures.py +324 -100
- ccxt/kucoin.py +1050 -355
- ccxt/kucoinfutures.py +1004 -149
- ccxt/kuna.py +138 -106
- ccxt/latoken.py +135 -79
- ccxt/lbank.py +290 -113
- ccxt/luno.py +112 -62
- ccxt/lykke.py +104 -55
- ccxt/mercado.py +36 -29
- ccxt/mexc.py +994 -429
- ccxt/myokx.py +43 -0
- ccxt/ndax.py +163 -82
- ccxt/novadax.py +121 -75
- ccxt/oceanex.py +175 -59
- ccxt/okcoin.py +222 -163
- ccxt/okx.py +1777 -455
- ccxt/onetrading.py +132 -414
- ccxt/oxfun.py +2831 -0
- ccxt/p2b.py +79 -51
- ccxt/paradex.py +2017 -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 +63 -15
- 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 +138 -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 +204 -82
- 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 +967 -661
- 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 +168 -32
- ccxt/pro/exmo.py +253 -21
- 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 +93 -34
- ccxt/pro/poloniex.py +129 -50
- ccxt/pro/poloniexfutures.py +53 -32
- ccxt/pro/probit.py +93 -86
- 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 +486 -70
- 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} +465 -407
- ccxt/test/tests_helpers.py +285 -0
- ccxt/test/tests_init.py +39 -0
- ccxt/test/{test_sync.py → tests_sync.py} +465 -409
- 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 +1155 -295
- 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.48.dist-info/LICENSE.txt +21 -0
- ccxt-4.4.48.dist-info/METADATA +646 -0
- ccxt-4.4.48.dist-info/RECORD +669 -0
- {ccxt-4.2.76.dist-info → ccxt-4.4.48.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.76.dist-info/METADATA +0 -626
- ccxt-4.2.76.dist-info/RECORD +0 -534
- {ccxt-4.2.76.dist-info → ccxt-4.4.48.dist-info}/top_level.txt +0 -0
ccxt/pro/cex.py
CHANGED
@@ -25,6 +25,7 @@ class cex(ccxt.async_support.cex):
|
|
25
25
|
'watchTicker': True,
|
26
26
|
'watchTickers': True,
|
27
27
|
'watchTrades': True,
|
28
|
+
'watchTradesForSymbols': False,
|
28
29
|
'watchMyTrades': True,
|
29
30
|
'watchOrders': True,
|
30
31
|
'watchOrderBook': True,
|
@@ -61,14 +62,16 @@ class cex(ccxt.async_support.cex):
|
|
61
62
|
async def watch_balance(self, params={}) -> Balances:
|
62
63
|
"""
|
63
64
|
watch balance and get the amount of funds available for trading or funds locked in orders
|
64
|
-
|
65
|
+
|
66
|
+
https://cex.io/websocket-api#get-balance
|
67
|
+
|
65
68
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
66
69
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
67
70
|
"""
|
68
71
|
await self.authenticate(params)
|
69
72
|
messageHash = self.request_id()
|
70
73
|
url = self.urls['api']['ws']
|
71
|
-
subscribe = {
|
74
|
+
subscribe: dict = {
|
72
75
|
'e': 'get-balance',
|
73
76
|
'data': {},
|
74
77
|
'oid': self.request_id(),
|
@@ -100,7 +103,7 @@ class cex(ccxt.async_support.cex):
|
|
100
103
|
data = self.safe_value(message, 'data', {})
|
101
104
|
freeBalance = self.safe_value(data, 'balance', {})
|
102
105
|
usedBalance = self.safe_value(data, 'obalance', {})
|
103
|
-
result = {
|
106
|
+
result: dict = {
|
104
107
|
'info': data,
|
105
108
|
}
|
106
109
|
currencyIds = list(freeBalance.keys())
|
@@ -118,7 +121,9 @@ class cex(ccxt.async_support.cex):
|
|
118
121
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
119
122
|
"""
|
120
123
|
get the list of most recent trades for a particular symbol. Note: can only watch one symbol at a time.
|
121
|
-
|
124
|
+
|
125
|
+
https://cex.io/websocket-api#old-pair-room
|
126
|
+
|
122
127
|
:param str symbol: unified symbol of the market to fetch trades for
|
123
128
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
124
129
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -131,6 +136,7 @@ class cex(ccxt.async_support.cex):
|
|
131
136
|
url = self.urls['api']['ws']
|
132
137
|
messageHash = 'trades'
|
133
138
|
subscriptionHash = 'old:' + symbol
|
139
|
+
self.options['currentWatchTradeSymbol'] = symbol # exchange supports only 1 symbol for self watchTrades channel
|
134
140
|
client = self.safe_value(self.clients, url)
|
135
141
|
if client is not None:
|
136
142
|
subscriptionKeys = list(client.subscriptions.keys())
|
@@ -141,7 +147,7 @@ class cex(ccxt.async_support.cex):
|
|
141
147
|
subscriptionKey = subscriptionKey[0:3]
|
142
148
|
if subscriptionKey == 'old':
|
143
149
|
raise ExchangeError(self.id + ' watchTrades() only supports watching one symbol at a time.')
|
144
|
-
message = {
|
150
|
+
message: dict = {
|
145
151
|
'e': 'subscribe',
|
146
152
|
'rooms': ['pair-' + market['base'] + '-' + market['quote']],
|
147
153
|
}
|
@@ -157,17 +163,25 @@ class cex(ccxt.async_support.cex):
|
|
157
163
|
# {
|
158
164
|
# "e": "history",
|
159
165
|
# "data": [
|
160
|
-
#
|
161
|
-
#
|
166
|
+
# 'buy:1710255706095:444444:71222.2:14892622'
|
167
|
+
# 'sell:1710255658251:42530:71300:14892621'
|
168
|
+
# 'buy:1710252424241:87913:72800:14892620'
|
169
|
+
# ... timestamp descending
|
162
170
|
# ]
|
163
171
|
# }
|
164
172
|
#
|
165
|
-
data = self.
|
173
|
+
data = self.safe_list(message, 'data', [])
|
166
174
|
limit = self.safe_integer(self.options, 'tradesLimit', 1000)
|
167
175
|
stored = ArrayCache(limit)
|
168
|
-
|
169
|
-
|
170
|
-
|
176
|
+
symbol = self.safe_string(self.options, 'currentWatchTradeSymbol')
|
177
|
+
if symbol is None:
|
178
|
+
return
|
179
|
+
market = self.market(symbol)
|
180
|
+
dataLength = len(data)
|
181
|
+
for i in range(0, dataLength):
|
182
|
+
index = dataLength - 1 - i
|
183
|
+
rawTrade = data[index]
|
184
|
+
parsed = self.parse_ws_old_trade(rawTrade, market)
|
171
185
|
stored.append(parsed)
|
172
186
|
messageHash = 'trades'
|
173
187
|
self.trades = stored # trades don't have symbol
|
@@ -192,7 +206,7 @@ class cex(ccxt.async_support.cex):
|
|
192
206
|
'id': id,
|
193
207
|
'timestamp': timestamp,
|
194
208
|
'datetime': self.iso8601(timestamp),
|
195
|
-
'symbol':
|
209
|
+
'symbol': self.safe_string(market, 'symbol'),
|
196
210
|
'type': None,
|
197
211
|
'side': side,
|
198
212
|
'order': None,
|
@@ -214,8 +228,10 @@ class cex(ccxt.async_support.cex):
|
|
214
228
|
#
|
215
229
|
data = self.safe_value(message, 'data', [])
|
216
230
|
stored = self.trades # to do fix self, self.trades is not meant to be used like self
|
217
|
-
|
218
|
-
|
231
|
+
dataLength = len(data)
|
232
|
+
for i in range(0, dataLength):
|
233
|
+
index = dataLength - 1 - i
|
234
|
+
rawTrade = data[index]
|
219
235
|
parsed = self.parse_ws_old_trade(rawTrade)
|
220
236
|
stored.append(parsed)
|
221
237
|
messageHash = 'trades'
|
@@ -224,7 +240,9 @@ class cex(ccxt.async_support.cex):
|
|
224
240
|
|
225
241
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
226
242
|
"""
|
227
|
-
|
243
|
+
|
244
|
+
https://cex.io/websocket-api#ticker-subscription
|
245
|
+
|
228
246
|
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
229
247
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
230
248
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -259,7 +277,9 @@ class cex(ccxt.async_support.cex):
|
|
259
277
|
|
260
278
|
async def watch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
261
279
|
"""
|
262
|
-
|
280
|
+
|
281
|
+
https://cex.io/websocket-api#ticker-subscription
|
282
|
+
|
263
283
|
watches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
264
284
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
265
285
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -269,7 +289,7 @@ class cex(ccxt.async_support.cex):
|
|
269
289
|
symbols = self.market_symbols(symbols)
|
270
290
|
url = self.urls['api']['ws']
|
271
291
|
messageHash = 'tickers'
|
272
|
-
message = {
|
292
|
+
message: dict = {
|
273
293
|
'e': 'subscribe',
|
274
294
|
'rooms': [
|
275
295
|
'tickers',
|
@@ -281,14 +301,16 @@ class cex(ccxt.async_support.cex):
|
|
281
301
|
if symbols is not None and not self.in_array(tickerSymbol, symbols):
|
282
302
|
return await self.watch_tickers(symbols, params)
|
283
303
|
if self.newUpdates:
|
284
|
-
result = {}
|
304
|
+
result: dict = {}
|
285
305
|
result[tickerSymbol] = ticker
|
286
306
|
return result
|
287
307
|
return self.filter_by_array(self.tickers, 'symbol', symbols)
|
288
308
|
|
289
|
-
async def fetch_ticker_ws(self, symbol: str, params={}):
|
309
|
+
async def fetch_ticker_ws(self, symbol: str, params={}) -> Ticker:
|
290
310
|
"""
|
291
|
-
|
311
|
+
|
312
|
+
https://docs.cex.io/#ws-api-ticker-deprecated
|
313
|
+
|
292
314
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
293
315
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
294
316
|
:param dict [params]: extra parameters specific to the cex api endpoint
|
@@ -321,12 +343,15 @@ class cex(ccxt.async_support.cex):
|
|
321
343
|
data = self.safe_value(message, 'data', {})
|
322
344
|
ticker = self.parse_ws_ticker(data)
|
323
345
|
symbol = ticker['symbol']
|
346
|
+
if symbol is None:
|
347
|
+
return
|
324
348
|
self.tickers[symbol] = ticker
|
325
349
|
messageHash = 'ticker:' + symbol
|
326
350
|
client.resolve(ticker, messageHash)
|
327
351
|
client.resolve(ticker, 'tickers')
|
328
352
|
messageHash = self.safe_string(message, 'oid')
|
329
|
-
|
353
|
+
if messageHash is not None:
|
354
|
+
client.resolve(ticker, messageHash)
|
330
355
|
|
331
356
|
def parse_ws_ticker(self, ticker, market=None):
|
332
357
|
#
|
@@ -390,7 +415,9 @@ class cex(ccxt.async_support.cex):
|
|
390
415
|
|
391
416
|
async def fetch_balance_ws(self, params={}) -> Balances:
|
392
417
|
"""
|
393
|
-
|
418
|
+
|
419
|
+
https://docs.cex.io/#ws-api-get-balance
|
420
|
+
|
394
421
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
395
422
|
:param dict [params]: extra parameters specific to the cex api endpoint
|
396
423
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
@@ -408,7 +435,9 @@ class cex(ccxt.async_support.cex):
|
|
408
435
|
async def watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
409
436
|
"""
|
410
437
|
get the list of orders associated with the user. Note: In CEX.IO system, orders can be present in trade engine or in archive database. There can be time periods(~2 seconds or more), when order is done/canceled, but still not moved to archive database. That means, you cannot see it using calls: archived-orders/open-orders.
|
411
|
-
|
438
|
+
|
439
|
+
https://docs.cex.io/#ws-api-open-orders
|
440
|
+
|
412
441
|
:param str symbol: unified symbol of the market to fetch trades for
|
413
442
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
414
443
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -423,7 +452,7 @@ class cex(ccxt.async_support.cex):
|
|
423
452
|
market = self.market(symbol)
|
424
453
|
symbol = market['symbol']
|
425
454
|
messageHash = 'orders:' + symbol
|
426
|
-
message = {
|
455
|
+
message: dict = {
|
427
456
|
'e': 'open-orders',
|
428
457
|
'data': {
|
429
458
|
'pair': [
|
@@ -442,7 +471,9 @@ class cex(ccxt.async_support.cex):
|
|
442
471
|
async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
443
472
|
"""
|
444
473
|
get the list of trades associated with the user. Note: In CEX.IO system, orders can be present in trade engine or in archive database. There can be time periods(~2 seconds or more), when order is done/canceled, but still not moved to archive database. That means, you cannot see it using calls: archived-orders/open-orders.
|
445
|
-
|
474
|
+
|
475
|
+
https://docs.cex.io/#ws-api-open-orders
|
476
|
+
|
446
477
|
:param str symbol: unified symbol of the market to fetch trades for
|
447
478
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
448
479
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -457,7 +488,7 @@ class cex(ccxt.async_support.cex):
|
|
457
488
|
market = self.market(symbol)
|
458
489
|
messageHash = 'myTrades:' + market['symbol']
|
459
490
|
subscriptionHash = 'orders:' + market['symbol']
|
460
|
-
message = {
|
491
|
+
message: dict = {
|
461
492
|
'e': 'open-orders',
|
462
493
|
'data': {
|
463
494
|
'pair': [
|
@@ -569,7 +600,7 @@ class cex(ccxt.async_support.cex):
|
|
569
600
|
if side == 'sell':
|
570
601
|
symbol = quote + '/' + base
|
571
602
|
amount = Precise.string_div(amount, price) # due to rounding errors amount in not exact to trade
|
572
|
-
parsedTrade = {
|
603
|
+
parsedTrade: dict = {
|
573
604
|
'id': self.safe_string(trade, 'id'),
|
574
605
|
'order': self.safe_string(trade, 'order'),
|
575
606
|
'info': trade,
|
@@ -626,7 +657,7 @@ class cex(ccxt.async_support.cex):
|
|
626
657
|
# }
|
627
658
|
# }
|
628
659
|
# }
|
629
|
-
#
|
660
|
+
# fulfilledOrder
|
630
661
|
# {
|
631
662
|
# "e": "order",
|
632
663
|
# "data": {
|
@@ -773,7 +804,7 @@ class cex(ccxt.async_support.cex):
|
|
773
804
|
status = 'canceled'
|
774
805
|
elif isTransaction:
|
775
806
|
status = 'closed'
|
776
|
-
parsedOrder = {
|
807
|
+
parsedOrder: dict = {
|
777
808
|
'id': self.safe_string_2(order, 'id', 'order'),
|
778
809
|
'clientOrderId': None,
|
779
810
|
'info': order,
|
@@ -854,7 +885,9 @@ class cex(ccxt.async_support.cex):
|
|
854
885
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
855
886
|
"""
|
856
887
|
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
857
|
-
|
888
|
+
|
889
|
+
https://cex.io/websocket-api#orderbook-subscribe
|
890
|
+
|
858
891
|
:param str symbol: unified symbol of the market to fetch the order book for
|
859
892
|
:param int [limit]: the maximum amount of order book entries to return
|
860
893
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -867,7 +900,7 @@ class cex(ccxt.async_support.cex):
|
|
867
900
|
url = self.urls['api']['ws']
|
868
901
|
messageHash = 'orderbook:' + symbol
|
869
902
|
depth = 0 if (limit is None) else limit
|
870
|
-
subscribe = {
|
903
|
+
subscribe: dict = {
|
871
904
|
'e': 'order-book-subscribe',
|
872
905
|
'data': {
|
873
906
|
'pair': [
|
@@ -911,7 +944,7 @@ class cex(ccxt.async_support.cex):
|
|
911
944
|
symbol = self.pair_to_symbol(pair)
|
912
945
|
messageHash = 'orderbook:' + symbol
|
913
946
|
timestamp = self.safe_integer_2(data, 'timestamp_ms', 'timestamp')
|
914
|
-
incrementalId = self.
|
947
|
+
incrementalId = self.safe_integer(data, 'id')
|
915
948
|
orderbook = self.order_book({})
|
916
949
|
snapshot = self.parse_order_book(data, symbol, timestamp, 'bids', 'asks')
|
917
950
|
snapshot['nonce'] = incrementalId
|
@@ -947,7 +980,7 @@ class cex(ccxt.async_support.cex):
|
|
947
980
|
# }
|
948
981
|
#
|
949
982
|
data = self.safe_value(message, 'data', {})
|
950
|
-
incrementalId = self.
|
983
|
+
incrementalId = self.safe_integer(data, 'id')
|
951
984
|
pair = self.safe_string(data, 'pair', '')
|
952
985
|
symbol = self.pair_to_symbol(pair)
|
953
986
|
storedOrderBook = self.safe_value(self.orderbooks, symbol)
|
@@ -975,7 +1008,9 @@ class cex(ccxt.async_support.cex):
|
|
975
1008
|
|
976
1009
|
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
977
1010
|
"""
|
978
|
-
|
1011
|
+
|
1012
|
+
https://cex.io/websocket-api#minute-data
|
1013
|
+
|
979
1014
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market. It will return the last 120 minutes with the selected timeframe and then 1m candle updates after that.
|
980
1015
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
981
1016
|
:param str timeframe: the length of time each candle represents.
|
@@ -989,7 +1024,7 @@ class cex(ccxt.async_support.cex):
|
|
989
1024
|
symbol = market['symbol']
|
990
1025
|
messageHash = 'ohlcv:' + symbol
|
991
1026
|
url = self.urls['api']['ws']
|
992
|
-
request = {
|
1027
|
+
request: dict = {
|
993
1028
|
'e': 'init-ohlcv',
|
994
1029
|
'i': timeframe,
|
995
1030
|
'rooms': [
|
@@ -1114,7 +1149,10 @@ class cex(ccxt.async_support.cex):
|
|
1114
1149
|
async def fetch_order_ws(self, id: str, symbol: Str = None, params={}):
|
1115
1150
|
"""
|
1116
1151
|
fetches information on an order made by the user
|
1117
|
-
|
1152
|
+
|
1153
|
+
https://docs.cex.io/#ws-api-get-order
|
1154
|
+
|
1155
|
+
:param str id: the order id
|
1118
1156
|
:param str symbol: not used by cex fetchOrder
|
1119
1157
|
:param dict [params]: extra parameters specific to the cex api endpoint
|
1120
1158
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1129,7 +1167,7 @@ class cex(ccxt.async_support.cex):
|
|
1129
1167
|
}, params)
|
1130
1168
|
url = self.urls['api']['ws']
|
1131
1169
|
messageHash = self.request_id()
|
1132
|
-
request = {
|
1170
|
+
request: dict = {
|
1133
1171
|
'e': 'get-order',
|
1134
1172
|
'oid': messageHash,
|
1135
1173
|
'data': data,
|
@@ -1139,7 +1177,9 @@ class cex(ccxt.async_support.cex):
|
|
1139
1177
|
|
1140
1178
|
async def fetch_open_orders_ws(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
1141
1179
|
"""
|
1142
|
-
|
1180
|
+
|
1181
|
+
https://docs.cex.io/#ws-api-open-orders
|
1182
|
+
|
1143
1183
|
fetch all unfilled currently open orders
|
1144
1184
|
:param str symbol: unified market symbol
|
1145
1185
|
:param int [since]: the earliest time in ms to fetch open orders for
|
@@ -1157,7 +1197,7 @@ class cex(ccxt.async_support.cex):
|
|
1157
1197
|
data = self.extend({
|
1158
1198
|
'pair': [market['baseId'], market['quoteId']],
|
1159
1199
|
}, params)
|
1160
|
-
request = {
|
1200
|
+
request: dict = {
|
1161
1201
|
'e': 'open-orders',
|
1162
1202
|
'oid': messageHash,
|
1163
1203
|
'data': data,
|
@@ -1167,13 +1207,15 @@ class cex(ccxt.async_support.cex):
|
|
1167
1207
|
|
1168
1208
|
async def create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}) -> Order:
|
1169
1209
|
"""
|
1170
|
-
|
1210
|
+
|
1211
|
+
https://docs.cex.io/#ws-api-order-placement
|
1212
|
+
|
1171
1213
|
create a trade order
|
1172
1214
|
:param str symbol: unified symbol of the market to create an order in
|
1173
1215
|
:param str type: 'market' or 'limit'
|
1174
1216
|
:param str side: 'buy' or 'sell'
|
1175
1217
|
:param float amount: how much of currency you want to trade in units of base currency
|
1176
|
-
:param float price: the price at which the order is to be
|
1218
|
+
:param float price: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1177
1219
|
:param dict [params]: extra parameters specific to the kraken api endpoint
|
1178
1220
|
:param boolean [params.maker_only]: Optional, maker only places an order only if offers best sell(<= max) or buy(>= max) price for self pair, if not order placement will be rejected with an error - "Order is not maker"
|
1179
1221
|
:returns dict: an `order structure <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
|
@@ -1191,7 +1233,7 @@ class cex(ccxt.async_support.cex):
|
|
1191
1233
|
'price': price,
|
1192
1234
|
'type': side,
|
1193
1235
|
}, params)
|
1194
|
-
request = {
|
1236
|
+
request: dict = {
|
1195
1237
|
'e': 'place-order',
|
1196
1238
|
'oid': messageHash,
|
1197
1239
|
'data': data,
|
@@ -1202,13 +1244,15 @@ class cex(ccxt.async_support.cex):
|
|
1202
1244
|
async def edit_order_ws(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}) -> Order:
|
1203
1245
|
"""
|
1204
1246
|
edit a trade order
|
1205
|
-
|
1247
|
+
|
1248
|
+
https://docs.cex.io/#ws-api-cancel-replace
|
1249
|
+
|
1206
1250
|
:param str id: order id
|
1207
1251
|
:param str symbol: unified symbol of the market to create an order in
|
1208
1252
|
:param str type: 'market' or 'limit'
|
1209
1253
|
:param str side: 'buy' or 'sell'
|
1210
1254
|
:param float amount: how much of the currency you want to trade in units of the base currency
|
1211
|
-
:param float|None [price]: the price at which the order is to be
|
1255
|
+
:param float|None [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1212
1256
|
:param dict [params]: extra parameters specific to the cex api endpoint
|
1213
1257
|
:returns dict: an `order structure <https://docs.ccxt.com/en/latest/manual.html#order-structure>`
|
1214
1258
|
"""
|
@@ -1228,7 +1272,7 @@ class cex(ccxt.async_support.cex):
|
|
1228
1272
|
}, params)
|
1229
1273
|
messageHash = self.request_id()
|
1230
1274
|
url = self.urls['api']['ws']
|
1231
|
-
request = {
|
1275
|
+
request: dict = {
|
1232
1276
|
'e': 'cancel-replace-order',
|
1233
1277
|
'oid': messageHash,
|
1234
1278
|
'data': data,
|
@@ -1238,7 +1282,9 @@ class cex(ccxt.async_support.cex):
|
|
1238
1282
|
|
1239
1283
|
async def cancel_order_ws(self, id: str, symbol: Str = None, params={}):
|
1240
1284
|
"""
|
1241
|
-
|
1285
|
+
|
1286
|
+
https://docs.cex.io/#ws-api-order-cancel
|
1287
|
+
|
1242
1288
|
cancels an open order
|
1243
1289
|
:param str id: order id
|
1244
1290
|
:param str symbol: not used by cex cancelOrder()
|
@@ -1255,7 +1301,7 @@ class cex(ccxt.async_support.cex):
|
|
1255
1301
|
}, params)
|
1256
1302
|
messageHash = self.request_id()
|
1257
1303
|
url = self.urls['api']['ws']
|
1258
|
-
request = {
|
1304
|
+
request: dict = {
|
1259
1305
|
'e': 'cancel-order',
|
1260
1306
|
'oid': messageHash,
|
1261
1307
|
'data': data,
|
@@ -1266,7 +1312,9 @@ class cex(ccxt.async_support.cex):
|
|
1266
1312
|
async def cancel_orders_ws(self, ids: List[str], symbol: Str = None, params={}):
|
1267
1313
|
"""
|
1268
1314
|
cancel multiple orders
|
1269
|
-
|
1315
|
+
|
1316
|
+
https://docs.cex.io/#ws-api-mass-cancel-place
|
1317
|
+
|
1270
1318
|
:param str[] ids: order ids
|
1271
1319
|
:param str symbol: not used by cex cancelOrders()
|
1272
1320
|
:param dict [params]: extra parameters specific to the cex api endpoint
|
@@ -1281,7 +1329,7 @@ class cex(ccxt.async_support.cex):
|
|
1281
1329
|
'cancel-orders': ids,
|
1282
1330
|
}, params)
|
1283
1331
|
url = self.urls['api']['ws']
|
1284
|
-
request = {
|
1332
|
+
request: dict = {
|
1285
1333
|
'e': 'mass-cancel-place-orders',
|
1286
1334
|
'oid': messageHash,
|
1287
1335
|
'data': data,
|
@@ -1361,7 +1409,7 @@ class cex(ccxt.async_support.cex):
|
|
1361
1409
|
self.handle_error_message(client, message)
|
1362
1410
|
return
|
1363
1411
|
event = self.safe_string(message, 'e')
|
1364
|
-
handlers = {
|
1412
|
+
handlers: dict = {
|
1365
1413
|
'auth': self.handle_authentication_message,
|
1366
1414
|
'connected': self.handle_connected,
|
1367
1415
|
'tick': self.handle_ticker,
|
@@ -1414,7 +1462,7 @@ class cex(ccxt.async_support.cex):
|
|
1414
1462
|
nonce = str(self.seconds())
|
1415
1463
|
auth = nonce + self.apiKey
|
1416
1464
|
signature = self.hmac(self.encode(auth), self.encode(self.secret), hashlib.sha256)
|
1417
|
-
request = {
|
1465
|
+
request: dict = {
|
1418
1466
|
'e': 'auth',
|
1419
1467
|
'auth': {
|
1420
1468
|
'key': self.apiKey,
|