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/btcalpha.py
CHANGED
@@ -11,8 +11,6 @@ from typing import List
|
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import InsufficientFunds
|
13
13
|
from ccxt.base.errors import InvalidOrder
|
14
|
-
from ccxt.base.errors import DDoSProtection
|
15
|
-
from ccxt.base.errors import AuthenticationError
|
16
14
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
17
15
|
from ccxt.base.precise import Precise
|
18
16
|
|
@@ -73,8 +71,11 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
73
71
|
'fetchOrderBook': True,
|
74
72
|
'fetchOrders': True,
|
75
73
|
'fetchPosition': False,
|
74
|
+
'fetchPositionHistory': False,
|
76
75
|
'fetchPositionMode': False,
|
77
76
|
'fetchPositions': False,
|
77
|
+
'fetchPositionsForSymbol': False,
|
78
|
+
'fetchPositionsHistory': False,
|
78
79
|
'fetchPositionsRisk': False,
|
79
80
|
'fetchPremiumIndexOHLCV': False,
|
80
81
|
'fetchTicker': True,
|
@@ -102,7 +103,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
102
103
|
'1d': 'D',
|
103
104
|
},
|
104
105
|
'urls': {
|
105
|
-
'logo': 'https://
|
106
|
+
'logo': 'https://github.com/user-attachments/assets/dce49f3a-61e5-4ba0-a2fe-41d192fd0e5d',
|
106
107
|
'api': {
|
107
108
|
'rest': 'https://btc-alpha.com/api',
|
108
109
|
},
|
@@ -149,6 +150,79 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
149
150
|
'commonCurrencies': {
|
150
151
|
'CBC': 'Cashbery',
|
151
152
|
},
|
153
|
+
'features': {
|
154
|
+
'spot': {
|
155
|
+
'sandbox': False,
|
156
|
+
'createOrder': {
|
157
|
+
'marginMode': False,
|
158
|
+
'triggerPrice': False,
|
159
|
+
'triggerPriceType': None,
|
160
|
+
'triggerDirection': False,
|
161
|
+
'stopLossPrice': False,
|
162
|
+
'takeProfitPrice': False,
|
163
|
+
'attachedStopLossTakeProfit': None,
|
164
|
+
'timeInForce': {
|
165
|
+
'IOC': False,
|
166
|
+
'FOK': False,
|
167
|
+
'PO': False,
|
168
|
+
'GTD': False,
|
169
|
+
},
|
170
|
+
'hedged': False,
|
171
|
+
'leverage': False,
|
172
|
+
'marketBuyRequiresPrice': False,
|
173
|
+
'marketBuyByCost': False,
|
174
|
+
'selfTradePrevention': False,
|
175
|
+
'trailing': False,
|
176
|
+
'iceberg': False,
|
177
|
+
},
|
178
|
+
'createOrders': None,
|
179
|
+
'fetchMyTrades': {
|
180
|
+
'marginMode': False,
|
181
|
+
'limit': 100,
|
182
|
+
'daysBack': None,
|
183
|
+
'untilDays': None,
|
184
|
+
},
|
185
|
+
'fetchOrder': {
|
186
|
+
'marginMode': False,
|
187
|
+
'trigger': False,
|
188
|
+
'trailing': False,
|
189
|
+
},
|
190
|
+
'fetchOpenOrders': {
|
191
|
+
'marginMode': False,
|
192
|
+
'limit': 2000,
|
193
|
+
'trigger': False,
|
194
|
+
'trailing': False,
|
195
|
+
},
|
196
|
+
'fetchOrders': {
|
197
|
+
'marginMode': False,
|
198
|
+
'limit': 2000,
|
199
|
+
'daysBack': None,
|
200
|
+
'untilDays': None,
|
201
|
+
'trigger': False,
|
202
|
+
'trailing': False,
|
203
|
+
},
|
204
|
+
'fetchClosedOrders': {
|
205
|
+
'marginMode': False,
|
206
|
+
'limit': 2000,
|
207
|
+
'daysBack': None,
|
208
|
+
'daysBackCanceled': None,
|
209
|
+
'untilDays': None,
|
210
|
+
'trigger': False,
|
211
|
+
'trailing': False,
|
212
|
+
},
|
213
|
+
'fetchOHLCV': {
|
214
|
+
'max': 720,
|
215
|
+
},
|
216
|
+
},
|
217
|
+
'swap': {
|
218
|
+
'linear': None,
|
219
|
+
'inverse': None,
|
220
|
+
},
|
221
|
+
'future': {
|
222
|
+
'linear': None,
|
223
|
+
'inverse': None,
|
224
|
+
},
|
225
|
+
},
|
152
226
|
'precisionMode': TICK_SIZE,
|
153
227
|
'exceptions': {
|
154
228
|
'exact': {},
|
@@ -158,10 +232,12 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
158
232
|
},
|
159
233
|
})
|
160
234
|
|
161
|
-
def fetch_markets(self, params={}):
|
235
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
162
236
|
"""
|
163
237
|
retrieves data on all markets for btcalpha
|
164
|
-
|
238
|
+
|
239
|
+
https://btc-alpha.github.io/api-docs/#list-all-currencies
|
240
|
+
|
165
241
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
166
242
|
:returns dict[]: an array of objects representing market data
|
167
243
|
"""
|
@@ -183,7 +259,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
183
259
|
#
|
184
260
|
return self.parse_markets(response)
|
185
261
|
|
186
|
-
def parse_market(self, market) -> Market:
|
262
|
+
def parse_market(self, market: dict) -> Market:
|
187
263
|
id = self.safe_string(market, 'name')
|
188
264
|
baseId = self.safe_string(market, 'currency1')
|
189
265
|
quoteId = self.safe_string(market, 'currency2')
|
@@ -244,7 +320,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
244
320
|
|
245
321
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
246
322
|
"""
|
247
|
-
|
323
|
+
|
324
|
+
https://btc-alpha.github.io/api-docs/#tickers
|
325
|
+
|
248
326
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
249
327
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
250
328
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -272,7 +350,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
272
350
|
|
273
351
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
274
352
|
"""
|
275
|
-
|
353
|
+
|
354
|
+
https://btc-alpha.github.io/api-docs/#tickers
|
355
|
+
|
276
356
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
277
357
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
278
358
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -280,7 +360,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
280
360
|
"""
|
281
361
|
self.load_markets()
|
282
362
|
market = self.market(symbol)
|
283
|
-
request = {
|
363
|
+
request: dict = {
|
284
364
|
'pair': market['id'],
|
285
365
|
}
|
286
366
|
response = self.publicGetTicker(self.extend(request, params))
|
@@ -299,7 +379,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
299
379
|
#
|
300
380
|
return self.parse_ticker(response, market)
|
301
381
|
|
302
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
382
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
303
383
|
#
|
304
384
|
# {
|
305
385
|
# "timestamp": "1674658.445272",
|
@@ -343,7 +423,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
343
423
|
|
344
424
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
345
425
|
"""
|
346
|
-
|
426
|
+
|
427
|
+
https://btc-alpha.github.io/api-docs/#get-orderbook
|
428
|
+
|
347
429
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
348
430
|
:param str symbol: unified symbol of the market to fetch the order book for
|
349
431
|
:param int [limit]: the maximum amount of order book entries to return
|
@@ -352,7 +434,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
352
434
|
"""
|
353
435
|
self.load_markets()
|
354
436
|
market = self.market(symbol)
|
355
|
-
request = {
|
437
|
+
request: dict = {
|
356
438
|
'pair_name': market['id'],
|
357
439
|
}
|
358
440
|
if limit:
|
@@ -369,7 +451,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
369
451
|
result.append(self.parse_bid_ask(bidask, priceKey, amountKey))
|
370
452
|
return result
|
371
453
|
|
372
|
-
def parse_trade(self, trade, market: Market = None) -> Trade:
|
454
|
+
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
373
455
|
#
|
374
456
|
# fetchTrades(public)
|
375
457
|
#
|
@@ -421,7 +503,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
421
503
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
422
504
|
"""
|
423
505
|
get the list of most recent trades for a particular symbol
|
424
|
-
|
506
|
+
|
507
|
+
https://btc-alpha.github.io/api-docs/#list-all-exchanges
|
508
|
+
|
425
509
|
:param str symbol: unified symbol of the market to fetch trades for
|
426
510
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
427
511
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -430,7 +514,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
430
514
|
"""
|
431
515
|
self.load_markets()
|
432
516
|
market = None
|
433
|
-
request = {}
|
517
|
+
request: dict = {}
|
434
518
|
if symbol is not None:
|
435
519
|
market = self.market(symbol)
|
436
520
|
request['pair'] = market['id']
|
@@ -442,7 +526,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
442
526
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
443
527
|
"""
|
444
528
|
fetch all deposits made to an account
|
445
|
-
|
529
|
+
|
530
|
+
https://btc-alpha.github.io/api-docs/#list-own-deposits
|
531
|
+
|
446
532
|
:param str code: unified currency code
|
447
533
|
:param int [since]: the earliest time in ms to fetch deposits for
|
448
534
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
@@ -469,7 +555,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
469
555
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
470
556
|
"""
|
471
557
|
fetch all withdrawals made from an account
|
472
|
-
|
558
|
+
|
559
|
+
https://btc-alpha.github.io/api-docs/#list-own-made-withdraws
|
560
|
+
|
473
561
|
:param str code: unified currency code
|
474
562
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
475
563
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
@@ -478,7 +566,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
478
566
|
"""
|
479
567
|
self.load_markets()
|
480
568
|
currency = None
|
481
|
-
request = {}
|
569
|
+
request: dict = {}
|
482
570
|
if code is not None:
|
483
571
|
currency = self.currency(code)
|
484
572
|
request['currency_id'] = currency['id']
|
@@ -496,7 +584,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
496
584
|
#
|
497
585
|
return self.parse_transactions(response, currency, since, limit, {'type': 'withdrawal'})
|
498
586
|
|
499
|
-
def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
|
587
|
+
def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
|
500
588
|
#
|
501
589
|
# deposit
|
502
590
|
# {
|
@@ -541,8 +629,8 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
541
629
|
'updated': None,
|
542
630
|
}
|
543
631
|
|
544
|
-
def parse_transaction_status(self, status):
|
545
|
-
statuses = {
|
632
|
+
def parse_transaction_status(self, status: Str):
|
633
|
+
statuses: dict = {
|
546
634
|
'10': 'pending', # New
|
547
635
|
'20': 'pending', # Verified, waiting for approving
|
548
636
|
'30': 'ok', # Approved by moderator
|
@@ -574,7 +662,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
574
662
|
def fetch_ohlcv(self, symbol: str, timeframe='5m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
575
663
|
"""
|
576
664
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
577
|
-
|
665
|
+
|
666
|
+
https://btc-alpha.github.io/api-docs/#charts
|
667
|
+
|
578
668
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
579
669
|
:param str timeframe: the length of time each candle represents
|
580
670
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -584,7 +674,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
584
674
|
"""
|
585
675
|
self.load_markets()
|
586
676
|
market = self.market(symbol)
|
587
|
-
request = {
|
677
|
+
request: dict = {
|
588
678
|
'pair': market['id'],
|
589
679
|
'type': self.safe_string(self.timeframes, timeframe, timeframe),
|
590
680
|
}
|
@@ -603,7 +693,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
603
693
|
return self.parse_ohlcvs(response, market, timeframe, since, limit)
|
604
694
|
|
605
695
|
def parse_balance(self, response) -> Balances:
|
606
|
-
result = {'info': response}
|
696
|
+
result: dict = {'info': response}
|
607
697
|
for i in range(0, len(response)):
|
608
698
|
balance = response[i]
|
609
699
|
currencyId = self.safe_string(balance, 'currency')
|
@@ -617,7 +707,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
617
707
|
def fetch_balance(self, params={}) -> Balances:
|
618
708
|
"""
|
619
709
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
620
|
-
|
710
|
+
|
711
|
+
https://btc-alpha.github.io/api-docs/#list-own-wallets
|
712
|
+
|
621
713
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
622
714
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
623
715
|
"""
|
@@ -625,15 +717,15 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
625
717
|
response = self.privateGetWallets(params)
|
626
718
|
return self.parse_balance(response)
|
627
719
|
|
628
|
-
def parse_order_status(self, status):
|
629
|
-
statuses = {
|
720
|
+
def parse_order_status(self, status: Str):
|
721
|
+
statuses: dict = {
|
630
722
|
'1': 'open',
|
631
723
|
'2': 'canceled',
|
632
724
|
'3': 'closed',
|
633
725
|
}
|
634
726
|
return self.safe_string(statuses, status, status)
|
635
727
|
|
636
|
-
def parse_order(self, order, market: Market = None) -> Order:
|
728
|
+
def parse_order(self, order: dict, market: Market = None) -> Order:
|
637
729
|
#
|
638
730
|
# fetchClosedOrders / fetchOrder
|
639
731
|
# {
|
@@ -676,7 +768,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
676
768
|
filled = self.safe_string(order, 'amount_filled')
|
677
769
|
amount = self.safe_string(order, 'amount_original')
|
678
770
|
status = self.parse_order_status(self.safe_string(order, 'status'))
|
679
|
-
id = self.
|
771
|
+
id = self.safe_string_n(order, ['oid', 'id', 'order'])
|
680
772
|
trades = self.safe_value(order, 'trades')
|
681
773
|
side = self.safe_string_2(order, 'my_side', 'type')
|
682
774
|
return self.safe_order({
|
@@ -691,7 +783,6 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
691
783
|
'postOnly': None,
|
692
784
|
'side': side,
|
693
785
|
'price': price,
|
694
|
-
'stopPrice': None,
|
695
786
|
'triggerPrice': None,
|
696
787
|
'cost': None,
|
697
788
|
'amount': amount,
|
@@ -706,13 +797,15 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
706
797
|
|
707
798
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
708
799
|
"""
|
709
|
-
|
800
|
+
|
801
|
+
https://btc-alpha.github.io/api-docs/#create-order
|
802
|
+
|
710
803
|
create a trade order
|
711
804
|
:param str symbol: unified symbol of the market to create an order in
|
712
805
|
:param str type: 'limit'
|
713
806
|
:param str side: 'buy' or 'sell'
|
714
807
|
:param float amount: how much of currency you want to trade in units of base currency
|
715
|
-
:param float [price]: the price at which the order is to be
|
808
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
716
809
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
717
810
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
718
811
|
"""
|
@@ -720,7 +813,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
720
813
|
raise InvalidOrder(self.id + ' only limits orders are supported')
|
721
814
|
self.load_markets()
|
722
815
|
market = self.market(symbol)
|
723
|
-
request = {
|
816
|
+
request: dict = {
|
724
817
|
'pair': market['id'],
|
725
818
|
'type': side,
|
726
819
|
'amount': amount,
|
@@ -737,29 +830,39 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
737
830
|
|
738
831
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
739
832
|
"""
|
740
|
-
|
833
|
+
|
834
|
+
https://btc-alpha.github.io/api-docs/#cancel-order
|
835
|
+
|
741
836
|
cancels an open order
|
742
837
|
:param str id: order id
|
743
838
|
:param str symbol: unified symbol of the market the order was made in
|
744
839
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
745
840
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
746
841
|
"""
|
747
|
-
request = {
|
842
|
+
request: dict = {
|
748
843
|
'order': id,
|
749
844
|
}
|
750
845
|
response = self.privatePostOrderCancel(self.extend(request, params))
|
751
|
-
|
846
|
+
#
|
847
|
+
# {
|
848
|
+
# "order": 63568
|
849
|
+
# }
|
850
|
+
#
|
851
|
+
return self.parse_order(response)
|
752
852
|
|
753
853
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
754
854
|
"""
|
755
|
-
|
855
|
+
|
856
|
+
https://btc-alpha.github.io/api-docs/#retrieve-single-order
|
857
|
+
|
756
858
|
fetches information on an order made by the user
|
859
|
+
:param str id: the order id
|
757
860
|
:param str symbol: not used by btcalpha fetchOrder
|
758
861
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
759
862
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
760
863
|
"""
|
761
864
|
self.load_markets()
|
762
|
-
request = {
|
865
|
+
request: dict = {
|
763
866
|
'id': id,
|
764
867
|
}
|
765
868
|
order = self.privateGetOrderId(self.extend(request, params))
|
@@ -767,7 +870,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
767
870
|
|
768
871
|
def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
769
872
|
"""
|
770
|
-
|
873
|
+
|
874
|
+
https://btc-alpha.github.io/api-docs/#list-own-orders
|
875
|
+
|
771
876
|
fetches information on multiple orders made by the user
|
772
877
|
:param str symbol: unified market symbol of the market orders were made in
|
773
878
|
:param int [since]: the earliest time in ms to fetch orders for
|
@@ -776,7 +881,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
776
881
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
777
882
|
"""
|
778
883
|
self.load_markets()
|
779
|
-
request = {}
|
884
|
+
request: dict = {}
|
780
885
|
market = None
|
781
886
|
if symbol is not None:
|
782
887
|
market = self.market(symbol)
|
@@ -789,14 +894,16 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
789
894
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
790
895
|
"""
|
791
896
|
fetch all unfilled currently open orders
|
792
|
-
|
897
|
+
|
898
|
+
https://btc-alpha.github.io/api-docs/#list-own-orders
|
899
|
+
|
793
900
|
:param str symbol: unified market symbol
|
794
901
|
:param int [since]: the earliest time in ms to fetch open orders for
|
795
902
|
:param int [limit]: the maximum number of open orders structures to retrieve
|
796
903
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
797
904
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
798
905
|
"""
|
799
|
-
request = {
|
906
|
+
request: dict = {
|
800
907
|
'status': '1',
|
801
908
|
}
|
802
909
|
return self.fetch_orders(symbol, since, limit, self.extend(request, params))
|
@@ -804,14 +911,16 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
804
911
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
805
912
|
"""
|
806
913
|
fetches information on multiple closed orders made by the user
|
807
|
-
|
914
|
+
|
915
|
+
https://btc-alpha.github.io/api-docs/#list-own-orders
|
916
|
+
|
808
917
|
:param str symbol: unified market symbol of the market orders were made in
|
809
918
|
:param int [since]: the earliest time in ms to fetch orders for
|
810
919
|
:param int [limit]: the maximum number of order structures to retrieve
|
811
920
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
812
921
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
813
922
|
"""
|
814
|
-
request = {
|
923
|
+
request: dict = {
|
815
924
|
'status': '3',
|
816
925
|
}
|
817
926
|
return self.fetch_orders(symbol, since, limit, self.extend(request, params))
|
@@ -819,7 +928,9 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
819
928
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
820
929
|
"""
|
821
930
|
fetch all trades made by the user
|
822
|
-
|
931
|
+
|
932
|
+
https://btc-alpha.github.io/api-docs/#list-own-exchanges
|
933
|
+
|
823
934
|
:param str symbol: unified market symbol
|
824
935
|
:param int [since]: the earliest time in ms to fetch trades for
|
825
936
|
:param int [limit]: the maximum number of trades structures to retrieve
|
@@ -827,7 +938,7 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
827
938
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
828
939
|
"""
|
829
940
|
self.load_markets()
|
830
|
-
request = {}
|
941
|
+
request: dict = {}
|
831
942
|
if symbol is not None:
|
832
943
|
market = self.market(symbol)
|
833
944
|
request['pair'] = market['id']
|
@@ -863,21 +974,16 @@ class btcalpha(Exchange, ImplicitAPI):
|
|
863
974
|
headers['X-NONCE'] = str(self.nonce())
|
864
975
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
865
976
|
|
866
|
-
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
977
|
+
def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
|
867
978
|
if response is None:
|
868
979
|
return None # fallback to default error handler
|
869
980
|
#
|
870
981
|
# {"date":1570599531.4814300537,"error":"Out of balance -9.99243661 BTC"}
|
871
982
|
#
|
872
983
|
error = self.safe_string(response, 'error')
|
873
|
-
feedback = self.id + ' ' + body
|
874
984
|
if error is not None:
|
985
|
+
feedback = self.id + ' ' + body
|
875
986
|
self.throw_exactly_matched_exception(self.exceptions['exact'], error, feedback)
|
876
987
|
self.throw_broadly_matched_exception(self.exceptions['broad'], error, feedback)
|
877
|
-
|
878
|
-
|
879
|
-
elif code == 429:
|
880
|
-
raise DDoSProtection(feedback)
|
881
|
-
if code < 400:
|
882
|
-
return None
|
883
|
-
raise ExchangeError(feedback)
|
988
|
+
raise ExchangeError(feedback) # unknown error
|
989
|
+
return None
|