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/deribit.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 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 ExchangeError
|
@@ -22,7 +22,8 @@ class deribit(ccxt.async_support.deribit):
|
|
22
22
|
'ws': True,
|
23
23
|
'watchBalance': True,
|
24
24
|
'watchTicker': True,
|
25
|
-
'watchTickers':
|
25
|
+
'watchTickers': True,
|
26
|
+
'watchBidsAsks': True,
|
26
27
|
'watchTrades': True,
|
27
28
|
'watchTradesForSymbols': True,
|
28
29
|
'watchMyTrades': True,
|
@@ -82,7 +83,9 @@ class deribit(ccxt.async_support.deribit):
|
|
82
83
|
|
83
84
|
async def watch_balance(self, params={}) -> Balances:
|
84
85
|
"""
|
85
|
-
|
86
|
+
|
87
|
+
https://docs.deribit.com/#user-portfolio-currency
|
88
|
+
|
86
89
|
watch balance and get the amount of funds available for trading or funds locked in orders
|
87
90
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
88
91
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
@@ -95,7 +98,7 @@ class deribit(ccxt.async_support.deribit):
|
|
95
98
|
for i in range(0, len(currencies)):
|
96
99
|
currencyCode = currencies[i]
|
97
100
|
channels.append('user.portfolio.' + currencyCode)
|
98
|
-
subscribe = {
|
101
|
+
subscribe: dict = {
|
99
102
|
'jsonrpc': '2.0',
|
100
103
|
'method': 'private/subscribe',
|
101
104
|
'params': {
|
@@ -162,7 +165,9 @@ class deribit(ccxt.async_support.deribit):
|
|
162
165
|
|
163
166
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
164
167
|
"""
|
165
|
-
|
168
|
+
|
169
|
+
https://docs.deribit.com/#ticker-instrument_name-interval
|
170
|
+
|
166
171
|
watches a price ticker, a statistical calculation with the information for a specific market.
|
167
172
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
168
173
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -178,7 +183,7 @@ class deribit(ccxt.async_support.deribit):
|
|
178
183
|
if interval == 'raw':
|
179
184
|
await self.authenticate()
|
180
185
|
channel = 'ticker.' + market['id'] + '.' + interval
|
181
|
-
message = {
|
186
|
+
message: dict = {
|
182
187
|
'jsonrpc': '2.0',
|
183
188
|
'method': 'public/subscribe',
|
184
189
|
'params': {
|
@@ -189,6 +194,45 @@ class deribit(ccxt.async_support.deribit):
|
|
189
194
|
request = self.deep_extend(message, params)
|
190
195
|
return await self.watch(url, channel, request, channel, request)
|
191
196
|
|
197
|
+
async def watch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
198
|
+
"""
|
199
|
+
|
200
|
+
https://docs.deribit.com/#ticker-instrument_name-interval
|
201
|
+
|
202
|
+
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
203
|
+
:param str[] [symbols]: unified symbol of the market to fetch the ticker for
|
204
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
205
|
+
:param str [params.interval]: specify aggregation and frequency of notifications. Possible values: 100ms, raw
|
206
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
207
|
+
"""
|
208
|
+
await self.load_markets()
|
209
|
+
symbols = self.market_symbols(symbols, None, False)
|
210
|
+
url = self.urls['api']['ws']
|
211
|
+
interval = self.safe_string(params, 'interval', '100ms')
|
212
|
+
params = self.omit(params, 'interval')
|
213
|
+
await self.load_markets()
|
214
|
+
if interval == 'raw':
|
215
|
+
await self.authenticate()
|
216
|
+
channels = []
|
217
|
+
for i in range(0, len(symbols)):
|
218
|
+
market = self.market(symbols[i])
|
219
|
+
channels.append('ticker.' + market['id'] + '.' + interval)
|
220
|
+
message: dict = {
|
221
|
+
'jsonrpc': '2.0',
|
222
|
+
'method': 'public/subscribe',
|
223
|
+
'params': {
|
224
|
+
'channels': channels,
|
225
|
+
},
|
226
|
+
'id': self.request_id(),
|
227
|
+
}
|
228
|
+
request = self.deep_extend(message, params)
|
229
|
+
newTickers = await self.watch_multiple(url, channels, request, channels, request)
|
230
|
+
if self.newUpdates:
|
231
|
+
tickers: dict = {}
|
232
|
+
tickers[newTickers['symbol']] = newTickers
|
233
|
+
return tickers
|
234
|
+
return self.filter_by_array(self.tickers, 'symbol', symbols)
|
235
|
+
|
192
236
|
def handle_ticker(self, client: Client, message):
|
193
237
|
#
|
194
238
|
# {
|
@@ -228,10 +272,87 @@ class deribit(ccxt.async_support.deribit):
|
|
228
272
|
self.tickers[symbol] = ticker
|
229
273
|
client.resolve(ticker, messageHash)
|
230
274
|
|
275
|
+
async def watch_bids_asks(self, symbols: Strings = None, params={}) -> Tickers:
|
276
|
+
"""
|
277
|
+
|
278
|
+
https://docs.deribit.com/#quote-instrument_name
|
279
|
+
|
280
|
+
watches best bid & ask for symbols
|
281
|
+
:param str[] [symbols]: unified symbol of the market to fetch the ticker for
|
282
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
283
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
284
|
+
"""
|
285
|
+
await self.load_markets()
|
286
|
+
symbols = self.market_symbols(symbols, None, False)
|
287
|
+
url = self.urls['api']['ws']
|
288
|
+
channels = []
|
289
|
+
for i in range(0, len(symbols)):
|
290
|
+
market = self.market(symbols[i])
|
291
|
+
channels.append('quote.' + market['id'])
|
292
|
+
message: dict = {
|
293
|
+
'jsonrpc': '2.0',
|
294
|
+
'method': 'public/subscribe',
|
295
|
+
'params': {
|
296
|
+
'channels': channels,
|
297
|
+
},
|
298
|
+
'id': self.request_id(),
|
299
|
+
}
|
300
|
+
request = self.deep_extend(message, params)
|
301
|
+
newTickers = await self.watch_multiple(url, channels, request, channels, request)
|
302
|
+
if self.newUpdates:
|
303
|
+
tickers: dict = {}
|
304
|
+
tickers[newTickers['symbol']] = newTickers
|
305
|
+
return tickers
|
306
|
+
return self.filter_by_array(self.bidsasks, 'symbol', symbols)
|
307
|
+
|
308
|
+
def handle_bid_ask(self, client: Client, message):
|
309
|
+
#
|
310
|
+
# {
|
311
|
+
# "jsonrpc": "2.0",
|
312
|
+
# "method": "subscription",
|
313
|
+
# "params": {
|
314
|
+
# "channel": "quote.BTC_USDT",
|
315
|
+
# "data": {
|
316
|
+
# "best_bid_amount": 0.026,
|
317
|
+
# "best_ask_amount": 0.026,
|
318
|
+
# "best_bid_price": 63908,
|
319
|
+
# "best_ask_price": 63940,
|
320
|
+
# "instrument_name": "BTC_USDT",
|
321
|
+
# "timestamp": 1727765131750
|
322
|
+
# }
|
323
|
+
# }
|
324
|
+
# }
|
325
|
+
#
|
326
|
+
params = self.safe_dict(message, 'params', {})
|
327
|
+
data = self.safe_dict(params, 'data', {})
|
328
|
+
ticker = self.parse_ws_bid_ask(data)
|
329
|
+
symbol = ticker['symbol']
|
330
|
+
self.bidsasks[symbol] = ticker
|
331
|
+
messageHash = self.safe_string(params, 'channel')
|
332
|
+
client.resolve(ticker, messageHash)
|
333
|
+
|
334
|
+
def parse_ws_bid_ask(self, ticker, market=None):
|
335
|
+
marketId = self.safe_string(ticker, 'instrument_name')
|
336
|
+
market = self.safe_market(marketId, market)
|
337
|
+
symbol = self.safe_string(market, 'symbol')
|
338
|
+
timestamp = self.safe_integer(ticker, 'timestamp')
|
339
|
+
return self.safe_ticker({
|
340
|
+
'symbol': symbol,
|
341
|
+
'timestamp': timestamp,
|
342
|
+
'datetime': self.iso8601(timestamp),
|
343
|
+
'ask': self.safe_string(ticker, 'best_ask_price'),
|
344
|
+
'askVolume': self.safe_string(ticker, 'best_ask_amount'),
|
345
|
+
'bid': self.safe_string(ticker, 'best_bid_price'),
|
346
|
+
'bidVolume': self.safe_string(ticker, 'best_bid_amount'),
|
347
|
+
'info': ticker,
|
348
|
+
}, market)
|
349
|
+
|
231
350
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
232
351
|
"""
|
233
352
|
get the list of most recent trades for a particular symbol
|
234
|
-
|
353
|
+
|
354
|
+
https://docs.deribit.com/#trades-instrument_name-interval
|
355
|
+
|
235
356
|
:param str symbol: unified symbol of the market to fetch trades for
|
236
357
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
237
358
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -245,7 +366,9 @@ class deribit(ccxt.async_support.deribit):
|
|
245
366
|
async def watch_trades_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
246
367
|
"""
|
247
368
|
get the list of most recent trades for a list of symbols
|
248
|
-
|
369
|
+
|
370
|
+
https://docs.deribit.com/#trades-instrument_name-interval
|
371
|
+
|
249
372
|
:param str[] symbols: unified symbol of the market to fetch trades for
|
250
373
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
251
374
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -308,7 +431,9 @@ class deribit(ccxt.async_support.deribit):
|
|
308
431
|
async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
309
432
|
"""
|
310
433
|
get the list of trades associated with the user
|
311
|
-
|
434
|
+
|
435
|
+
https://docs.deribit.com/#user-trades-instrument_name-interval
|
436
|
+
|
312
437
|
:param str symbol: unified symbol of the market to fetch trades for. Use 'any' to watch all trades
|
313
438
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
314
439
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -324,7 +449,7 @@ class deribit(ccxt.async_support.deribit):
|
|
324
449
|
interval = self.safe_string(params, 'interval', 'raw')
|
325
450
|
params = self.omit(params, 'interval')
|
326
451
|
channel = 'user.trades.any.any.' + interval
|
327
|
-
message = {
|
452
|
+
message: dict = {
|
328
453
|
'jsonrpc': '2.0',
|
329
454
|
'method': 'private/subscribe',
|
330
455
|
'params': {
|
@@ -377,7 +502,7 @@ class deribit(ccxt.async_support.deribit):
|
|
377
502
|
limit = self.safe_integer(self.options, 'tradesLimit', 1000)
|
378
503
|
cachedTrades = ArrayCacheBySymbolById(limit)
|
379
504
|
parsed = self.parse_trades(trades)
|
380
|
-
marketIds = {}
|
505
|
+
marketIds: dict = {}
|
381
506
|
for i in range(0, len(parsed)):
|
382
507
|
trade = parsed[i]
|
383
508
|
cachedTrades.append(trade)
|
@@ -387,7 +512,9 @@ class deribit(ccxt.async_support.deribit):
|
|
387
512
|
|
388
513
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
389
514
|
"""
|
390
|
-
|
515
|
+
|
516
|
+
https://docs.deribit.com/#book-instrument_name-group-depth-interval
|
517
|
+
|
391
518
|
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
392
519
|
:param str symbol: unified symbol of the market to fetch the order book for
|
393
520
|
:param int [limit]: the maximum amount of order book entries to return
|
@@ -401,7 +528,9 @@ class deribit(ccxt.async_support.deribit):
|
|
401
528
|
async def watch_order_book_for_symbols(self, symbols: List[str], limit: Int = None, params={}) -> OrderBook:
|
402
529
|
"""
|
403
530
|
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
404
|
-
|
531
|
+
|
532
|
+
https://docs.deribit.com/#book-instrument_name-group-depth-interval
|
533
|
+
|
405
534
|
:param str[] symbols: unified array of symbols
|
406
535
|
:param int [limit]: the maximum amount of order book entries to return
|
407
536
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -489,11 +618,11 @@ class deribit(ccxt.async_support.deribit):
|
|
489
618
|
marketId = self.safe_string(data, 'instrument_name')
|
490
619
|
symbol = self.safe_symbol(marketId)
|
491
620
|
timestamp = self.safe_integer(data, 'timestamp')
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
asks = self.
|
496
|
-
bids = self.
|
621
|
+
if not (symbol in self.orderbooks):
|
622
|
+
self.orderbooks[symbol] = self.counted_order_book()
|
623
|
+
storedOrderBook = self.orderbooks[symbol]
|
624
|
+
asks = self.safe_list(data, 'asks', [])
|
625
|
+
bids = self.safe_list(data, 'bids', [])
|
497
626
|
self.handle_deltas(storedOrderBook['asks'], asks)
|
498
627
|
self.handle_deltas(storedOrderBook['bids'], bids)
|
499
628
|
storedOrderBook['nonce'] = timestamp
|
@@ -505,8 +634,8 @@ class deribit(ccxt.async_support.deribit):
|
|
505
634
|
client.resolve(storedOrderBook, messageHash)
|
506
635
|
|
507
636
|
def clean_order_book(self, data):
|
508
|
-
bids = self.
|
509
|
-
asks = self.
|
637
|
+
bids = self.safe_list(data, 'bids', [])
|
638
|
+
asks = self.safe_list(data, 'asks', [])
|
510
639
|
cleanedBids = []
|
511
640
|
for i in range(0, len(bids)):
|
512
641
|
cleanedBids.append([bids[i][1], bids[i][2]])
|
@@ -521,9 +650,9 @@ class deribit(ccxt.async_support.deribit):
|
|
521
650
|
price = delta[1]
|
522
651
|
amount = delta[2]
|
523
652
|
if delta[0] == 'new' or delta[0] == 'change':
|
524
|
-
bookside.
|
653
|
+
bookside.storeArray([price, amount, 1])
|
525
654
|
elif delta[0] == 'delete':
|
526
|
-
bookside.
|
655
|
+
bookside.storeArray([price, amount, 0])
|
527
656
|
|
528
657
|
def handle_deltas(self, bookside, deltas):
|
529
658
|
for i in range(0, len(deltas)):
|
@@ -531,13 +660,15 @@ class deribit(ccxt.async_support.deribit):
|
|
531
660
|
|
532
661
|
async def watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
533
662
|
"""
|
534
|
-
|
663
|
+
|
664
|
+
https://docs.deribit.com/#user-orders-instrument_name-raw
|
665
|
+
|
535
666
|
watches information on multiple orders made by the user
|
536
667
|
:param str symbol: unified market symbol of the market orders were made in
|
537
668
|
:param int [since]: the earliest time in ms to fetch orders for
|
538
669
|
:param int [limit]: the maximum number of order structures to retrieve
|
539
670
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
540
|
-
:returns dict[]: a list of
|
671
|
+
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
541
672
|
"""
|
542
673
|
await self.load_markets()
|
543
674
|
await self.authenticate(params)
|
@@ -549,7 +680,7 @@ class deribit(ccxt.async_support.deribit):
|
|
549
680
|
kind = self.safe_string(params, 'kind', 'any')
|
550
681
|
params = self.omit(params, 'interval', 'currency', 'kind')
|
551
682
|
channel = 'user.orders.' + kind + '.' + currency + '.' + interval
|
552
|
-
message = {
|
683
|
+
message: dict = {
|
553
684
|
'jsonrpc': '2.0',
|
554
685
|
'method': 'private/subscribe',
|
555
686
|
'params': {
|
@@ -617,7 +748,9 @@ class deribit(ccxt.async_support.deribit):
|
|
617
748
|
|
618
749
|
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
619
750
|
"""
|
620
|
-
|
751
|
+
|
752
|
+
https://docs.deribit.com/#chart-trades-instrument_name-resolution
|
753
|
+
|
621
754
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
622
755
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
623
756
|
:param str timeframe: the length of time each candle represents
|
@@ -634,7 +767,9 @@ class deribit(ccxt.async_support.deribit):
|
|
634
767
|
async def watch_ohlcv_for_symbols(self, symbolsAndTimeframes: List[List[str]], since: Int = None, limit: Int = None, params={}):
|
635
768
|
"""
|
636
769
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
637
|
-
|
770
|
+
|
771
|
+
https://docs.deribit.com/#chart-trades-instrument_name-resolution
|
772
|
+
|
638
773
|
:param str[][] symbolsAndTimeframes: array of arrays containing unified symbols and timeframes to fetch OHLCV data for, example [['BTC/USDT', '1m'], ['LTC/USDT', '5m']]
|
639
774
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
640
775
|
:param int [limit]: the maximum amount of candles to fetch
|
@@ -735,7 +870,7 @@ class deribit(ccxt.async_support.deribit):
|
|
735
870
|
message = channelName + '.' + market['id'] + '.' + channelDescriptor
|
736
871
|
rawSubscriptions.append(message)
|
737
872
|
messageHashes.append(channelName + '|' + market['symbol'] + '|' + channelDescriptor)
|
738
|
-
request = {
|
873
|
+
request: dict = {
|
739
874
|
'jsonrpc': '2.0',
|
740
875
|
'method': 'public/subscribe',
|
741
876
|
'params': {
|
@@ -818,13 +953,14 @@ class deribit(ccxt.async_support.deribit):
|
|
818
953
|
if channel is not None:
|
819
954
|
parts = channel.split('.')
|
820
955
|
channelId = self.safe_string(parts, 0)
|
821
|
-
userHandlers = {
|
956
|
+
userHandlers: dict = {
|
822
957
|
'trades': self.handle_my_trades,
|
823
958
|
'portfolio': self.handle_balance,
|
824
959
|
'orders': self.handle_orders,
|
825
960
|
}
|
826
|
-
handlers = {
|
961
|
+
handlers: dict = {
|
827
962
|
'ticker': self.handle_ticker,
|
963
|
+
'quote': self.handle_bid_ask,
|
828
964
|
'book': self.handle_order_book,
|
829
965
|
'trades': self.handle_trades,
|
830
966
|
'chart': self.handle_ohlcv,
|
@@ -874,7 +1010,7 @@ class deribit(ccxt.async_support.deribit):
|
|
874
1010
|
self.check_required_credentials()
|
875
1011
|
requestId = self.request_id()
|
876
1012
|
signature = self.hmac(self.encode(timeString + '\n' + nonce + '\n'), self.encode(self.secret), hashlib.sha256)
|
877
|
-
request = {
|
1013
|
+
request: dict = {
|
878
1014
|
'jsonrpc': '2.0',
|
879
1015
|
'id': requestId,
|
880
1016
|
'method': 'public/auth',
|