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/wazirx.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.wazirx import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
9
|
+
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import PermissionDenied
|
@@ -50,42 +50,63 @@ class wazirx(Exchange, ImplicitAPI):
|
|
50
50
|
'fetchBalance': True,
|
51
51
|
'fetchBidsAsks': False,
|
52
52
|
'fetchBorrowInterest': False,
|
53
|
+
'fetchBorrowRate': False,
|
53
54
|
'fetchBorrowRateHistories': False,
|
54
55
|
'fetchBorrowRateHistory': False,
|
56
|
+
'fetchBorrowRates': False,
|
57
|
+
'fetchBorrowRatesPerSymbol': False,
|
55
58
|
'fetchClosedOrders': False,
|
56
59
|
'fetchCrossBorrowRate': False,
|
57
60
|
'fetchCrossBorrowRates': False,
|
58
61
|
'fetchCurrencies': True,
|
59
62
|
'fetchDepositAddress': True,
|
63
|
+
'fetchDepositAddresses': False,
|
60
64
|
'fetchDepositAddressesByNetwork': False,
|
61
65
|
'fetchDeposits': True,
|
62
66
|
'fetchDepositsWithdrawals': False,
|
63
67
|
'fetchFundingHistory': False,
|
68
|
+
'fetchFundingInterval': False,
|
69
|
+
'fetchFundingIntervals': False,
|
64
70
|
'fetchFundingRate': False,
|
65
71
|
'fetchFundingRateHistory': False,
|
66
72
|
'fetchFundingRates': False,
|
73
|
+
'fetchGreeks': False,
|
67
74
|
'fetchIndexOHLCV': False,
|
68
75
|
'fetchIsolatedBorrowRate': False,
|
69
76
|
'fetchIsolatedBorrowRates': False,
|
70
77
|
'fetchIsolatedPositions': False,
|
71
78
|
'fetchLeverage': False,
|
79
|
+
'fetchLeverages': False,
|
72
80
|
'fetchLeverageTiers': False,
|
81
|
+
'fetchLiquidations': False,
|
82
|
+
'fetchMarginAdjustmentHistory': False,
|
73
83
|
'fetchMarginMode': False,
|
84
|
+
'fetchMarginModes': False,
|
74
85
|
'fetchMarketLeverageTiers': False,
|
75
86
|
'fetchMarkets': True,
|
76
87
|
'fetchMarkOHLCV': False,
|
88
|
+
'fetchMarkPrices': False,
|
89
|
+
'fetchMyLiquidations': False,
|
90
|
+
'fetchMySettlementHistory': False,
|
77
91
|
'fetchMyTrades': False,
|
78
92
|
'fetchOHLCV': True,
|
93
|
+
'fetchOpenInterest': False,
|
79
94
|
'fetchOpenInterestHistory': False,
|
80
95
|
'fetchOpenOrders': True,
|
96
|
+
'fetchOption': False,
|
97
|
+
'fetchOptionChain': False,
|
81
98
|
'fetchOrder': False,
|
82
99
|
'fetchOrderBook': True,
|
83
100
|
'fetchOrders': True,
|
84
101
|
'fetchPosition': False,
|
102
|
+
'fetchPositionHistory': False,
|
85
103
|
'fetchPositionMode': False,
|
86
104
|
'fetchPositions': False,
|
105
|
+
'fetchPositionsForSymbol': False,
|
106
|
+
'fetchPositionsHistory': False,
|
87
107
|
'fetchPositionsRisk': False,
|
88
108
|
'fetchPremiumIndexOHLCV': False,
|
109
|
+
'fetchSettlementHistory': False,
|
89
110
|
'fetchStatus': True,
|
90
111
|
'fetchTicker': True,
|
91
112
|
'fetchTickers': True,
|
@@ -96,6 +117,8 @@ class wazirx(Exchange, ImplicitAPI):
|
|
96
117
|
'fetchTransactionFees': False,
|
97
118
|
'fetchTransactions': False,
|
98
119
|
'fetchTransfers': False,
|
120
|
+
'fetchUnderlyingAssets': False,
|
121
|
+
'fetchVolatilityHistory': False,
|
99
122
|
'fetchWithdrawals': True,
|
100
123
|
'reduceMargin': False,
|
101
124
|
'repayCrossMargin': False,
|
@@ -196,9 +219,11 @@ class wazirx(Exchange, ImplicitAPI):
|
|
196
219
|
},
|
197
220
|
})
|
198
221
|
|
199
|
-
def fetch_markets(self, params={}):
|
222
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
200
223
|
"""
|
201
|
-
|
224
|
+
|
225
|
+
https://docs.wazirx.com/#exchange-info
|
226
|
+
|
202
227
|
retrieves data on all markets for wazirx
|
203
228
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
204
229
|
:returns dict[]: an array of objects representing market data
|
@@ -233,7 +258,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
233
258
|
markets = self.safe_value(response, 'symbols', [])
|
234
259
|
return self.parse_markets(markets)
|
235
260
|
|
236
|
-
def parse_market(self, market) -> Market:
|
261
|
+
def parse_market(self, market: dict) -> Market:
|
237
262
|
id = self.safe_string(market, 'symbol')
|
238
263
|
baseId = self.safe_string(market, 'baseAsset')
|
239
264
|
quoteId = self.safe_string(market, 'quoteAsset')
|
@@ -307,7 +332,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
307
332
|
|
308
333
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
309
334
|
"""
|
310
|
-
|
335
|
+
|
336
|
+
https://docs.wazirx.com/#kline-candlestick-data
|
337
|
+
|
311
338
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
312
339
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
313
340
|
:param str timeframe: the length of time each candle represents. Available values [1m,5m,15m,30m,1h,2h,4h,6h,12h,1d,1w]
|
@@ -319,12 +346,12 @@ class wazirx(Exchange, ImplicitAPI):
|
|
319
346
|
"""
|
320
347
|
self.load_markets()
|
321
348
|
market = self.market(symbol)
|
322
|
-
request = {
|
349
|
+
request: dict = {
|
323
350
|
'symbol': market['id'],
|
324
351
|
'interval': self.safe_string(self.timeframes, timeframe, timeframe),
|
325
352
|
}
|
326
353
|
if limit is not None:
|
327
|
-
request['limit'] = limit
|
354
|
+
request['limit'] = min(limit, 2000)
|
328
355
|
until = self.safe_integer(params, 'until')
|
329
356
|
params = self.omit(params, ['until'])
|
330
357
|
if since is not None:
|
@@ -355,7 +382,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
355
382
|
|
356
383
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
357
384
|
"""
|
358
|
-
|
385
|
+
|
386
|
+
https://docs.wazirx.com/#order-book
|
387
|
+
|
359
388
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
360
389
|
:param str symbol: unified symbol of the market to fetch the order book for
|
361
390
|
:param int [limit]: the maximum amount of order book entries to return
|
@@ -364,7 +393,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
364
393
|
"""
|
365
394
|
self.load_markets()
|
366
395
|
market = self.market(symbol)
|
367
|
-
request = {
|
396
|
+
request: dict = {
|
368
397
|
'symbol': market['id'],
|
369
398
|
}
|
370
399
|
if limit is not None:
|
@@ -388,7 +417,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
388
417
|
|
389
418
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
390
419
|
"""
|
391
|
-
|
420
|
+
|
421
|
+
https://docs.wazirx.com/#24hr-ticker-price-change-statistics
|
422
|
+
|
392
423
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
393
424
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
394
425
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -396,7 +427,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
396
427
|
"""
|
397
428
|
self.load_markets()
|
398
429
|
market = self.market(symbol)
|
399
|
-
request = {
|
430
|
+
request: dict = {
|
400
431
|
'symbol': market['id'],
|
401
432
|
}
|
402
433
|
ticker = self.publicGetTicker24hr(self.extend(request, params))
|
@@ -419,7 +450,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
419
450
|
|
420
451
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
421
452
|
"""
|
422
|
-
|
453
|
+
|
454
|
+
https://docs.wazirx.com/#24hr-tickers-price-change-statistics
|
455
|
+
|
423
456
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
424
457
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
425
458
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -444,7 +477,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
444
477
|
# ...
|
445
478
|
# ]
|
446
479
|
#
|
447
|
-
result = {}
|
480
|
+
result: dict = {}
|
448
481
|
for i in range(0, len(tickers)):
|
449
482
|
ticker = tickers[i]
|
450
483
|
parsedTicker = self.parse_ticker(ticker)
|
@@ -454,7 +487,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
454
487
|
|
455
488
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
456
489
|
"""
|
457
|
-
|
490
|
+
|
491
|
+
https://docs.wazirx.com/#recent-trades-list
|
492
|
+
|
458
493
|
get the list of most recent trades for a particular symbol
|
459
494
|
:param str symbol: unified symbol of the market to fetch trades for
|
460
495
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
@@ -464,7 +499,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
464
499
|
"""
|
465
500
|
self.load_markets()
|
466
501
|
market = self.market(symbol)
|
467
|
-
request = {
|
502
|
+
request: dict = {
|
468
503
|
'symbol': market['id'],
|
469
504
|
}
|
470
505
|
if limit is not None:
|
@@ -487,7 +522,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
487
522
|
# ]
|
488
523
|
return self.parse_trades(response, market, since, limit)
|
489
524
|
|
490
|
-
def parse_trade(self, trade, market: Market = None) -> Trade:
|
525
|
+
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
491
526
|
#
|
492
527
|
# {
|
493
528
|
# "id":322307791,
|
@@ -525,7 +560,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
525
560
|
|
526
561
|
def fetch_status(self, params={}):
|
527
562
|
"""
|
528
|
-
|
563
|
+
|
564
|
+
https://docs.wazirx.com/#system-status
|
565
|
+
|
529
566
|
the latest known information on the availability of the exchange API
|
530
567
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
531
568
|
:returns dict: a `status structure <https://docs.ccxt.com/#/?id=exchange-status-structure>`
|
@@ -548,7 +585,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
548
585
|
|
549
586
|
def fetch_time(self, params={}):
|
550
587
|
"""
|
551
|
-
|
588
|
+
|
589
|
+
https://docs.wazirx.com/#check-server-time
|
590
|
+
|
552
591
|
fetches the current integer timestamp in milliseconds from the exchange server
|
553
592
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
554
593
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
@@ -561,7 +600,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
561
600
|
#
|
562
601
|
return self.safe_integer(response, 'serverTime')
|
563
602
|
|
564
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
603
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
565
604
|
#
|
566
605
|
# {
|
567
606
|
# "symbol":"btcinr",
|
@@ -612,7 +651,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
612
651
|
}, market)
|
613
652
|
|
614
653
|
def parse_balance(self, response) -> Balances:
|
615
|
-
result = {'info': response}
|
654
|
+
result: dict = {'info': response}
|
616
655
|
for i in range(0, len(response)):
|
617
656
|
balance = response[i]
|
618
657
|
id = self.safe_string(balance, 'asset')
|
@@ -625,7 +664,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
625
664
|
|
626
665
|
def fetch_balance(self, params={}) -> Balances:
|
627
666
|
"""
|
628
|
-
|
667
|
+
|
668
|
+
https://docs.wazirx.com/#fund-details-user_data
|
669
|
+
|
629
670
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
630
671
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
631
672
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
@@ -645,7 +686,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
645
686
|
|
646
687
|
def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
647
688
|
"""
|
648
|
-
|
689
|
+
|
690
|
+
https://docs.wazirx.com/#all-orders-user_data
|
691
|
+
|
649
692
|
fetches information on multiple orders made by the user
|
650
693
|
:param str symbol: unified market symbol of the market orders were made in
|
651
694
|
:param int [since]: the earliest time in ms to fetch orders for
|
@@ -657,7 +700,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
657
700
|
raise ArgumentsRequired(self.id + ' fetchOrders() requires a symbol argument')
|
658
701
|
self.load_markets()
|
659
702
|
market = self.market(symbol)
|
660
|
-
request = {
|
703
|
+
request: dict = {
|
661
704
|
'symbol': market['id'],
|
662
705
|
}
|
663
706
|
if since is not None:
|
@@ -700,7 +743,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
700
743
|
|
701
744
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
702
745
|
"""
|
703
|
-
|
746
|
+
|
747
|
+
https://docs.wazirx.com/#current-open-orders-user_data
|
748
|
+
|
704
749
|
fetch all unfilled currently open orders
|
705
750
|
:param str symbol: unified market symbol
|
706
751
|
:param int [since]: the earliest time in ms to fetch open orders for
|
@@ -709,7 +754,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
709
754
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
710
755
|
"""
|
711
756
|
self.load_markets()
|
712
|
-
request = {}
|
757
|
+
request: dict = {}
|
713
758
|
market: Market = None
|
714
759
|
if symbol is not None:
|
715
760
|
market = self.market(symbol)
|
@@ -747,7 +792,9 @@ class wazirx(Exchange, ImplicitAPI):
|
|
747
792
|
|
748
793
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
749
794
|
"""
|
750
|
-
|
795
|
+
|
796
|
+
https://docs.wazirx.com/#cancel-all-open-orders-on-a-symbol-trade
|
797
|
+
|
751
798
|
cancel all open orders in a market
|
752
799
|
:param str symbol: unified market symbol of the market to cancel orders in
|
753
800
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -757,14 +804,35 @@ class wazirx(Exchange, ImplicitAPI):
|
|
757
804
|
raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
|
758
805
|
self.load_markets()
|
759
806
|
market = self.market(symbol)
|
760
|
-
request = {
|
807
|
+
request: dict = {
|
761
808
|
'symbol': market['id'],
|
762
809
|
}
|
763
|
-
|
810
|
+
response = self.privateDeleteOpenOrders(self.extend(request, params))
|
811
|
+
#
|
812
|
+
# [
|
813
|
+
# {
|
814
|
+
# id: "4565421197",
|
815
|
+
# symbol: "adausdt",
|
816
|
+
# type: "limit",
|
817
|
+
# side: "buy",
|
818
|
+
# status: "wait",
|
819
|
+
# price: "0.41",
|
820
|
+
# origQty: "11.00",
|
821
|
+
# executedQty: "0.00",
|
822
|
+
# avgPrice: "0.00",
|
823
|
+
# createdTime: "1718089507000",
|
824
|
+
# updatedTime: "1718089507000",
|
825
|
+
# clientOrderId: "93d2a838-e272-405d-91e7-3a7bc6d3a003"
|
826
|
+
# }
|
827
|
+
# ]
|
828
|
+
#
|
829
|
+
return self.parse_orders(response)
|
764
830
|
|
765
831
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
766
832
|
"""
|
767
|
-
|
833
|
+
|
834
|
+
https://docs.wazirx.com/#cancel-order-trade
|
835
|
+
|
768
836
|
cancels an open order
|
769
837
|
:param str id: order id
|
770
838
|
:param str symbol: unified symbol of the market the order was made in
|
@@ -775,7 +843,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
775
843
|
raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
|
776
844
|
self.load_markets()
|
777
845
|
market = self.market(symbol)
|
778
|
-
request = {
|
846
|
+
request: dict = {
|
779
847
|
'symbol': market['id'],
|
780
848
|
'orderId': id,
|
781
849
|
}
|
@@ -784,13 +852,15 @@ class wazirx(Exchange, ImplicitAPI):
|
|
784
852
|
|
785
853
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
786
854
|
"""
|
787
|
-
|
855
|
+
|
856
|
+
https://docs.wazirx.com/#new-order-trade
|
857
|
+
|
788
858
|
create a trade order
|
789
859
|
:param str symbol: unified symbol of the market to create an order in
|
790
860
|
:param str type: 'market' or 'limit'
|
791
861
|
:param str side: 'buy' or 'sell'
|
792
862
|
:param float amount: how much of currency you want to trade in units of base currency
|
793
|
-
:param float [price]: the price at which the order is to be
|
863
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
794
864
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
795
865
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
796
866
|
"""
|
@@ -801,7 +871,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
801
871
|
raise ExchangeError(self.id + ' createOrder() requires a price argument')
|
802
872
|
self.load_markets()
|
803
873
|
market = self.market(symbol)
|
804
|
-
request = {
|
874
|
+
request: dict = {
|
805
875
|
'symbol': market['id'],
|
806
876
|
'side': side,
|
807
877
|
'quantity': amount,
|
@@ -827,19 +897,23 @@ class wazirx(Exchange, ImplicitAPI):
|
|
827
897
|
# }
|
828
898
|
return self.parse_order(response, market)
|
829
899
|
|
830
|
-
def parse_order(self, order, market: Market = None) -> Order:
|
831
|
-
#
|
832
|
-
#
|
833
|
-
#
|
834
|
-
#
|
835
|
-
#
|
836
|
-
#
|
837
|
-
#
|
838
|
-
#
|
839
|
-
#
|
840
|
-
#
|
841
|
-
#
|
842
|
-
#
|
900
|
+
def parse_order(self, order: dict, market: Market = None) -> Order:
|
901
|
+
#
|
902
|
+
# {
|
903
|
+
# "id": 1949417813,
|
904
|
+
# "symbol": "ltcusdt",
|
905
|
+
# "type": "limit",
|
906
|
+
# "side": "sell",
|
907
|
+
# "status": "done",
|
908
|
+
# "price": "146.2",
|
909
|
+
# "origQty": "0.05",
|
910
|
+
# "executedQty": "0.05",
|
911
|
+
# "avgPrice": "0.00",
|
912
|
+
# "createdTime": 1641252564000,
|
913
|
+
# "updatedTime": 1641252564000
|
914
|
+
# "clientOrderId": "93d2a838-e272-405d-91e7-3a7bc6d3a003"
|
915
|
+
# }
|
916
|
+
#
|
843
917
|
created = self.safe_integer(order, 'createdTime')
|
844
918
|
updated = self.safe_integer(order, 'updatedTime')
|
845
919
|
marketId = self.safe_string(order, 'symbol')
|
@@ -854,7 +928,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
854
928
|
return self.safe_order({
|
855
929
|
'info': order,
|
856
930
|
'id': id,
|
857
|
-
'clientOrderId':
|
931
|
+
'clientOrderId': self.safe_string(order, 'clientOrderId'),
|
858
932
|
'timestamp': created,
|
859
933
|
'datetime': self.iso8601(created),
|
860
934
|
'lastTradeTimestamp': updated,
|
@@ -870,22 +944,24 @@ class wazirx(Exchange, ImplicitAPI):
|
|
870
944
|
'remaining': None,
|
871
945
|
'cost': None,
|
872
946
|
'fee': None,
|
873
|
-
'average':
|
947
|
+
'average': self.safe_string(order, 'avgPrice'),
|
874
948
|
'trades': [],
|
875
949
|
}, market)
|
876
950
|
|
877
|
-
def parse_order_status(self, status):
|
878
|
-
statuses = {
|
951
|
+
def parse_order_status(self, status: Str):
|
952
|
+
statuses: dict = {
|
879
953
|
'wait': 'open',
|
880
954
|
'done': 'closed',
|
881
955
|
'cancel': 'canceled',
|
882
956
|
}
|
883
957
|
return self.safe_string(statuses, status, status)
|
884
958
|
|
885
|
-
def fetch_currencies(self, params={}):
|
959
|
+
def fetch_currencies(self, params={}) -> Currencies:
|
886
960
|
"""
|
887
961
|
fetches all available currencies on an exchange
|
888
|
-
|
962
|
+
|
963
|
+
https://docs.wazirx.com/#all-coins-39-information-user_data
|
964
|
+
|
889
965
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
890
966
|
:returns dict: an associative dictionary of currencies
|
891
967
|
"""
|
@@ -938,14 +1014,14 @@ class wazirx(Exchange, ImplicitAPI):
|
|
938
1014
|
# }
|
939
1015
|
# ]
|
940
1016
|
#
|
941
|
-
result = {}
|
1017
|
+
result: dict = {}
|
942
1018
|
for i in range(0, len(response)):
|
943
1019
|
currency = response[i]
|
944
1020
|
currencyId = self.safe_string(currency, 'currency')
|
945
1021
|
code = self.safe_currency_code(currencyId)
|
946
1022
|
name = self.safe_string(currency, 'name')
|
947
1023
|
chains = self.safe_list(currency, 'networkList', [])
|
948
|
-
networks = {}
|
1024
|
+
networks: dict = {}
|
949
1025
|
minPrecision = None
|
950
1026
|
minWithdrawFeeString = None
|
951
1027
|
minWithdrawString = None
|
@@ -1023,10 +1099,12 @@ class wazirx(Exchange, ImplicitAPI):
|
|
1023
1099
|
}
|
1024
1100
|
return result
|
1025
1101
|
|
1026
|
-
def fetch_deposit_address(self, code: str, params={}):
|
1102
|
+
def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
1027
1103
|
"""
|
1028
1104
|
fetch the deposit address for a currency associated with self account
|
1029
|
-
|
1105
|
+
|
1106
|
+
https://docs.wazirx.com/#deposit-address-supporting-network-user_data
|
1107
|
+
|
1030
1108
|
:param str code: unified currency code of the currency for the deposit address
|
1031
1109
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1032
1110
|
:param str [params.network]: unified network code, you can get network from fetchCurrencies
|
@@ -1038,7 +1116,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
1038
1116
|
params = self.omit(params, 'network')
|
1039
1117
|
if networkCode is None:
|
1040
1118
|
raise ArgumentsRequired(self.id + ' fetchDepositAddress() requires a network parameter')
|
1041
|
-
request = {
|
1119
|
+
request: dict = {
|
1042
1120
|
'coin': currency['id'],
|
1043
1121
|
'network': self.network_code_to_id(networkCode, code),
|
1044
1122
|
}
|
@@ -1051,17 +1129,19 @@ class wazirx(Exchange, ImplicitAPI):
|
|
1051
1129
|
# }
|
1052
1130
|
#
|
1053
1131
|
return {
|
1132
|
+
'info': response,
|
1054
1133
|
'currency': code,
|
1134
|
+
'network': self.network_code_to_id(networkCode, code),
|
1055
1135
|
'address': self.safe_string(response, 'address'),
|
1056
1136
|
'tag': None,
|
1057
|
-
'network': self.network_code_to_id(networkCode, code),
|
1058
|
-
'info': response,
|
1059
1137
|
}
|
1060
1138
|
|
1061
1139
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1062
1140
|
"""
|
1063
1141
|
fetch all withdrawals made from an account
|
1064
|
-
|
1142
|
+
|
1143
|
+
https://docs.wazirx.com/#withdraw-history-supporting-network-user_data
|
1144
|
+
|
1065
1145
|
:param str code: unified currency code
|
1066
1146
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
1067
1147
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
@@ -1070,7 +1150,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
1070
1150
|
:returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
|
1071
1151
|
"""
|
1072
1152
|
self.load_markets()
|
1073
|
-
request = {}
|
1153
|
+
request: dict = {}
|
1074
1154
|
currency = None
|
1075
1155
|
if code is not None:
|
1076
1156
|
currency = self.currency(code)
|
@@ -1104,8 +1184,8 @@ class wazirx(Exchange, ImplicitAPI):
|
|
1104
1184
|
#
|
1105
1185
|
return self.parse_transactions(response, currency, since, limit)
|
1106
1186
|
|
1107
|
-
def parse_transaction_status(self, status):
|
1108
|
-
statuses = {
|
1187
|
+
def parse_transaction_status(self, status: Str):
|
1188
|
+
statuses: dict = {
|
1109
1189
|
'0': 'ok',
|
1110
1190
|
'1': 'fail',
|
1111
1191
|
'2': 'pending',
|
@@ -1113,7 +1193,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
1113
1193
|
}
|
1114
1194
|
return self.safe_string(statuses, status, status)
|
1115
1195
|
|
1116
|
-
def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
|
1196
|
+
def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
|
1117
1197
|
#
|
1118
1198
|
# {
|
1119
1199
|
# "address": "0x94df8b352de7f46f64b01d3666bf6e936e44ce60",
|
@@ -1184,7 +1264,7 @@ class wazirx(Exchange, ImplicitAPI):
|
|
1184
1264
|
}
|
1185
1265
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
1186
1266
|
|
1187
|
-
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
1267
|
+
def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
|
1188
1268
|
#
|
1189
1269
|
# {"code":2098,"message":"Request out of receiving window."}
|
1190
1270
|
#
|