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/hollaex.py
CHANGED
@@ -6,15 +6,15 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.hollaex 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
|
+
from ccxt.base.errors import AuthenticationError
|
11
12
|
from ccxt.base.errors import ArgumentsRequired
|
12
13
|
from ccxt.base.errors import BadRequest
|
13
14
|
from ccxt.base.errors import InsufficientFunds
|
14
15
|
from ccxt.base.errors import OrderNotFound
|
15
16
|
from ccxt.base.errors import OrderImmediatelyFillable
|
16
17
|
from ccxt.base.errors import NetworkError
|
17
|
-
from ccxt.base.errors import AuthenticationError
|
18
18
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
19
19
|
from ccxt.base.precise import Precise
|
20
20
|
|
@@ -59,6 +59,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
59
59
|
'fetchCurrencies': True,
|
60
60
|
'fetchDepositAddress': 'emulated',
|
61
61
|
'fetchDepositAddresses': True,
|
62
|
+
'fetchDepositAddressesByNetwork': False,
|
62
63
|
'fetchDeposits': True,
|
63
64
|
'fetchFundingHistory': False,
|
64
65
|
'fetchFundingRate': False,
|
@@ -96,6 +97,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
96
97
|
'fetchWithdrawal': True,
|
97
98
|
'fetchWithdrawals': True,
|
98
99
|
'reduceMargin': False,
|
100
|
+
'sandbox': True,
|
99
101
|
'setLeverage': False,
|
100
102
|
'setMarginMode': False,
|
101
103
|
'setPositionMode': False,
|
@@ -215,10 +217,12 @@ class hollaex(Exchange, ImplicitAPI):
|
|
215
217
|
},
|
216
218
|
})
|
217
219
|
|
218
|
-
def fetch_markets(self, params={}):
|
220
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
219
221
|
"""
|
220
222
|
retrieves data on all markets for hollaex
|
221
|
-
|
223
|
+
|
224
|
+
https://apidocs.hollaex.com/#constants
|
225
|
+
|
222
226
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
223
227
|
:returns dict[]: an array of objects representing market data
|
224
228
|
"""
|
@@ -328,10 +332,12 @@ class hollaex(Exchange, ImplicitAPI):
|
|
328
332
|
})
|
329
333
|
return result
|
330
334
|
|
331
|
-
def fetch_currencies(self, params={}):
|
335
|
+
def fetch_currencies(self, params={}) -> Currencies:
|
332
336
|
"""
|
333
337
|
fetches all available currencies on an exchange
|
334
|
-
|
338
|
+
|
339
|
+
https://apidocs.hollaex.com/#constants
|
340
|
+
|
335
341
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
336
342
|
:returns dict: an associative dictionary of currencies
|
337
343
|
"""
|
@@ -347,7 +353,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
347
353
|
# "verified":true,
|
348
354
|
# "allow_deposit":true,
|
349
355
|
# "allow_withdrawal":true,
|
350
|
-
# "withdrawal_fee":0.
|
356
|
+
# "withdrawal_fee":0.0002,
|
351
357
|
# "min":0.001,
|
352
358
|
# "max":100000,
|
353
359
|
# "increment_unit":0.001,
|
@@ -373,7 +379,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
373
379
|
#
|
374
380
|
coins = self.safe_value(response, 'coins', {})
|
375
381
|
keys = list(coins.keys())
|
376
|
-
result = {}
|
382
|
+
result: dict = {}
|
377
383
|
for i in range(0, len(keys)):
|
378
384
|
key = keys[i]
|
379
385
|
currency = coins[key]
|
@@ -415,7 +421,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
415
421
|
def fetch_order_books(self, symbols: Strings = None, limit: Int = None, params={}):
|
416
422
|
"""
|
417
423
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data for multiple markets
|
418
|
-
|
424
|
+
|
425
|
+
https://apidocs.hollaex.com/#orderbooks
|
426
|
+
|
419
427
|
:param str[]|None symbols: not used by hollaex fetchOrderBooks()
|
420
428
|
:param int [limit]: not used by hollaex fetchOrderBooks()
|
421
429
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -423,7 +431,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
423
431
|
"""
|
424
432
|
self.load_markets()
|
425
433
|
response = self.publicGetOrderbooks(params)
|
426
|
-
result = {}
|
434
|
+
result: dict = {}
|
427
435
|
marketIds = list(response.keys())
|
428
436
|
for i in range(0, len(marketIds)):
|
429
437
|
marketId = marketIds[i]
|
@@ -436,7 +444,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
436
444
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
437
445
|
"""
|
438
446
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
439
|
-
|
447
|
+
|
448
|
+
https://apidocs.hollaex.com/#orderbook
|
449
|
+
|
440
450
|
:param str symbol: unified symbol of the market to fetch the order book for
|
441
451
|
:param int [limit]: the maximum amount of order book entries to return
|
442
452
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -444,7 +454,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
444
454
|
"""
|
445
455
|
self.load_markets()
|
446
456
|
market = self.market(symbol)
|
447
|
-
request = {
|
457
|
+
request: dict = {
|
448
458
|
'symbol': market['id'],
|
449
459
|
}
|
450
460
|
response = self.publicGetOrderbook(self.extend(request, params))
|
@@ -474,14 +484,16 @@ class hollaex(Exchange, ImplicitAPI):
|
|
474
484
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
475
485
|
"""
|
476
486
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
477
|
-
|
487
|
+
|
488
|
+
https://apidocs.hollaex.com/#ticker
|
489
|
+
|
478
490
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
479
491
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
480
492
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
481
493
|
"""
|
482
494
|
self.load_markets()
|
483
495
|
market = self.market(symbol)
|
484
|
-
request = {
|
496
|
+
request: dict = {
|
485
497
|
'symbol': market['id'],
|
486
498
|
}
|
487
499
|
response = self.publicGetTicker(self.extend(request, params))
|
@@ -501,7 +513,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
501
513
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
502
514
|
"""
|
503
515
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
504
|
-
|
516
|
+
|
517
|
+
https://apidocs.hollaex.com/#tickers
|
518
|
+
|
505
519
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
506
520
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
507
521
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -526,19 +540,19 @@ class hollaex(Exchange, ImplicitAPI):
|
|
526
540
|
#
|
527
541
|
return self.parse_tickers(response, symbols)
|
528
542
|
|
529
|
-
def parse_tickers(self,
|
530
|
-
result = {}
|
531
|
-
keys = list(
|
543
|
+
def parse_tickers(self, tickers, symbols: Strings = None, params={}) -> Tickers:
|
544
|
+
result: dict = {}
|
545
|
+
keys = list(tickers.keys())
|
532
546
|
for i in range(0, len(keys)):
|
533
547
|
key = keys[i]
|
534
|
-
ticker =
|
548
|
+
ticker = tickers[key]
|
535
549
|
marketId = self.safe_string(ticker, 'symbol', key)
|
536
550
|
market = self.safe_market(marketId, None, '-')
|
537
551
|
symbol = market['symbol']
|
538
552
|
result[symbol] = self.extend(self.parse_ticker(ticker, market), params)
|
539
553
|
return self.filter_by_array_tickers(result, 'symbol', symbols)
|
540
554
|
|
541
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
555
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
542
556
|
#
|
543
557
|
# fetchTicker
|
544
558
|
#
|
@@ -596,7 +610,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
596
610
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
597
611
|
"""
|
598
612
|
get the list of most recent trades for a particular symbol
|
599
|
-
|
613
|
+
|
614
|
+
https://apidocs.hollaex.com/#trades
|
615
|
+
|
600
616
|
:param str symbol: unified symbol of the market to fetch trades for
|
601
617
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
602
618
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -605,7 +621,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
605
621
|
"""
|
606
622
|
self.load_markets()
|
607
623
|
market = self.market(symbol)
|
608
|
-
request = {
|
624
|
+
request: dict = {
|
609
625
|
'symbol': market['id'],
|
610
626
|
}
|
611
627
|
response = self.publicGetTrades(self.extend(request, params))
|
@@ -622,10 +638,10 @@ class hollaex(Exchange, ImplicitAPI):
|
|
622
638
|
# ]
|
623
639
|
# }
|
624
640
|
#
|
625
|
-
trades = self.
|
641
|
+
trades = self.safe_list(response, market['id'], [])
|
626
642
|
return self.parse_trades(trades, market, since, limit)
|
627
643
|
|
628
|
-
def parse_trade(self, trade, market: Market = None) -> Trade:
|
644
|
+
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
629
645
|
#
|
630
646
|
# fetchTrades(public)
|
631
647
|
#
|
@@ -679,10 +695,12 @@ class hollaex(Exchange, ImplicitAPI):
|
|
679
695
|
'fee': fee,
|
680
696
|
}, market)
|
681
697
|
|
682
|
-
def fetch_trading_fees(self, params={}):
|
698
|
+
def fetch_trading_fees(self, params={}) -> TradingFees:
|
683
699
|
"""
|
684
700
|
fetch the trading fees for multiple markets
|
685
|
-
|
701
|
+
|
702
|
+
https://apidocs.hollaex.com/#tiers
|
703
|
+
|
686
704
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
687
705
|
:returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
|
688
706
|
"""
|
@@ -720,7 +738,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
720
738
|
fees = self.safe_value(firstTier, 'fees', {})
|
721
739
|
makerFees = self.safe_value(fees, 'maker', {})
|
722
740
|
takerFees = self.safe_value(fees, 'taker', {})
|
723
|
-
result = {}
|
741
|
+
result: dict = {}
|
724
742
|
for i in range(0, len(self.symbols)):
|
725
743
|
symbol = self.symbols[i]
|
726
744
|
market = self.market(symbol)
|
@@ -739,7 +757,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
739
757
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
740
758
|
"""
|
741
759
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
742
|
-
|
760
|
+
|
761
|
+
https://apidocs.hollaex.com/#chart
|
762
|
+
|
743
763
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
744
764
|
:param str timeframe: the length of time each candle represents
|
745
765
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -749,7 +769,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
749
769
|
"""
|
750
770
|
self.load_markets()
|
751
771
|
market = self.market(symbol)
|
752
|
-
request = {
|
772
|
+
request: dict = {
|
753
773
|
'symbol': market['id'],
|
754
774
|
'resolution': self.safe_string(self.timeframes, timeframe, timeframe),
|
755
775
|
}
|
@@ -808,7 +828,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
808
828
|
|
809
829
|
def parse_balance(self, response) -> Balances:
|
810
830
|
timestamp = self.parse8601(self.safe_string(response, 'updated_at'))
|
811
|
-
result = {
|
831
|
+
result: dict = {
|
812
832
|
'info': response,
|
813
833
|
'timestamp': timestamp,
|
814
834
|
'datetime': self.iso8601(timestamp),
|
@@ -826,7 +846,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
826
846
|
def fetch_balance(self, params={}) -> Balances:
|
827
847
|
"""
|
828
848
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
829
|
-
|
849
|
+
|
850
|
+
https://apidocs.hollaex.com/#get-balance
|
851
|
+
|
830
852
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
831
853
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
832
854
|
"""
|
@@ -849,14 +871,16 @@ class hollaex(Exchange, ImplicitAPI):
|
|
849
871
|
def fetch_open_order(self, id: str, symbol: Str = None, params={}):
|
850
872
|
"""
|
851
873
|
fetch an open order by it's id
|
852
|
-
|
874
|
+
|
875
|
+
https://apidocs.hollaex.com/#get-order
|
876
|
+
|
853
877
|
:param str id: order id
|
854
878
|
:param str symbol: not used by hollaex fetchOpenOrder()
|
855
879
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
856
880
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
857
881
|
"""
|
858
882
|
self.load_markets()
|
859
|
-
request = {
|
883
|
+
request: dict = {
|
860
884
|
'order_id': id,
|
861
885
|
}
|
862
886
|
response = self.privateGetOrder(self.extend(request, params))
|
@@ -889,14 +913,16 @@ class hollaex(Exchange, ImplicitAPI):
|
|
889
913
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
890
914
|
"""
|
891
915
|
fetch all unfilled currently open orders
|
892
|
-
|
916
|
+
|
917
|
+
https://apidocs.hollaex.com/#get-all-orders
|
918
|
+
|
893
919
|
:param str symbol: unified market symbol
|
894
920
|
:param int [since]: the earliest time in ms to fetch open orders for
|
895
921
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
896
922
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
897
923
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
898
924
|
"""
|
899
|
-
request = {
|
925
|
+
request: dict = {
|
900
926
|
'open': True,
|
901
927
|
}
|
902
928
|
return self.fetch_orders(symbol, since, limit, self.extend(request, params))
|
@@ -904,14 +930,16 @@ class hollaex(Exchange, ImplicitAPI):
|
|
904
930
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
905
931
|
"""
|
906
932
|
fetches information on multiple closed orders made by the user
|
907
|
-
|
933
|
+
|
934
|
+
https://apidocs.hollaex.com/#get-all-orders
|
935
|
+
|
908
936
|
:param str symbol: unified market symbol of the market orders were made in
|
909
937
|
:param int [since]: the earliest time in ms to fetch orders for
|
910
938
|
:param int [limit]: the maximum number of order structures to retrieve
|
911
939
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
912
940
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
913
941
|
"""
|
914
|
-
request = {
|
942
|
+
request: dict = {
|
915
943
|
'open': False,
|
916
944
|
}
|
917
945
|
return self.fetch_orders(symbol, since, limit, self.extend(request, params))
|
@@ -919,13 +947,16 @@ class hollaex(Exchange, ImplicitAPI):
|
|
919
947
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
920
948
|
"""
|
921
949
|
fetches information on an order made by the user
|
922
|
-
|
950
|
+
|
951
|
+
https://apidocs.hollaex.com/#get-order
|
952
|
+
|
953
|
+
:param str id:
|
923
954
|
:param str symbol: unified symbol of the market the order was made in
|
924
955
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
925
956
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
926
957
|
"""
|
927
958
|
self.load_markets()
|
928
|
-
request = {
|
959
|
+
request: dict = {
|
929
960
|
'order_id': id,
|
930
961
|
}
|
931
962
|
response = self.privateGetOrder(self.extend(request, params))
|
@@ -959,7 +990,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
959
990
|
def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
960
991
|
"""
|
961
992
|
fetches information on multiple orders made by the user
|
962
|
-
|
993
|
+
|
994
|
+
https://apidocs.hollaex.com/#get-all-orders
|
995
|
+
|
963
996
|
:param str symbol: unified market symbol of the market orders were made in
|
964
997
|
:param int [since]: the earliest time in ms to fetch orders for
|
965
998
|
:param int [limit]: the maximum number of order structures to retrieve
|
@@ -968,7 +1001,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
968
1001
|
"""
|
969
1002
|
self.load_markets()
|
970
1003
|
market = None
|
971
|
-
request = {
|
1004
|
+
request: dict = {
|
972
1005
|
# 'symbol': market['id'],
|
973
1006
|
# 'side': 'buy', # 'sell'
|
974
1007
|
# 'status': 'new', # 'filled', 'pfilled', 'canceled'
|
@@ -1017,11 +1050,11 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1017
1050
|
# ]
|
1018
1051
|
# }
|
1019
1052
|
#
|
1020
|
-
data = self.
|
1053
|
+
data = self.safe_list(response, 'data', [])
|
1021
1054
|
return self.parse_orders(data, market, since, limit)
|
1022
1055
|
|
1023
|
-
def parse_order_status(self, status):
|
1024
|
-
statuses = {
|
1056
|
+
def parse_order_status(self, status: Str):
|
1057
|
+
statuses: dict = {
|
1025
1058
|
'new': 'open',
|
1026
1059
|
'pfilled': 'open',
|
1027
1060
|
'filled': 'closed',
|
@@ -1029,7 +1062,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1029
1062
|
}
|
1030
1063
|
return self.safe_string(statuses, status, status)
|
1031
1064
|
|
1032
|
-
def parse_order(self, order, market: Market = None) -> Order:
|
1065
|
+
def parse_order(self, order: dict, market: Market = None) -> Order:
|
1033
1066
|
#
|
1034
1067
|
# createOrder, fetchOpenOrder, fetchOpenOrders
|
1035
1068
|
#
|
@@ -1065,7 +1098,6 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1065
1098
|
type = self.safe_string(order, 'type')
|
1066
1099
|
side = self.safe_string(order, 'side')
|
1067
1100
|
price = self.safe_string(order, 'price')
|
1068
|
-
stopPrice = self.safe_string(order, 'stop')
|
1069
1101
|
amount = self.safe_string(order, 'size')
|
1070
1102
|
filled = self.safe_string(order, 'filled')
|
1071
1103
|
status = self.parse_order_status(self.safe_string(order, 'status'))
|
@@ -1084,8 +1116,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1084
1116
|
'postOnly': postOnly,
|
1085
1117
|
'side': side,
|
1086
1118
|
'price': price,
|
1087
|
-
'
|
1088
|
-
'triggerPrice': stopPrice,
|
1119
|
+
'triggerPrice': self.safe_string(order, 'stop'),
|
1089
1120
|
'amount': amount,
|
1090
1121
|
'filled': filled,
|
1091
1122
|
'remaining': None,
|
@@ -1099,12 +1130,14 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1099
1130
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
1100
1131
|
"""
|
1101
1132
|
create a trade order
|
1102
|
-
|
1133
|
+
|
1134
|
+
https://apidocs.hollaex.com/#create-order
|
1135
|
+
|
1103
1136
|
:param str symbol: unified symbol of the market to create an order in
|
1104
1137
|
:param str type: 'market' or 'limit'
|
1105
1138
|
:param str side: 'buy' or 'sell'
|
1106
1139
|
:param float amount: how much of currency you want to trade in units of base currency
|
1107
|
-
:param float [price]: the price at which the order is to be
|
1140
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
1108
1141
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1109
1142
|
:param float [params.triggerPrice]: the price at which a trigger order is triggered at
|
1110
1143
|
:param bool [params.postOnly]: if True, the order will only be posted to the order book and not executed immediately
|
@@ -1113,7 +1146,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1113
1146
|
self.load_markets()
|
1114
1147
|
market = self.market(symbol)
|
1115
1148
|
convertedAmount = float(self.amount_to_precision(symbol, amount))
|
1116
|
-
request = {
|
1149
|
+
request: dict = {
|
1117
1150
|
'symbol': market['id'],
|
1118
1151
|
'side': side,
|
1119
1152
|
'size': self.normalize_number_if_needed(convertedAmount),
|
@@ -1121,7 +1154,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1121
1154
|
# 'stop': float(self.price_to_precision(symbol, stopPrice)),
|
1122
1155
|
# 'meta': {}, # other options such
|
1123
1156
|
}
|
1124
|
-
|
1157
|
+
triggerPrice = self.safe_number_n(params, ['triggerPrice', 'stopPrice', 'stop'])
|
1125
1158
|
meta = self.safe_value(params, 'meta', {})
|
1126
1159
|
exchangeSpecificParam = self.safe_bool(meta, 'post_only', False)
|
1127
1160
|
isMarketOrder = type == 'market'
|
@@ -1129,8 +1162,8 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1129
1162
|
if not isMarketOrder:
|
1130
1163
|
convertedPrice = float(self.price_to_precision(symbol, price))
|
1131
1164
|
request['price'] = self.normalize_number_if_needed(convertedPrice)
|
1132
|
-
if
|
1133
|
-
request['stop'] = self.normalize_number_if_needed(float(self.price_to_precision(symbol,
|
1165
|
+
if triggerPrice is not None:
|
1166
|
+
request['stop'] = self.normalize_number_if_needed(float(self.price_to_precision(symbol, triggerPrice)))
|
1134
1167
|
if postOnly:
|
1135
1168
|
request['meta'] = {'post_only': True}
|
1136
1169
|
params = self.omit(params, ['postOnly', 'timeInForce', 'stopPrice', 'triggerPrice', 'stop'])
|
@@ -1163,14 +1196,16 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1163
1196
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
1164
1197
|
"""
|
1165
1198
|
cancels an open order
|
1166
|
-
|
1199
|
+
|
1200
|
+
https://apidocs.hollaex.com/#cancel-order
|
1201
|
+
|
1167
1202
|
:param str id: order id
|
1168
1203
|
:param str symbol: unified symbol of the market the order was made in
|
1169
1204
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1170
1205
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1171
1206
|
"""
|
1172
1207
|
self.load_markets()
|
1173
|
-
request = {
|
1208
|
+
request: dict = {
|
1174
1209
|
'order_id': id,
|
1175
1210
|
}
|
1176
1211
|
response = self.privateDeleteOrder(self.extend(request, params))
|
@@ -1192,7 +1227,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1192
1227
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
1193
1228
|
"""
|
1194
1229
|
cancel all open orders in a market
|
1195
|
-
|
1230
|
+
|
1231
|
+
https://apidocs.hollaex.com/#cancel-all-orders
|
1232
|
+
|
1196
1233
|
:param str symbol: unified market symbol of the market to cancel orders in
|
1197
1234
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1198
1235
|
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1200,7 +1237,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1200
1237
|
if symbol is None:
|
1201
1238
|
raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
|
1202
1239
|
self.load_markets()
|
1203
|
-
request = {}
|
1240
|
+
request: dict = {}
|
1204
1241
|
market = None
|
1205
1242
|
market = self.market(symbol)
|
1206
1243
|
request['symbol'] = market['id']
|
@@ -1225,7 +1262,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1225
1262
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
1226
1263
|
"""
|
1227
1264
|
fetch all trades made by the user
|
1228
|
-
|
1265
|
+
|
1266
|
+
https://apidocs.hollaex.com/#get-trades
|
1267
|
+
|
1229
1268
|
:param str symbol: unified market symbol
|
1230
1269
|
:param int [since]: the earliest time in ms to fetch trades for
|
1231
1270
|
:param int [limit]: the maximum number of trades structures to retrieve
|
@@ -1233,7 +1272,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1233
1272
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
1234
1273
|
"""
|
1235
1274
|
self.load_markets()
|
1236
|
-
request = {
|
1275
|
+
request: dict = {
|
1237
1276
|
# 'symbol': market['id'],
|
1238
1277
|
# 'limit': 50, # default 50, max 100
|
1239
1278
|
# 'page': 1, # page of data to retrieve
|
@@ -1266,10 +1305,10 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1266
1305
|
# ]
|
1267
1306
|
# }
|
1268
1307
|
#
|
1269
|
-
data = self.
|
1308
|
+
data = self.safe_list(response, 'data', [])
|
1270
1309
|
return self.parse_trades(data, market, since, limit)
|
1271
1310
|
|
1272
|
-
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
1311
|
+
def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
|
1273
1312
|
#
|
1274
1313
|
# {
|
1275
1314
|
# "currency":"usdt",
|
@@ -1291,17 +1330,19 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1291
1330
|
currency = self.safe_currency(currencyId, currency)
|
1292
1331
|
network = self.safe_string(depositAddress, 'network')
|
1293
1332
|
return {
|
1333
|
+
'info': depositAddress,
|
1294
1334
|
'currency': currency['code'],
|
1335
|
+
'network': network,
|
1295
1336
|
'address': address,
|
1296
1337
|
'tag': tag,
|
1297
|
-
'network': network,
|
1298
|
-
'info': depositAddress,
|
1299
1338
|
}
|
1300
1339
|
|
1301
|
-
def fetch_deposit_addresses(self, codes:
|
1340
|
+
def fetch_deposit_addresses(self, codes: Strings = None, params={}) -> List[DepositAddress]:
|
1302
1341
|
"""
|
1303
1342
|
fetch deposit addresses for multiple currencies and chain types
|
1304
|
-
|
1343
|
+
|
1344
|
+
https://apidocs.hollaex.com/#get-user
|
1345
|
+
|
1305
1346
|
:param str[]|None codes: list of unified currency codes, default is None
|
1306
1347
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1307
1348
|
:returns dict: a list of `address structures <https://docs.ccxt.com/#/?id=address-structure>`
|
@@ -1362,7 +1403,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1362
1403
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1363
1404
|
"""
|
1364
1405
|
fetch all deposits made to an account
|
1365
|
-
|
1406
|
+
|
1407
|
+
https://apidocs.hollaex.com/#get-deposits
|
1408
|
+
|
1366
1409
|
:param str code: unified currency code
|
1367
1410
|
:param int [since]: the earliest time in ms to fetch deposits for
|
1368
1411
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
@@ -1370,7 +1413,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1370
1413
|
:returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
|
1371
1414
|
"""
|
1372
1415
|
self.load_markets()
|
1373
|
-
request = {
|
1416
|
+
request: dict = {
|
1374
1417
|
# 'currency': currency['id'],
|
1375
1418
|
# 'limit': 50, # default 50, max 100
|
1376
1419
|
# 'page': 1, # page of data to retrieve
|
@@ -1411,20 +1454,22 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1411
1454
|
# ]
|
1412
1455
|
# }
|
1413
1456
|
#
|
1414
|
-
data = self.
|
1457
|
+
data = self.safe_list(response, 'data', [])
|
1415
1458
|
return self.parse_transactions(data, currency, since, limit)
|
1416
1459
|
|
1417
1460
|
def fetch_withdrawal(self, id: str, code: Str = None, params={}):
|
1418
1461
|
"""
|
1419
1462
|
fetch data on a currency withdrawal via the withdrawal id
|
1420
|
-
|
1463
|
+
|
1464
|
+
https://apidocs.hollaex.com/#get-withdrawals
|
1465
|
+
|
1421
1466
|
:param str id: withdrawal id
|
1422
1467
|
:param str code: unified currency code of the currency withdrawn, default is None
|
1423
1468
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1424
1469
|
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
|
1425
1470
|
"""
|
1426
1471
|
self.load_markets()
|
1427
|
-
request = {
|
1472
|
+
request: dict = {
|
1428
1473
|
'transaction_id': id,
|
1429
1474
|
}
|
1430
1475
|
currency = None
|
@@ -1456,13 +1501,15 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1456
1501
|
# }
|
1457
1502
|
#
|
1458
1503
|
data = self.safe_value(response, 'data', [])
|
1459
|
-
transaction = self.
|
1504
|
+
transaction = self.safe_dict(data, 0, {})
|
1460
1505
|
return self.parse_transaction(transaction, currency)
|
1461
1506
|
|
1462
1507
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1463
1508
|
"""
|
1464
1509
|
fetch all withdrawals made from an account
|
1465
|
-
|
1510
|
+
|
1511
|
+
https://apidocs.hollaex.com/#get-withdrawals
|
1512
|
+
|
1466
1513
|
:param str code: unified currency code
|
1467
1514
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
1468
1515
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
@@ -1470,7 +1517,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1470
1517
|
:returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
|
1471
1518
|
"""
|
1472
1519
|
self.load_markets()
|
1473
|
-
request = {
|
1520
|
+
request: dict = {
|
1474
1521
|
# 'currency': currency['id'],
|
1475
1522
|
# 'limit': 50, # default 50, max 100
|
1476
1523
|
# 'page': 1, # page of data to retrieve
|
@@ -1511,10 +1558,10 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1511
1558
|
# ]
|
1512
1559
|
# }
|
1513
1560
|
#
|
1514
|
-
data = self.
|
1561
|
+
data = self.safe_list(response, 'data', [])
|
1515
1562
|
return self.parse_transactions(data, currency, since, limit)
|
1516
1563
|
|
1517
|
-
def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
|
1564
|
+
def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
|
1518
1565
|
#
|
1519
1566
|
# fetchWithdrawals, fetchDeposits
|
1520
1567
|
#
|
@@ -1609,10 +1656,12 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1609
1656
|
'fee': fee,
|
1610
1657
|
}
|
1611
1658
|
|
1612
|
-
def withdraw(self, code: str, amount: float, address, tag=None, params={}):
|
1659
|
+
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
1613
1660
|
"""
|
1614
1661
|
make a withdrawal
|
1615
|
-
|
1662
|
+
|
1663
|
+
https://apidocs.hollaex.com/#withdrawal
|
1664
|
+
|
1616
1665
|
:param str code: unified currency code
|
1617
1666
|
:param float amount: the amount to withdraw
|
1618
1667
|
:param str address: the address to withdraw to
|
@@ -1630,7 +1679,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1630
1679
|
if network is None:
|
1631
1680
|
raise ArgumentsRequired(self.id + ' withdraw() requires a network parameter')
|
1632
1681
|
params = self.omit(params, 'network')
|
1633
|
-
request = {
|
1682
|
+
request: dict = {
|
1634
1683
|
'currency': currency['id'],
|
1635
1684
|
'amount': amount,
|
1636
1685
|
'address': address,
|
@@ -1680,7 +1729,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1680
1729
|
# "owner_id":1
|
1681
1730
|
# }
|
1682
1731
|
#
|
1683
|
-
result = {
|
1732
|
+
result: dict = {
|
1684
1733
|
'info': fee,
|
1685
1734
|
'withdraw': {
|
1686
1735
|
'fee': None,
|
@@ -1716,7 +1765,9 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1716
1765
|
def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
|
1717
1766
|
"""
|
1718
1767
|
fetch deposit and withdraw fees
|
1719
|
-
|
1768
|
+
|
1769
|
+
https://apidocs.hollaex.com/#constants
|
1770
|
+
|
1720
1771
|
:param str[]|None codes: list of unified currency codes
|
1721
1772
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1722
1773
|
:returns dict: a list of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
|
@@ -1757,7 +1808,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1757
1808
|
# "network":"https://api.hollaex.network"
|
1758
1809
|
# }
|
1759
1810
|
#
|
1760
|
-
coins = self.
|
1811
|
+
coins = self.safe_list(response, 'coins')
|
1761
1812
|
return self.parse_deposit_withdraw_fees(coins, codes, 'symbol')
|
1762
1813
|
|
1763
1814
|
def normalize_number_if_needed(self, number):
|
@@ -1791,7 +1842,7 @@ class hollaex(Exchange, ImplicitAPI):
|
|
1791
1842
|
headers['api-signature'] = signature
|
1792
1843
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
1793
1844
|
|
1794
|
-
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
1845
|
+
def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
|
1795
1846
|
if response is None:
|
1796
1847
|
return None
|
1797
1848
|
if (code >= 400) and (code <= 503):
|