ccxt 4.2.77__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 +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 +3104 -880
- 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 +1513 -563
- 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 +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 +404 -109
- ccxt/async_support/deribit.py +557 -323
- 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 +1472 -463
- 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 +1633 -268
- 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 +917 -357
- 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 +1776 -454
- 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 +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 +3104 -880
- 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 +1513 -563
- 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 +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 +404 -109
- ccxt/deribit.py +557 -323
- ccxt/digifinex.py +340 -223
- ccxt/ellipx.py +1826 -0
- ccxt/exmo.py +259 -128
- ccxt/gate.py +1472 -463
- 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 +1632 -268
- 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 +917 -357
- 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 +1776 -454
- 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 +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 +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 +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.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.77.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.77.dist-info/METADATA +0 -626
- ccxt-4.2.77.dist-info/RECORD +0 -534
- {ccxt-4.2.77.dist-info → ccxt-4.4.48.dist-info}/top_level.txt +0 -0
ccxt/idex.py
CHANGED
@@ -6,9 +6,10 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.idex 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, TradingFees, Transaction
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
|
+
from ccxt.base.errors import AuthenticationError
|
12
13
|
from ccxt.base.errors import BadRequest
|
13
14
|
from ccxt.base.errors import InsufficientFunds
|
14
15
|
from ccxt.base.errors import InvalidAddress
|
@@ -16,10 +17,8 @@ from ccxt.base.errors import InvalidOrder
|
|
16
17
|
from ccxt.base.errors import NotSupported
|
17
18
|
from ccxt.base.errors import DDoSProtection
|
18
19
|
from ccxt.base.errors import ExchangeNotAvailable
|
19
|
-
from ccxt.base.errors import AuthenticationError
|
20
20
|
from ccxt.base.decimal_to_precision import ROUND
|
21
21
|
from ccxt.base.decimal_to_precision import TRUNCATE
|
22
|
-
from ccxt.base.decimal_to_precision import DECIMAL_PLACES
|
23
22
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
24
23
|
from ccxt.base.decimal_to_precision import PAD_WITH_ZERO
|
25
24
|
from ccxt.base.precise import Precise
|
@@ -35,6 +34,7 @@ class idex(Exchange, ImplicitAPI):
|
|
35
34
|
'rateLimit': 1000,
|
36
35
|
'version': 'v3',
|
37
36
|
'pro': True,
|
37
|
+
'dex': True,
|
38
38
|
'certified': False,
|
39
39
|
'requiresWeb3': True,
|
40
40
|
'has': {
|
@@ -88,8 +88,11 @@ class idex(Exchange, ImplicitAPI):
|
|
88
88
|
'fetchOrderBook': True,
|
89
89
|
'fetchOrders': False,
|
90
90
|
'fetchPosition': False,
|
91
|
+
'fetchPositionHistory': False,
|
91
92
|
'fetchPositionMode': False,
|
92
93
|
'fetchPositions': False,
|
94
|
+
'fetchPositionsForSymbol': False,
|
95
|
+
'fetchPositionsHistory': False,
|
93
96
|
'fetchPositionsRisk': False,
|
94
97
|
'fetchPremiumIndexOHLCV': False,
|
95
98
|
'fetchStatus': True,
|
@@ -103,6 +106,7 @@ class idex(Exchange, ImplicitAPI):
|
|
103
106
|
'fetchWithdrawal': True,
|
104
107
|
'fetchWithdrawals': True,
|
105
108
|
'reduceMargin': False,
|
109
|
+
'sandbox': True,
|
106
110
|
'setLeverage': False,
|
107
111
|
'setMarginMode': False,
|
108
112
|
'setPositionMode': False,
|
@@ -173,13 +177,15 @@ class idex(Exchange, ImplicitAPI):
|
|
173
177
|
'network': 'MATIC',
|
174
178
|
},
|
175
179
|
'exceptions': {
|
176
|
-
'
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
180
|
+
'exact': {
|
181
|
+
'INVALID_ORDER_QUANTITY': InvalidOrder,
|
182
|
+
'INSUFFICIENT_FUNDS': InsufficientFunds,
|
183
|
+
'SERVICE_UNAVAILABLE': ExchangeNotAvailable,
|
184
|
+
'EXCEEDED_RATE_LIMIT': DDoSProtection,
|
185
|
+
'INVALID_PARAMETER': BadRequest,
|
186
|
+
'WALLET_NOT_ASSOCIATED': InvalidAddress,
|
187
|
+
'INVALID_WALLET_SIGNATURE': AuthenticationError,
|
188
|
+
},
|
183
189
|
},
|
184
190
|
'requiredCredentials': {
|
185
191
|
'walletAddress': True,
|
@@ -199,15 +205,15 @@ class idex(Exchange, ImplicitAPI):
|
|
199
205
|
# {"code":"INVALID_PARAMETER","message":"invalid value provided for request parameter \"price\": all quantities and prices must be below 100 billion, above 0, need to be provided, and always require 4 decimals ending with 4 zeroes"}
|
200
206
|
#
|
201
207
|
market = self.market(symbol)
|
202
|
-
info = self.safe_value(market, 'info', {})
|
203
|
-
quoteAssetPrecision = self.safe_integer(info, 'quoteAssetPrecision')
|
204
208
|
price = self.decimal_to_precision(price, ROUND, market['precision']['price'], self.precisionMode)
|
205
|
-
return self.decimal_to_precision(price, TRUNCATE,
|
209
|
+
return self.decimal_to_precision(price, TRUNCATE, market['precision']['quote'], TICK_SIZE, PAD_WITH_ZERO)
|
206
210
|
|
207
|
-
def fetch_markets(self, params={}):
|
211
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
208
212
|
"""
|
209
213
|
retrieves data on all markets for idex
|
210
|
-
|
214
|
+
|
215
|
+
https://api-docs-v3.idex.io/#get-markets
|
216
|
+
|
211
217
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
212
218
|
:returns dict[]: an array of objects representing market data
|
213
219
|
"""
|
@@ -307,6 +313,8 @@ class idex(Exchange, ImplicitAPI):
|
|
307
313
|
'precision': {
|
308
314
|
'amount': basePrecision,
|
309
315
|
'price': self.safe_number(entry, 'tickSize'),
|
316
|
+
'base': basePrecision,
|
317
|
+
'quote': quotePrecision,
|
310
318
|
},
|
311
319
|
'limits': {
|
312
320
|
'leverage': {
|
@@ -334,14 +342,16 @@ class idex(Exchange, ImplicitAPI):
|
|
334
342
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
335
343
|
"""
|
336
344
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
337
|
-
|
345
|
+
|
346
|
+
https://api-docs-v3.idex.io/#get-tickers
|
347
|
+
|
338
348
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
339
349
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
340
350
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
341
351
|
"""
|
342
352
|
self.load_markets()
|
343
353
|
market = self.market(symbol)
|
344
|
-
request = {
|
354
|
+
request: dict = {
|
345
355
|
'market': market['id'],
|
346
356
|
}
|
347
357
|
# [
|
@@ -363,13 +373,15 @@ class idex(Exchange, ImplicitAPI):
|
|
363
373
|
# }
|
364
374
|
# ]
|
365
375
|
response = self.publicGetTickers(self.extend(request, params))
|
366
|
-
ticker = self.
|
376
|
+
ticker = self.safe_dict(response, 0)
|
367
377
|
return self.parse_ticker(ticker, market)
|
368
378
|
|
369
379
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
370
380
|
"""
|
371
381
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
372
|
-
|
382
|
+
|
383
|
+
https://api-docs-v3.idex.io/#get-tickers
|
384
|
+
|
373
385
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
374
386
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
375
387
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -396,7 +408,7 @@ class idex(Exchange, ImplicitAPI):
|
|
396
408
|
response = self.publicGetTickers(params)
|
397
409
|
return self.parse_tickers(response, symbols)
|
398
410
|
|
399
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
411
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
400
412
|
# {
|
401
413
|
# "market": "DIL-ETH",
|
402
414
|
# "time": 1598367493008,
|
@@ -444,7 +456,9 @@ class idex(Exchange, ImplicitAPI):
|
|
444
456
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
445
457
|
"""
|
446
458
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
447
|
-
|
459
|
+
|
460
|
+
https://api-docs-v3.idex.io/#get-candles
|
461
|
+
|
448
462
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
449
463
|
:param str timeframe: the length of time each candle represents
|
450
464
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -454,14 +468,14 @@ class idex(Exchange, ImplicitAPI):
|
|
454
468
|
"""
|
455
469
|
self.load_markets()
|
456
470
|
market = self.market(symbol)
|
457
|
-
request = {
|
471
|
+
request: dict = {
|
458
472
|
'market': market['id'],
|
459
473
|
'interval': timeframe,
|
460
474
|
}
|
461
475
|
if since is not None:
|
462
476
|
request['start'] = since
|
463
477
|
if limit is not None:
|
464
|
-
request['limit'] = limit
|
478
|
+
request['limit'] = min(limit, 1000)
|
465
479
|
response = self.publicGetCandles(self.extend(request, params))
|
466
480
|
if isinstance(response, list):
|
467
481
|
# [
|
@@ -501,7 +515,9 @@ class idex(Exchange, ImplicitAPI):
|
|
501
515
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
502
516
|
"""
|
503
517
|
get the list of most recent trades for a particular symbol
|
504
|
-
|
518
|
+
|
519
|
+
https://api-docs-v3.idex.io/#get-trades
|
520
|
+
|
505
521
|
:param str symbol: unified symbol of the market to fetch trades for
|
506
522
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
507
523
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -510,7 +526,7 @@ class idex(Exchange, ImplicitAPI):
|
|
510
526
|
"""
|
511
527
|
self.load_markets()
|
512
528
|
market = self.market(symbol)
|
513
|
-
request = {
|
529
|
+
request: dict = {
|
514
530
|
'market': market['id'],
|
515
531
|
}
|
516
532
|
if since is not None:
|
@@ -531,7 +547,7 @@ class idex(Exchange, ImplicitAPI):
|
|
531
547
|
response = self.publicGetTrades(self.extend(request, params))
|
532
548
|
return self.parse_trades(response, market, since, limit)
|
533
549
|
|
534
|
-
def parse_trade(self, trade, market: Market = None) -> Trade:
|
550
|
+
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
535
551
|
#
|
536
552
|
# public trades
|
537
553
|
# {
|
@@ -607,17 +623,19 @@ class idex(Exchange, ImplicitAPI):
|
|
607
623
|
'fee': fee,
|
608
624
|
}, market)
|
609
625
|
|
610
|
-
def fetch_trading_fees(self, params={}):
|
626
|
+
def fetch_trading_fees(self, params={}) -> TradingFees:
|
611
627
|
"""
|
612
628
|
fetch the trading fees for multiple markets
|
613
|
-
|
629
|
+
|
630
|
+
https://api-docs-v3.idex.io/#get-api-account
|
631
|
+
|
614
632
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
615
633
|
:returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
|
616
634
|
"""
|
617
635
|
self.check_required_credentials()
|
618
636
|
self.load_markets()
|
619
637
|
nonce = self.uuidv1()
|
620
|
-
request = {
|
638
|
+
request: dict = {
|
621
639
|
'nonce': nonce,
|
622
640
|
}
|
623
641
|
response = None
|
@@ -637,7 +655,7 @@ class idex(Exchange, ImplicitAPI):
|
|
637
655
|
#
|
638
656
|
maker = self.safe_number(response, 'makerFeeRate')
|
639
657
|
taker = self.safe_number(response, 'takerFeeRate')
|
640
|
-
result = {}
|
658
|
+
result: dict = {}
|
641
659
|
for i in range(0, len(self.symbols)):
|
642
660
|
symbol = self.symbols[i]
|
643
661
|
result[symbol] = {
|
@@ -653,7 +671,9 @@ class idex(Exchange, ImplicitAPI):
|
|
653
671
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
654
672
|
"""
|
655
673
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
656
|
-
|
674
|
+
|
675
|
+
https://api-docs-v3.idex.io/#get-order-books
|
676
|
+
|
657
677
|
:param str symbol: unified symbol of the market to fetch the order book for
|
658
678
|
:param int [limit]: the maximum amount of order book entries to return
|
659
679
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -661,7 +681,7 @@ class idex(Exchange, ImplicitAPI):
|
|
661
681
|
"""
|
662
682
|
self.load_markets()
|
663
683
|
market = self.market(symbol)
|
664
|
-
request = {
|
684
|
+
request: dict = {
|
665
685
|
'market': market['id'],
|
666
686
|
'level': 2,
|
667
687
|
}
|
@@ -710,10 +730,12 @@ class idex(Exchange, ImplicitAPI):
|
|
710
730
|
descending = side == 'bids'
|
711
731
|
return self.sort_by(result, 0, descending)
|
712
732
|
|
713
|
-
def fetch_currencies(self, params={}):
|
733
|
+
def fetch_currencies(self, params={}) -> Currencies:
|
714
734
|
"""
|
715
735
|
fetches all available currencies on an exchange
|
716
|
-
|
736
|
+
|
737
|
+
https://api-docs-v3.idex.io/#get-assets
|
738
|
+
|
717
739
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
718
740
|
:returns dict: an associative dictionary of currencies
|
719
741
|
"""
|
@@ -730,7 +752,7 @@ class idex(Exchange, ImplicitAPI):
|
|
730
752
|
# },
|
731
753
|
# ]
|
732
754
|
#
|
733
|
-
result = {}
|
755
|
+
result: dict = {}
|
734
756
|
for i in range(0, len(response)):
|
735
757
|
entry = response[i]
|
736
758
|
name = self.safe_string(entry, 'name')
|
@@ -756,7 +778,7 @@ class idex(Exchange, ImplicitAPI):
|
|
756
778
|
return result
|
757
779
|
|
758
780
|
def parse_balance(self, response) -> Balances:
|
759
|
-
result = {
|
781
|
+
result: dict = {
|
760
782
|
'info': response,
|
761
783
|
'timestamp': None,
|
762
784
|
'datetime': None,
|
@@ -775,14 +797,16 @@ class idex(Exchange, ImplicitAPI):
|
|
775
797
|
def fetch_balance(self, params={}) -> Balances:
|
776
798
|
"""
|
777
799
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
778
|
-
|
800
|
+
|
801
|
+
https://api-docs-v3.idex.io/#get-balances
|
802
|
+
|
779
803
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
780
804
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
781
805
|
"""
|
782
806
|
self.check_required_credentials()
|
783
807
|
self.load_markets()
|
784
808
|
nonce1 = self.uuidv1()
|
785
|
-
request = {
|
809
|
+
request: dict = {
|
786
810
|
'nonce': nonce1,
|
787
811
|
'wallet': self.walletAddress,
|
788
812
|
}
|
@@ -813,7 +837,9 @@ class idex(Exchange, ImplicitAPI):
|
|
813
837
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
814
838
|
"""
|
815
839
|
fetch all trades made by the user
|
816
|
-
|
840
|
+
|
841
|
+
https://api-docs-v3.idex.io/#get-fills
|
842
|
+
|
817
843
|
:param str symbol: unified market symbol
|
818
844
|
:param int [since]: the earliest time in ms to fetch trades for
|
819
845
|
:param int [limit]: the maximum number of trades structures to retrieve
|
@@ -823,7 +849,7 @@ class idex(Exchange, ImplicitAPI):
|
|
823
849
|
self.check_required_credentials()
|
824
850
|
self.load_markets()
|
825
851
|
market = None
|
826
|
-
request = {
|
852
|
+
request: dict = {
|
827
853
|
'nonce': self.uuidv1(),
|
828
854
|
'wallet': self.walletAddress,
|
829
855
|
}
|
@@ -872,12 +898,15 @@ class idex(Exchange, ImplicitAPI):
|
|
872
898
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
873
899
|
"""
|
874
900
|
fetches information on an order made by the user
|
875
|
-
|
901
|
+
|
902
|
+
https://api-docs-v3.idex.io/#get-orders
|
903
|
+
|
904
|
+
:param str id: order id
|
876
905
|
:param str symbol: unified symbol of the market the order was made in
|
877
906
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
878
907
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
879
908
|
"""
|
880
|
-
request = {
|
909
|
+
request: dict = {
|
881
910
|
'orderId': id,
|
882
911
|
}
|
883
912
|
return self.fetch_orders_helper(symbol, None, None, self.extend(request, params))
|
@@ -885,14 +914,16 @@ class idex(Exchange, ImplicitAPI):
|
|
885
914
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
886
915
|
"""
|
887
916
|
fetch all unfilled currently open orders
|
888
|
-
|
917
|
+
|
918
|
+
https://api-docs-v3.idex.io/#get-orders
|
919
|
+
|
889
920
|
:param str symbol: unified market symbol
|
890
921
|
:param int [since]: the earliest time in ms to fetch open orders for
|
891
922
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
892
923
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
893
924
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
894
925
|
"""
|
895
|
-
request = {
|
926
|
+
request: dict = {
|
896
927
|
'closed': False,
|
897
928
|
}
|
898
929
|
return self.fetch_orders_helper(symbol, since, limit, self.extend(request, params))
|
@@ -900,21 +931,23 @@ class idex(Exchange, ImplicitAPI):
|
|
900
931
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
901
932
|
"""
|
902
933
|
fetches information on multiple closed orders made by the user
|
903
|
-
|
934
|
+
|
935
|
+
https://api-docs-v3.idex.io/#get-orders
|
936
|
+
|
904
937
|
:param str symbol: unified market symbol of the market orders were made in
|
905
938
|
:param int [since]: the earliest time in ms to fetch orders for
|
906
939
|
:param int [limit]: the maximum number of order structures to retrieve
|
907
940
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
908
941
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
909
942
|
"""
|
910
|
-
request = {
|
943
|
+
request: dict = {
|
911
944
|
'closed': True,
|
912
945
|
}
|
913
946
|
return self.fetch_orders_helper(symbol, since, limit, self.extend(request, params))
|
914
947
|
|
915
948
|
def fetch_orders_helper(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
916
949
|
self.load_markets()
|
917
|
-
request = {
|
950
|
+
request: dict = {
|
918
951
|
'nonce': self.uuidv1(),
|
919
952
|
'wallet': self.walletAddress,
|
920
953
|
}
|
@@ -993,9 +1026,9 @@ class idex(Exchange, ImplicitAPI):
|
|
993
1026
|
else:
|
994
1027
|
return self.parse_order(response, market)
|
995
1028
|
|
996
|
-
def parse_order_status(self, status):
|
1029
|
+
def parse_order_status(self, status: Str):
|
997
1030
|
# https://docs.idex.io/#order-states-amp-lifecycle
|
998
|
-
statuses = {
|
1031
|
+
statuses: dict = {
|
999
1032
|
'active': 'open',
|
1000
1033
|
'partiallyFilled': 'open',
|
1001
1034
|
'rejected': 'canceled',
|
@@ -1003,7 +1036,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1003
1036
|
}
|
1004
1037
|
return self.safe_string(statuses, status, status)
|
1005
1038
|
|
1006
|
-
def parse_order(self, order, market: Market = None) -> Order:
|
1039
|
+
def parse_order(self, order: dict, market: Market = None) -> Order:
|
1007
1040
|
#
|
1008
1041
|
# {
|
1009
1042
|
# "market": "DIL-ETH",
|
@@ -1065,7 +1098,6 @@ class idex(Exchange, ImplicitAPI):
|
|
1065
1098
|
'postOnly': None,
|
1066
1099
|
'side': side,
|
1067
1100
|
'price': price,
|
1068
|
-
'stopPrice': None,
|
1069
1101
|
'triggerPrice': None,
|
1070
1102
|
'amount': amount,
|
1071
1103
|
'cost': None,
|
@@ -1092,7 +1124,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1092
1124
|
# "totalPortfolioValueUsd": "0.00",
|
1093
1125
|
# "time": 1598468353626
|
1094
1126
|
# }
|
1095
|
-
request = {
|
1127
|
+
request: dict = {
|
1096
1128
|
'parameters': {
|
1097
1129
|
'nonce': nonce,
|
1098
1130
|
'wallet': walletAddress,
|
@@ -1105,12 +1137,14 @@ class idex(Exchange, ImplicitAPI):
|
|
1105
1137
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
1106
1138
|
"""
|
1107
1139
|
create a trade order, https://docs.idex.io/#create-order
|
1108
|
-
|
1140
|
+
|
1141
|
+
https://api-docs-v3.idex.io/#create-order
|
1142
|
+
|
1109
1143
|
:param str symbol: unified symbol of the market to create an order in
|
1110
1144
|
:param str type: 'market' or 'limit'
|
1111
1145
|
:param str side: 'buy' or 'sell'
|
1112
1146
|
:param float amount: how much of currency you want to trade in units of base currency
|
1113
|
-
:param float [price]: the price at which the order is to be
|
1147
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1114
1148
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1115
1149
|
:param bool [params.test]: set to True to test an order, no order will be created but the request will be validated
|
1116
1150
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1122,18 +1156,19 @@ class idex(Exchange, ImplicitAPI):
|
|
1122
1156
|
market = self.market(symbol)
|
1123
1157
|
nonce = self.uuidv1()
|
1124
1158
|
typeEnum = None
|
1125
|
-
stopLossTypeEnums = {
|
1159
|
+
stopLossTypeEnums: dict = {
|
1126
1160
|
'stopLoss': 3,
|
1127
1161
|
'stopLossLimit': 4,
|
1128
1162
|
'takeProfit': 5,
|
1129
1163
|
'takeProfitLimit': 6,
|
1130
1164
|
}
|
1131
|
-
|
1132
|
-
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1165
|
+
triggerPrice = self.safe_string(params, 'triggerPrice', 'stopPrice')
|
1166
|
+
triggerPriceString = None
|
1167
|
+
if (type == 'stopLossLimit') or (type == 'takeProfitLimit'):
|
1168
|
+
if triggerPrice is None:
|
1169
|
+
raise BadRequest(self.id + ' createOrder() triggerPrice is a required parameter for ' + type + 'orders')
|
1170
|
+
triggerPriceString = self.price_to_precision(symbol, triggerPrice)
|
1171
|
+
limitTypeEnums: dict = {
|
1137
1172
|
'limit': 1,
|
1138
1173
|
'limitMaker': 2,
|
1139
1174
|
}
|
@@ -1166,7 +1201,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1166
1201
|
})
|
1167
1202
|
amountString = self.amount_to_precision(symbol, amount)
|
1168
1203
|
# https://docs.idex.io/#time-in-force
|
1169
|
-
timeInForceEnums = {
|
1204
|
+
timeInForceEnums: dict = {
|
1170
1205
|
'gtc': 0,
|
1171
1206
|
'ioc': 2,
|
1172
1207
|
'fok': 3,
|
@@ -1181,7 +1216,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1181
1216
|
asString = ', '.join(allOptions)
|
1182
1217
|
raise BadRequest(self.id + ' ' + timeInForce + ' is not a valid timeInForce, please choose one of ' + asString)
|
1183
1218
|
# https://docs.idex.io/#self-trade-prevention
|
1184
|
-
selfTradePreventionEnums = {
|
1219
|
+
selfTradePreventionEnums: dict = {
|
1185
1220
|
'dc': 0,
|
1186
1221
|
'co': 1,
|
1187
1222
|
'cn': 2,
|
@@ -1210,7 +1245,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1210
1245
|
encodedPrice = self.encode(priceString)
|
1211
1246
|
byteArray.append(encodedPrice)
|
1212
1247
|
if type in stopLossTypeEnums:
|
1213
|
-
encodedPrice = self.encode(
|
1248
|
+
encodedPrice = self.encode(triggerPriceString or priceString)
|
1214
1249
|
byteArray.append(encodedPrice)
|
1215
1250
|
clientOrderId = self.safe_string(params, 'clientOrderId')
|
1216
1251
|
if clientOrderId is not None:
|
@@ -1224,7 +1259,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1224
1259
|
binary = self.binary_concat_array(allBytes)
|
1225
1260
|
hash = self.hash(binary, 'keccak', 'hex')
|
1226
1261
|
signature = self.sign_message_string(hash, self.privateKey)
|
1227
|
-
request = {
|
1262
|
+
request: dict = {
|
1228
1263
|
'parameters': {
|
1229
1264
|
'nonce': nonce,
|
1230
1265
|
'market': market['id'],
|
@@ -1240,7 +1275,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1240
1275
|
if limitOrder:
|
1241
1276
|
request['parameters']['price'] = priceString
|
1242
1277
|
if type in stopLossTypeEnums:
|
1243
|
-
request['parameters']['stopPrice'] =
|
1278
|
+
request['parameters']['stopPrice'] = triggerPriceString or priceString
|
1244
1279
|
if amountEnum == 0:
|
1245
1280
|
request['parameters']['quantity'] = amountString
|
1246
1281
|
else:
|
@@ -1285,10 +1320,12 @@ class idex(Exchange, ImplicitAPI):
|
|
1285
1320
|
response = self.privatePostOrders(request)
|
1286
1321
|
return self.parse_order(response, market)
|
1287
1322
|
|
1288
|
-
def withdraw(self, code: str, amount: float, address, tag=None, params={}):
|
1323
|
+
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
1289
1324
|
"""
|
1290
1325
|
make a withdrawal
|
1291
|
-
|
1326
|
+
|
1327
|
+
https://api-docs-v3.idex.io/#withdraw-funds
|
1328
|
+
|
1292
1329
|
:param str code: unified currency code
|
1293
1330
|
:param float amount: the amount to withdraw
|
1294
1331
|
:param str address: the address to withdraw to
|
@@ -1313,7 +1350,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1313
1350
|
binary = self.binary_concat_array(byteArray)
|
1314
1351
|
hash = self.hash(binary, 'keccak', 'hex')
|
1315
1352
|
signature = self.sign_message_string(hash, self.privateKey)
|
1316
|
-
request = {
|
1353
|
+
request: dict = {
|
1317
1354
|
'parameters': {
|
1318
1355
|
'nonce': nonce,
|
1319
1356
|
'wallet': address,
|
@@ -1340,7 +1377,9 @@ class idex(Exchange, ImplicitAPI):
|
|
1340
1377
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
1341
1378
|
"""
|
1342
1379
|
cancel all open orders
|
1343
|
-
|
1380
|
+
|
1381
|
+
https://api-docs-v3.idex.io/#cancel-order
|
1382
|
+
|
1344
1383
|
:param str symbol: unified market symbol, only orders in the market of self symbol are cancelled when symbol is not None
|
1345
1384
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1346
1385
|
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1351,7 +1390,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1351
1390
|
if symbol is not None:
|
1352
1391
|
market = self.market(symbol)
|
1353
1392
|
nonce = self.uuidv1()
|
1354
|
-
request = {
|
1393
|
+
request: dict = {
|
1355
1394
|
'parameters': {
|
1356
1395
|
'nonce': nonce,
|
1357
1396
|
'wallet': self.walletAddress,
|
@@ -1376,7 +1415,9 @@ class idex(Exchange, ImplicitAPI):
|
|
1376
1415
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
1377
1416
|
"""
|
1378
1417
|
cancels an open order
|
1379
|
-
|
1418
|
+
|
1419
|
+
https://api-docs-v3.idex.io/#cancel-order
|
1420
|
+
|
1380
1421
|
:param str id: order id
|
1381
1422
|
:param str symbol: unified symbol of the market the order was made in
|
1382
1423
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -1397,7 +1438,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1397
1438
|
binary = self.binary_concat_array(byteArray)
|
1398
1439
|
hash = self.hash(binary, 'keccak', 'hex')
|
1399
1440
|
signature = self.sign_message_string(hash, self.privateKey)
|
1400
|
-
request = {
|
1441
|
+
request: dict = {
|
1401
1442
|
'parameters': {
|
1402
1443
|
'nonce': nonce,
|
1403
1444
|
'wallet': self.walletAddress,
|
@@ -1407,23 +1448,23 @@ class idex(Exchange, ImplicitAPI):
|
|
1407
1448
|
}
|
1408
1449
|
# [{orderId: "688336f0-ec50-11ea-9842-b332f8a34d0e"}]
|
1409
1450
|
response = self.privateDeleteOrders(self.extend(request, params))
|
1410
|
-
canceledOrder = self.
|
1451
|
+
canceledOrder = self.safe_dict(response, 0)
|
1411
1452
|
return self.parse_order(canceledOrder, market)
|
1412
1453
|
|
1413
|
-
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
1454
|
+
def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
|
1414
1455
|
errorCode = self.safe_string(response, 'code')
|
1415
1456
|
message = self.safe_string(response, 'message')
|
1416
|
-
if errorCode in self.exceptions:
|
1417
|
-
Exception = self.exceptions[errorCode]
|
1418
|
-
raise Exception(self.id + ' ' + message)
|
1419
1457
|
if errorCode is not None:
|
1458
|
+
self.throw_exactly_matched_exception(self.exceptions['exact'], errorCode, message)
|
1420
1459
|
raise ExchangeError(self.id + ' ' + message)
|
1421
1460
|
return None
|
1422
1461
|
|
1423
1462
|
def fetch_deposit(self, id: str, code: Str = None, params={}):
|
1424
1463
|
"""
|
1425
1464
|
fetch information on a deposit
|
1426
|
-
|
1465
|
+
|
1466
|
+
https://api-docs-v3.idex.io/#get-deposits
|
1467
|
+
|
1427
1468
|
:param str id: deposit id
|
1428
1469
|
:param str code: not used by idex fetchDeposit()
|
1429
1470
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -1431,7 +1472,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1431
1472
|
"""
|
1432
1473
|
self.load_markets()
|
1433
1474
|
nonce = self.uuidv1()
|
1434
|
-
request = {
|
1475
|
+
request: dict = {
|
1435
1476
|
'nonce': nonce,
|
1436
1477
|
'wallet': self.walletAddress,
|
1437
1478
|
'depositId': id,
|
@@ -1442,7 +1483,9 @@ class idex(Exchange, ImplicitAPI):
|
|
1442
1483
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1443
1484
|
"""
|
1444
1485
|
fetch all deposits made to an account
|
1445
|
-
|
1486
|
+
|
1487
|
+
https://api-docs-v3.idex.io/#get-deposits
|
1488
|
+
|
1446
1489
|
:param str code: unified currency code
|
1447
1490
|
:param int [since]: the earliest time in ms to fetch deposits for
|
1448
1491
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
@@ -1457,7 +1500,9 @@ class idex(Exchange, ImplicitAPI):
|
|
1457
1500
|
def fetch_status(self, params={}):
|
1458
1501
|
"""
|
1459
1502
|
the latest known information on the availability of the exchange API
|
1460
|
-
|
1503
|
+
|
1504
|
+
https://api-docs-v3.idex.io/#get-ping
|
1505
|
+
|
1461
1506
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1462
1507
|
:returns dict: a `status structure <https://docs.ccxt.com/#/?id=exchange-status-structure>`
|
1463
1508
|
"""
|
@@ -1473,7 +1518,9 @@ class idex(Exchange, ImplicitAPI):
|
|
1473
1518
|
def fetch_time(self, params={}):
|
1474
1519
|
"""
|
1475
1520
|
fetches the current integer timestamp in milliseconds from the exchange server
|
1476
|
-
|
1521
|
+
|
1522
|
+
https://api-docs-v3.idex.io/#get-time
|
1523
|
+
|
1477
1524
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1478
1525
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
1479
1526
|
"""
|
@@ -1486,7 +1533,9 @@ class idex(Exchange, ImplicitAPI):
|
|
1486
1533
|
def fetch_withdrawal(self, id: str, code: Str = None, params={}):
|
1487
1534
|
"""
|
1488
1535
|
fetch data on a currency withdrawal via the withdrawal id
|
1489
|
-
|
1536
|
+
|
1537
|
+
https://api-docs-v3.idex.io/#get-withdrawals
|
1538
|
+
|
1490
1539
|
:param str id: withdrawal id
|
1491
1540
|
:param str code: not used by idex.fetchWithdrawal
|
1492
1541
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -1494,7 +1543,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1494
1543
|
"""
|
1495
1544
|
self.load_markets()
|
1496
1545
|
nonce = self.uuidv1()
|
1497
|
-
request = {
|
1546
|
+
request: dict = {
|
1498
1547
|
'nonce': nonce,
|
1499
1548
|
'wallet': self.walletAddress,
|
1500
1549
|
'withdrawalId': id,
|
@@ -1505,7 +1554,9 @@ class idex(Exchange, ImplicitAPI):
|
|
1505
1554
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1506
1555
|
"""
|
1507
1556
|
fetch all withdrawals made from an account
|
1508
|
-
|
1557
|
+
|
1558
|
+
https://api-docs-v3.idex.io/#get-withdrawals
|
1559
|
+
|
1509
1560
|
:param str code: unified currency code
|
1510
1561
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
1511
1562
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
@@ -1520,7 +1571,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1520
1571
|
def fetch_transactions_helper(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
1521
1572
|
self.load_markets()
|
1522
1573
|
nonce = self.uuidv1()
|
1523
|
-
request = {
|
1574
|
+
request: dict = {
|
1524
1575
|
'nonce': nonce,
|
1525
1576
|
'wallet': self.walletAddress,
|
1526
1577
|
}
|
@@ -1553,13 +1604,13 @@ class idex(Exchange, ImplicitAPI):
|
|
1553
1604
|
raise NotSupported(self.id + ' fetchTransactionsHelper() not support self method')
|
1554
1605
|
return self.parse_transactions(response, currency, since, limit)
|
1555
1606
|
|
1556
|
-
def parse_transaction_status(self, status):
|
1557
|
-
statuses = {
|
1607
|
+
def parse_transaction_status(self, status: Str):
|
1608
|
+
statuses: dict = {
|
1558
1609
|
'mined': 'ok',
|
1559
1610
|
}
|
1560
1611
|
return self.safe_string(statuses, status, status)
|
1561
1612
|
|
1562
|
-
def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
|
1613
|
+
def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
|
1563
1614
|
#
|
1564
1615
|
# fetchDeposits
|
1565
1616
|
#
|
@@ -1650,15 +1701,17 @@ class idex(Exchange, ImplicitAPI):
|
|
1650
1701
|
authenticated = hasApiKey and hasSecret and hasWalletAddress and hasPrivateKey
|
1651
1702
|
return(defaultCost / 2) if authenticated else defaultCost
|
1652
1703
|
|
1653
|
-
def fetch_deposit_address(self, code: Str = None, params={}):
|
1704
|
+
def fetch_deposit_address(self, code: Str = None, params={}) -> DepositAddress:
|
1654
1705
|
"""
|
1655
1706
|
fetch the Polygon address of the wallet
|
1656
|
-
|
1707
|
+
|
1708
|
+
https://api-docs-v3.idex.io/#get-wallets
|
1709
|
+
|
1657
1710
|
:param str code: not used by idex
|
1658
1711
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1659
1712
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
1660
1713
|
"""
|
1661
|
-
request = {}
|
1714
|
+
request: dict = {}
|
1662
1715
|
request['nonce'] = self.uuidv1()
|
1663
1716
|
response = self.privateGetWallets(self.extend(request, params))
|
1664
1717
|
#
|
@@ -1677,7 +1730,7 @@ class idex(Exchange, ImplicitAPI):
|
|
1677
1730
|
#
|
1678
1731
|
return self.parse_deposit_address(response)
|
1679
1732
|
|
1680
|
-
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
1733
|
+
def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
|
1681
1734
|
#
|
1682
1735
|
# [
|
1683
1736
|
# {
|
@@ -1699,9 +1752,9 @@ class idex(Exchange, ImplicitAPI):
|
|
1699
1752
|
return {
|
1700
1753
|
'info': depositAddress,
|
1701
1754
|
'currency': None,
|
1755
|
+
'network': 'MATIC',
|
1702
1756
|
'address': address,
|
1703
1757
|
'tag': None,
|
1704
|
-
'network': 'MATIC',
|
1705
1758
|
}
|
1706
1759
|
|
1707
1760
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|