ccxt 4.2.77__py2.py3-none-any.whl → 4.4.49__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +36 -14
- ccxt/abstract/alpaca.py +4 -0
- ccxt/abstract/bigone.py +1 -1
- ccxt/abstract/binance.py +112 -48
- ccxt/abstract/binancecoinm.py +112 -48
- ccxt/abstract/binanceus.py +147 -83
- ccxt/abstract/binanceusdm.py +112 -48
- ccxt/abstract/bingx.py +133 -78
- ccxt/abstract/bitbank.py +5 -0
- ccxt/abstract/bitfinex.py +136 -65
- ccxt/abstract/bitfinex1.py +69 -0
- ccxt/abstract/bitflyer.py +1 -0
- ccxt/abstract/bitget.py +8 -1
- ccxt/abstract/bitmart.py +13 -1
- ccxt/abstract/bitopro.py +1 -0
- ccxt/abstract/bitpanda.py +0 -12
- ccxt/abstract/bitrue.py +3 -3
- ccxt/abstract/bitstamp.py +26 -3
- ccxt/abstract/blofin.py +24 -0
- ccxt/abstract/btcbox.py +1 -0
- ccxt/abstract/bybit.py +29 -14
- ccxt/abstract/cex.py +28 -29
- ccxt/abstract/coinbase.py +6 -0
- ccxt/abstract/coinbaseadvanced.py +94 -0
- ccxt/abstract/{coinbasepro.py → coinbaseexchange.py} +1 -0
- ccxt/abstract/coinbaseinternational.py +1 -1
- ccxt/abstract/coincatch.py +94 -0
- ccxt/abstract/coinex.py +233 -123
- ccxt/abstract/coinmetro.py +1 -0
- ccxt/abstract/cryptocom.py +14 -0
- ccxt/abstract/defx.py +69 -0
- ccxt/abstract/deribit.py +1 -0
- ccxt/abstract/digifinex.py +1 -0
- ccxt/abstract/ellipx.py +25 -0
- ccxt/abstract/gate.py +20 -0
- ccxt/abstract/gateio.py +20 -0
- ccxt/abstract/gemini.py +1 -0
- ccxt/abstract/hashkey.py +67 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/abstract/independentreserve.py +6 -0
- ccxt/abstract/kraken.py +4 -3
- ccxt/abstract/krakenfutures.py +4 -0
- ccxt/abstract/kucoin.py +24 -0
- ccxt/abstract/kucoinfutures.py +34 -0
- ccxt/abstract/luno.py +2 -0
- ccxt/abstract/mexc.py +4 -0
- ccxt/abstract/myokx.py +340 -0
- ccxt/abstract/oceanex.py +5 -0
- ccxt/abstract/okx.py +30 -0
- ccxt/abstract/onetrading.py +0 -12
- ccxt/abstract/oxfun.py +34 -0
- ccxt/abstract/paradex.py +40 -0
- ccxt/abstract/phemex.py +1 -0
- ccxt/abstract/upbit.py +4 -0
- ccxt/abstract/vertex.py +19 -0
- ccxt/abstract/whitebit.py +31 -1
- ccxt/abstract/woo.py +6 -2
- ccxt/abstract/woofipro.py +119 -0
- ccxt/abstract/xt.py +153 -0
- ccxt/abstract/zonda.py +6 -0
- ccxt/ace.py +164 -60
- ccxt/alpaca.py +727 -63
- ccxt/ascendex.py +395 -249
- ccxt/async_support/__init__.py +36 -14
- ccxt/async_support/ace.py +164 -60
- ccxt/async_support/alpaca.py +727 -63
- ccxt/async_support/ascendex.py +396 -249
- ccxt/async_support/base/exchange.py +531 -155
- ccxt/async_support/base/ws/aiohttp_client.py +28 -5
- ccxt/async_support/base/ws/cache.py +3 -2
- ccxt/async_support/base/ws/client.py +26 -5
- ccxt/async_support/base/ws/fast_client.py +4 -3
- ccxt/async_support/base/ws/functions.py +1 -1
- ccxt/async_support/base/ws/future.py +40 -31
- ccxt/async_support/base/ws/order_book_side.py +3 -0
- ccxt/async_support/bequant.py +1 -1
- ccxt/async_support/bigone.py +329 -202
- ccxt/async_support/binance.py +3030 -1087
- ccxt/async_support/binancecoinm.py +2 -1
- ccxt/async_support/binanceus.py +12 -1
- ccxt/async_support/binanceusdm.py +3 -1
- ccxt/async_support/bingx.py +3205 -937
- ccxt/async_support/bit2c.py +119 -38
- ccxt/async_support/bitbank.py +215 -76
- ccxt/async_support/bitbns.py +124 -53
- ccxt/async_support/bitfinex.py +3236 -1078
- ccxt/async_support/bitfinex1.py +1711 -0
- ccxt/async_support/bitflyer.py +238 -49
- ccxt/async_support/bitget.py +1525 -573
- ccxt/async_support/bithumb.py +199 -65
- ccxt/async_support/bitmart.py +1320 -435
- ccxt/async_support/bitmex.py +308 -111
- ccxt/async_support/bitopro.py +256 -96
- ccxt/async_support/bitrue.py +365 -233
- ccxt/async_support/bitso.py +201 -89
- ccxt/async_support/bitstamp.py +438 -269
- ccxt/async_support/bitteam.py +179 -73
- ccxt/async_support/bitvavo.py +180 -70
- ccxt/async_support/bl3p.py +92 -25
- ccxt/async_support/blockchaincom.py +193 -79
- ccxt/async_support/blofin.py +392 -148
- ccxt/async_support/btcalpha.py +161 -55
- ccxt/async_support/btcbox.py +250 -34
- ccxt/async_support/btcmarkets.py +232 -85
- ccxt/async_support/btcturk.py +159 -60
- ccxt/async_support/bybit.py +2231 -1193
- ccxt/async_support/cex.py +1409 -1329
- ccxt/async_support/coinbase.py +1454 -287
- ccxt/async_support/coinbaseadvanced.py +17 -0
- ccxt/async_support/{coinbasepro.py → coinbaseexchange.py} +233 -99
- ccxt/async_support/coinbaseinternational.py +428 -88
- ccxt/async_support/coincatch.py +5152 -0
- ccxt/async_support/coincheck.py +121 -38
- ccxt/async_support/coinex.py +4020 -3339
- ccxt/async_support/coinlist.py +273 -116
- ccxt/async_support/coinmate.py +204 -97
- ccxt/async_support/coinmetro.py +203 -110
- ccxt/async_support/coinone.py +142 -68
- ccxt/async_support/coinsph.py +223 -97
- ccxt/async_support/coinspot.py +137 -62
- ccxt/async_support/cryptocom.py +515 -185
- ccxt/async_support/currencycom.py +203 -85
- ccxt/async_support/defx.py +2066 -0
- ccxt/async_support/delta.py +404 -109
- ccxt/async_support/deribit.py +639 -323
- ccxt/async_support/digifinex.py +465 -233
- ccxt/async_support/ellipx.py +1887 -0
- ccxt/async_support/exmo.py +317 -128
- ccxt/async_support/gate.py +1472 -463
- ccxt/async_support/gemini.py +206 -84
- ccxt/async_support/hashkey.py +4164 -0
- ccxt/async_support/hitbtc.py +433 -178
- ccxt/async_support/hollaex.py +207 -83
- ccxt/async_support/htx.py +1095 -563
- ccxt/async_support/huobijp.py +178 -56
- ccxt/async_support/hyperliquid.py +1678 -292
- ccxt/async_support/idex.py +219 -95
- ccxt/async_support/independentreserve.py +300 -31
- ccxt/async_support/indodax.py +226 -62
- ccxt/async_support/kraken.py +871 -354
- ccxt/async_support/krakenfutures.py +324 -100
- ccxt/async_support/kucoin.py +917 -357
- ccxt/async_support/kucoinfutures.py +1004 -149
- ccxt/async_support/kuna.py +198 -107
- ccxt/async_support/latoken.py +199 -79
- ccxt/async_support/lbank.py +360 -113
- ccxt/async_support/luno.py +185 -62
- ccxt/async_support/lykke.py +168 -55
- ccxt/async_support/mercado.py +101 -29
- ccxt/async_support/mexc.py +995 -429
- ccxt/async_support/myokx.py +53 -0
- ccxt/async_support/ndax.py +234 -82
- ccxt/async_support/novadax.py +195 -75
- ccxt/async_support/oceanex.py +244 -59
- ccxt/async_support/okcoin.py +301 -165
- ccxt/async_support/okx.py +1776 -454
- ccxt/async_support/onetrading.py +198 -414
- ccxt/async_support/oxfun.py +2898 -0
- ccxt/async_support/p2b.py +142 -52
- ccxt/async_support/paradex.py +2085 -0
- ccxt/async_support/paymium.py +56 -32
- ccxt/async_support/phemex.py +572 -196
- ccxt/async_support/poloniex.py +218 -95
- ccxt/async_support/poloniexfutures.py +260 -92
- ccxt/async_support/probit.py +143 -110
- ccxt/async_support/timex.py +123 -70
- ccxt/async_support/tokocrypto.py +129 -93
- ccxt/async_support/tradeogre.py +39 -25
- ccxt/async_support/upbit.py +322 -113
- ccxt/async_support/vertex.py +2983 -0
- ccxt/async_support/wavesexchange.py +227 -173
- ccxt/async_support/wazirx.py +145 -65
- ccxt/async_support/whitebit.py +533 -138
- ccxt/async_support/woo.py +1137 -296
- ccxt/async_support/woofipro.py +2716 -0
- ccxt/async_support/xt.py +4628 -0
- ccxt/async_support/yobit.py +160 -92
- ccxt/async_support/zaif.py +80 -33
- ccxt/async_support/zonda.py +140 -69
- ccxt/base/errors.py +51 -20
- ccxt/base/exchange.py +1722 -480
- ccxt/base/precise.py +10 -0
- ccxt/base/types.py +223 -4
- ccxt/bequant.py +1 -1
- ccxt/bigone.py +329 -202
- ccxt/binance.py +3030 -1087
- ccxt/binancecoinm.py +2 -1
- ccxt/binanceus.py +12 -1
- ccxt/binanceusdm.py +3 -1
- ccxt/bingx.py +3205 -937
- ccxt/bit2c.py +119 -38
- ccxt/bitbank.py +215 -76
- ccxt/bitbns.py +124 -53
- ccxt/bitfinex.py +3235 -1078
- ccxt/bitfinex1.py +1710 -0
- ccxt/bitflyer.py +238 -49
- ccxt/bitget.py +1525 -573
- ccxt/bithumb.py +198 -65
- ccxt/bitmart.py +1320 -435
- ccxt/bitmex.py +308 -111
- ccxt/bitopro.py +256 -96
- ccxt/bitrue.py +365 -233
- ccxt/bitso.py +201 -89
- ccxt/bitstamp.py +438 -269
- ccxt/bitteam.py +179 -73
- ccxt/bitvavo.py +180 -70
- ccxt/bl3p.py +92 -25
- ccxt/blockchaincom.py +193 -79
- ccxt/blofin.py +392 -148
- ccxt/btcalpha.py +161 -55
- ccxt/btcbox.py +250 -34
- ccxt/btcmarkets.py +232 -85
- ccxt/btcturk.py +159 -60
- ccxt/bybit.py +2231 -1193
- ccxt/cex.py +1408 -1329
- ccxt/coinbase.py +1454 -287
- ccxt/coinbaseadvanced.py +17 -0
- ccxt/{coinbasepro.py → coinbaseexchange.py} +233 -99
- ccxt/coinbaseinternational.py +428 -88
- ccxt/coincatch.py +5152 -0
- ccxt/coincheck.py +121 -38
- ccxt/coinex.py +4020 -3339
- ccxt/coinlist.py +273 -116
- ccxt/coinmate.py +204 -97
- ccxt/coinmetro.py +203 -110
- ccxt/coinone.py +142 -68
- ccxt/coinsph.py +223 -97
- ccxt/coinspot.py +137 -62
- ccxt/cryptocom.py +515 -185
- ccxt/currencycom.py +203 -85
- ccxt/defx.py +2065 -0
- ccxt/delta.py +404 -109
- ccxt/deribit.py +639 -323
- ccxt/digifinex.py +465 -233
- ccxt/ellipx.py +1887 -0
- ccxt/exmo.py +317 -128
- ccxt/gate.py +1472 -463
- ccxt/gemini.py +206 -84
- ccxt/hashkey.py +4164 -0
- ccxt/hitbtc.py +433 -178
- ccxt/hollaex.py +207 -83
- ccxt/htx.py +1095 -563
- ccxt/huobijp.py +178 -56
- ccxt/hyperliquid.py +1677 -292
- ccxt/idex.py +219 -95
- ccxt/independentreserve.py +299 -31
- ccxt/indodax.py +226 -62
- ccxt/kraken.py +871 -354
- ccxt/krakenfutures.py +324 -100
- ccxt/kucoin.py +917 -357
- ccxt/kucoinfutures.py +1004 -149
- ccxt/kuna.py +198 -107
- ccxt/latoken.py +199 -79
- ccxt/lbank.py +360 -113
- ccxt/luno.py +185 -62
- ccxt/lykke.py +168 -55
- ccxt/mercado.py +101 -29
- ccxt/mexc.py +994 -429
- ccxt/myokx.py +53 -0
- ccxt/ndax.py +234 -82
- ccxt/novadax.py +195 -75
- ccxt/oceanex.py +244 -59
- ccxt/okcoin.py +301 -165
- ccxt/okx.py +1776 -454
- ccxt/onetrading.py +198 -414
- ccxt/oxfun.py +2897 -0
- ccxt/p2b.py +142 -52
- ccxt/paradex.py +2085 -0
- ccxt/paymium.py +56 -32
- ccxt/phemex.py +572 -196
- ccxt/poloniex.py +218 -95
- ccxt/poloniexfutures.py +260 -92
- ccxt/pro/__init__.py +29 -5
- ccxt/pro/alpaca.py +32 -17
- ccxt/pro/ascendex.py +62 -14
- ccxt/pro/bequant.py +4 -0
- ccxt/pro/binance.py +1596 -329
- ccxt/pro/binancecoinm.py +1 -0
- ccxt/pro/binanceus.py +2 -9
- ccxt/pro/binanceusdm.py +2 -0
- ccxt/pro/bingx.py +527 -134
- ccxt/pro/bitcoincom.py +4 -1
- ccxt/pro/bitfinex.py +731 -266
- ccxt/pro/bitfinex1.py +635 -0
- ccxt/pro/bitget.py +726 -357
- ccxt/pro/bithumb.py +380 -0
- ccxt/pro/bitmart.py +143 -39
- ccxt/pro/bitmex.py +199 -40
- ccxt/pro/bitopro.py +25 -13
- ccxt/pro/bitrue.py +31 -32
- ccxt/pro/bitstamp.py +7 -6
- ccxt/pro/bitvavo.py +203 -81
- ccxt/pro/blockchaincom.py +30 -17
- ccxt/pro/blofin.py +692 -0
- ccxt/pro/bybit.py +791 -82
- ccxt/pro/cex.py +99 -51
- ccxt/pro/coinbase.py +220 -30
- ccxt/{async_support/hitbtc3.py → pro/coinbaseadvanced.py} +5 -5
- ccxt/pro/{coinbasepro.py → coinbaseexchange.py} +19 -19
- ccxt/pro/coinbaseinternational.py +193 -30
- ccxt/pro/coincatch.py +1464 -0
- ccxt/pro/coincheck.py +11 -6
- ccxt/pro/coinex.py +965 -665
- ccxt/pro/coinone.py +17 -10
- ccxt/pro/cryptocom.py +446 -66
- ccxt/pro/currencycom.py +11 -10
- ccxt/pro/defx.py +832 -0
- ccxt/pro/deribit.py +167 -31
- ccxt/pro/exmo.py +252 -20
- ccxt/pro/gate.py +729 -64
- ccxt/pro/gemini.py +44 -26
- ccxt/pro/hashkey.py +802 -0
- ccxt/pro/hitbtc.py +208 -103
- ccxt/pro/hollaex.py +25 -9
- ccxt/pro/htx.py +83 -39
- ccxt/pro/huobijp.py +17 -16
- ccxt/pro/hyperliquid.py +502 -31
- ccxt/pro/idex.py +28 -13
- ccxt/pro/independentreserve.py +21 -16
- ccxt/pro/kraken.py +298 -51
- ccxt/pro/krakenfutures.py +166 -75
- ccxt/pro/kucoin.py +395 -77
- ccxt/pro/kucoinfutures.py +400 -99
- ccxt/pro/lbank.py +52 -31
- ccxt/pro/luno.py +12 -10
- ccxt/pro/mexc.py +400 -50
- ccxt/pro/myokx.py +28 -0
- ccxt/pro/ndax.py +25 -12
- ccxt/pro/okcoin.py +28 -9
- ccxt/pro/okx.py +935 -124
- ccxt/pro/onetrading.py +41 -24
- ccxt/pro/oxfun.py +1054 -0
- ccxt/pro/p2b.py +100 -24
- ccxt/pro/paradex.py +352 -0
- ccxt/pro/phemex.py +92 -33
- ccxt/pro/poloniex.py +128 -49
- ccxt/pro/poloniexfutures.py +53 -32
- ccxt/pro/probit.py +92 -85
- ccxt/pro/upbit.py +401 -8
- ccxt/pro/vertex.py +943 -0
- ccxt/pro/wazirx.py +46 -28
- ccxt/pro/whitebit.py +65 -12
- ccxt/pro/woo.py +437 -65
- ccxt/pro/woofipro.py +1271 -0
- ccxt/pro/xt.py +1067 -0
- ccxt/probit.py +143 -110
- ccxt/static_dependencies/__init__.py +1 -1
- ccxt/static_dependencies/lark/__init__.py +38 -0
- ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
- ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
- ccxt/static_dependencies/lark/ast_utils.py +59 -0
- ccxt/static_dependencies/lark/common.py +86 -0
- ccxt/static_dependencies/lark/exceptions.py +292 -0
- ccxt/static_dependencies/lark/grammar.py +130 -0
- ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
- ccxt/static_dependencies/lark/indenter.py +143 -0
- ccxt/static_dependencies/lark/lark.py +658 -0
- ccxt/static_dependencies/lark/lexer.py +678 -0
- ccxt/static_dependencies/lark/load_grammar.py +1428 -0
- ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
- ccxt/static_dependencies/lark/parser_frontends.py +257 -0
- ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
- ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
- ccxt/static_dependencies/lark/parsers/earley.py +314 -0
- ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
- ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
- ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
- ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
- ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
- ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
- ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
- ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
- ccxt/static_dependencies/lark/py.typed +0 -0
- ccxt/static_dependencies/lark/reconstruct.py +107 -0
- ccxt/static_dependencies/lark/tools/__init__.py +70 -0
- ccxt/static_dependencies/lark/tools/nearley.py +202 -0
- ccxt/static_dependencies/lark/tools/serialize.py +32 -0
- ccxt/static_dependencies/lark/tools/standalone.py +196 -0
- ccxt/static_dependencies/lark/tree.py +267 -0
- ccxt/static_dependencies/lark/tree_matcher.py +186 -0
- ccxt/static_dependencies/lark/tree_templates.py +180 -0
- ccxt/static_dependencies/lark/utils.py +343 -0
- ccxt/static_dependencies/lark/visitors.py +596 -0
- ccxt/static_dependencies/marshmallow/__init__.py +81 -0
- ccxt/static_dependencies/marshmallow/base.py +65 -0
- ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
- ccxt/static_dependencies/marshmallow/decorators.py +231 -0
- ccxt/static_dependencies/marshmallow/error_store.py +60 -0
- ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
- ccxt/static_dependencies/marshmallow/fields.py +2114 -0
- ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
- ccxt/static_dependencies/marshmallow/py.typed +0 -0
- ccxt/static_dependencies/marshmallow/schema.py +1228 -0
- ccxt/static_dependencies/marshmallow/types.py +12 -0
- ccxt/static_dependencies/marshmallow/utils.py +378 -0
- ccxt/static_dependencies/marshmallow/validate.py +678 -0
- ccxt/static_dependencies/marshmallow/warnings.py +2 -0
- ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
- ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
- ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
- ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
- ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
- ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
- ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
- ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
- ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- ccxt/static_dependencies/starknet/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
- ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
- ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
- ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
- ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
- ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
- ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
- ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
- ccxt/static_dependencies/starknet/common.py +15 -0
- ccxt/static_dependencies/starknet/constants.py +39 -0
- ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
- ccxt/static_dependencies/starknet/hash/address.py +79 -0
- ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
- ccxt/static_dependencies/starknet/hash/selector.py +16 -0
- ccxt/static_dependencies/starknet/hash/storage.py +12 -0
- ccxt/static_dependencies/starknet/hash/utils.py +78 -0
- ccxt/static_dependencies/starknet/models/__init__.py +0 -0
- ccxt/static_dependencies/starknet/models/typed_data.py +45 -0
- ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
- ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
- ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
- ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
- ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
- ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
- ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
- ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
- ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
- ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
- ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
- ccxt/static_dependencies/starknet/utils/schema.py +13 -0
- ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
- ccxt/static_dependencies/starkware/__init__.py +0 -0
- ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
- ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +50 -0
- ccxt/static_dependencies/starkware/crypto/math_utils.py +78 -0
- ccxt/static_dependencies/starkware/crypto/signature.py +2344 -0
- ccxt/static_dependencies/starkware/crypto/utils.py +63 -0
- ccxt/static_dependencies/sympy/__init__.py +0 -0
- ccxt/static_dependencies/sympy/core/__init__.py +0 -0
- ccxt/static_dependencies/sympy/core/intfunc.py +35 -0
- ccxt/static_dependencies/sympy/external/__init__.py +0 -0
- ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
- ccxt/static_dependencies/sympy/external/importtools.py +187 -0
- ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
- ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
- ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
- ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
- ccxt/test/{test_async.py → tests_async.py} +456 -391
- ccxt/test/tests_helpers.py +285 -0
- ccxt/test/tests_init.py +39 -0
- ccxt/test/{test_sync.py → tests_sync.py} +456 -393
- ccxt/timex.py +123 -70
- ccxt/tokocrypto.py +129 -93
- ccxt/tradeogre.py +39 -25
- ccxt/upbit.py +322 -113
- ccxt/vertex.py +2983 -0
- ccxt/wavesexchange.py +227 -173
- ccxt/wazirx.py +145 -65
- ccxt/whitebit.py +533 -138
- ccxt/woo.py +1137 -296
- ccxt/woofipro.py +2716 -0
- ccxt/xt.py +4627 -0
- ccxt/yobit.py +159 -92
- ccxt/zaif.py +80 -33
- ccxt/zonda.py +140 -69
- ccxt-4.4.49.dist-info/LICENSE.txt +21 -0
- ccxt-4.4.49.dist-info/METADATA +646 -0
- ccxt-4.4.49.dist-info/RECORD +669 -0
- {ccxt-4.2.77.dist-info → ccxt-4.4.49.dist-info}/WHEEL +1 -1
- ccxt/abstract/bitbay.py +0 -47
- ccxt/abstract/bitfinex2.py +0 -139
- ccxt/abstract/hitbtc3.py +0 -115
- ccxt/async_support/bitbay.py +0 -17
- ccxt/async_support/bitfinex2.py +0 -3496
- ccxt/async_support/flowbtc.py +0 -34
- ccxt/bitbay.py +0 -17
- ccxt/bitfinex2.py +0 -3496
- ccxt/flowbtc.py +0 -34
- ccxt/hitbtc3.py +0 -16
- ccxt/pro/bitfinex2.py +0 -1081
- ccxt/test/base/__init__.py +0 -28
- ccxt/test/base/test_account.py +0 -26
- ccxt/test/base/test_balance.py +0 -56
- ccxt/test/base/test_borrow_interest.py +0 -35
- ccxt/test/base/test_borrow_rate.py +0 -32
- ccxt/test/base/test_calculate_fee.py +0 -51
- ccxt/test/base/test_crypto.py +0 -127
- ccxt/test/base/test_currency.py +0 -76
- ccxt/test/base/test_datetime.py +0 -103
- ccxt/test/base/test_decimal_to_precision.py +0 -392
- ccxt/test/base/test_deep_extend.py +0 -68
- ccxt/test/base/test_deposit_withdrawal.py +0 -50
- ccxt/test/base/test_exchange_datetime_functions.py +0 -76
- ccxt/test/base/test_funding_rate_history.py +0 -29
- ccxt/test/base/test_last_price.py +0 -32
- ccxt/test/base/test_ledger_entry.py +0 -45
- ccxt/test/base/test_ledger_item.py +0 -48
- ccxt/test/base/test_leverage_tier.py +0 -33
- ccxt/test/base/test_margin_mode.py +0 -24
- ccxt/test/base/test_margin_modification.py +0 -35
- ccxt/test/base/test_market.py +0 -190
- ccxt/test/base/test_number.py +0 -411
- ccxt/test/base/test_ohlcv.py +0 -32
- ccxt/test/base/test_open_interest.py +0 -32
- ccxt/test/base/test_order.py +0 -64
- ccxt/test/base/test_order_book.py +0 -63
- ccxt/test/base/test_position.py +0 -60
- ccxt/test/base/test_shared_methods.py +0 -345
- ccxt/test/base/test_status.py +0 -24
- ccxt/test/base/test_throttle.py +0 -126
- ccxt/test/base/test_ticker.py +0 -86
- ccxt/test/base/test_trade.py +0 -47
- ccxt/test/base/test_trading_fee.py +0 -26
- ccxt/test/base/test_transaction.py +0 -39
- ccxt-4.2.77.dist-info/METADATA +0 -626
- ccxt-4.2.77.dist-info/RECORD +0 -534
- {ccxt-4.2.77.dist-info → ccxt-4.4.49.dist-info}/top_level.txt +0 -0
ccxt/p2b.py
CHANGED
@@ -8,11 +8,11 @@ from ccxt.abstract.p2b import ImplicitAPI
|
|
8
8
|
import hashlib
|
9
9
|
from ccxt.base.types import Int, Market, Num, Order, OrderSide, OrderType, Str, Strings, Ticker, Tickers
|
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 ExchangeNotAvailable
|
15
|
-
from ccxt.base.errors import AuthenticationError
|
16
16
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
17
17
|
|
18
18
|
|
@@ -81,12 +81,14 @@ class p2b(Exchange, ImplicitAPI):
|
|
81
81
|
'fetchOpenOrders': True,
|
82
82
|
'fetchOrderBook': True,
|
83
83
|
'fetchOrderBooks': False,
|
84
|
-
'fetchOrders':
|
84
|
+
'fetchOrders': False,
|
85
85
|
'fetchOrderTrades': True,
|
86
|
-
'fetchPermissions': False,
|
87
86
|
'fetchPosition': False,
|
87
|
+
'fetchPositionHistory': False,
|
88
|
+
'fetchPositionMode': False,
|
88
89
|
'fetchPositions': False,
|
89
90
|
'fetchPositionsForSymbol': False,
|
91
|
+
'fetchPositionsHistory': False,
|
90
92
|
'fetchPositionsRisk': False,
|
91
93
|
'fetchPremiumIndexOHLCV': False,
|
92
94
|
'fetchTicker': True,
|
@@ -186,6 +188,68 @@ class p2b(Exchange, ImplicitAPI):
|
|
186
188
|
],
|
187
189
|
},
|
188
190
|
},
|
191
|
+
'features': {
|
192
|
+
'spot': {
|
193
|
+
'sandbox': False,
|
194
|
+
'createOrder': {
|
195
|
+
'marginMode': False,
|
196
|
+
'triggerPrice': False,
|
197
|
+
'triggerDirection': False,
|
198
|
+
'triggerPriceType': None,
|
199
|
+
'stopLossPrice': False,
|
200
|
+
'takeProfitPrice': False,
|
201
|
+
'attachedStopLossTakeProfit': None,
|
202
|
+
'timeInForce': {
|
203
|
+
'IOC': True,
|
204
|
+
'FOK': True,
|
205
|
+
'PO': True,
|
206
|
+
'GTD': False,
|
207
|
+
},
|
208
|
+
'hedged': False,
|
209
|
+
'trailing': False,
|
210
|
+
'leverage': False,
|
211
|
+
'marketBuyByCost': False,
|
212
|
+
'marketBuyRequiresPrice': False,
|
213
|
+
'selfTradePrevention': False,
|
214
|
+
'iceberg': False,
|
215
|
+
},
|
216
|
+
'createOrders': None,
|
217
|
+
'fetchMyTrades': {
|
218
|
+
'marginMode': False,
|
219
|
+
'limit': 100,
|
220
|
+
'daysBack': 100000, # todo
|
221
|
+
'untilDays': 1,
|
222
|
+
},
|
223
|
+
'fetchOrder': None, # todo
|
224
|
+
'fetchOpenOrders': {
|
225
|
+
'marginMode': False,
|
226
|
+
'limit': 100,
|
227
|
+
'trigger': False,
|
228
|
+
'trailing': False,
|
229
|
+
},
|
230
|
+
'fetchOrders': None, # todo
|
231
|
+
'fetchClosedOrders': {
|
232
|
+
'marginMode': False,
|
233
|
+
'limit': 100,
|
234
|
+
'daysBack': 100000, # todo
|
235
|
+
'daysBackCanceled': 1 / 12, # todo
|
236
|
+
'untilDays': 1,
|
237
|
+
'trigger': False,
|
238
|
+
'trailing': False,
|
239
|
+
},
|
240
|
+
'fetchOHLCV': {
|
241
|
+
'limit': 500,
|
242
|
+
},
|
243
|
+
},
|
244
|
+
'swap': {
|
245
|
+
'linear': None,
|
246
|
+
'inverse': None,
|
247
|
+
},
|
248
|
+
'future': {
|
249
|
+
'linear': None,
|
250
|
+
'inverse': None,
|
251
|
+
},
|
252
|
+
},
|
189
253
|
'commonCurrencies': {
|
190
254
|
},
|
191
255
|
'precisionMode': TICK_SIZE,
|
@@ -236,10 +300,12 @@ class p2b(Exchange, ImplicitAPI):
|
|
236
300
|
},
|
237
301
|
})
|
238
302
|
|
239
|
-
def fetch_markets(self, params={}):
|
303
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
240
304
|
"""
|
241
305
|
retrieves data on all markets for bigone
|
242
|
-
|
306
|
+
|
307
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#markets
|
308
|
+
|
243
309
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
244
310
|
:returns dict[]: an array of objects representing market data
|
245
311
|
"""
|
@@ -276,7 +342,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
276
342
|
markets = self.safe_value(response, 'result', [])
|
277
343
|
return self.parse_markets(markets)
|
278
344
|
|
279
|
-
def parse_market(self, market) -> Market:
|
345
|
+
def parse_market(self, market: dict) -> Market:
|
280
346
|
marketId = self.safe_string(market, 'name')
|
281
347
|
baseId = self.safe_string(market, 'stock')
|
282
348
|
quoteId = self.safe_string(market, 'money')
|
@@ -338,7 +404,9 @@ class p2b(Exchange, ImplicitAPI):
|
|
338
404
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
339
405
|
"""
|
340
406
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
341
|
-
|
407
|
+
|
408
|
+
https://futures-docs.poloniex.com/#get-real-time-ticker-of-all-symbols
|
409
|
+
|
342
410
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
343
411
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
344
412
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -376,14 +444,16 @@ class p2b(Exchange, ImplicitAPI):
|
|
376
444
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
377
445
|
"""
|
378
446
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
379
|
-
|
447
|
+
|
448
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#ticker
|
449
|
+
|
380
450
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
381
451
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
382
452
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
383
453
|
"""
|
384
454
|
self.load_markets()
|
385
455
|
market = self.market(symbol)
|
386
|
-
request = {
|
456
|
+
request: dict = {
|
387
457
|
'market': market['id'],
|
388
458
|
}
|
389
459
|
response = self.publicGetTicker(self.extend(request, params))
|
@@ -476,18 +546,20 @@ class p2b(Exchange, ImplicitAPI):
|
|
476
546
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}):
|
477
547
|
"""
|
478
548
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
479
|
-
|
549
|
+
|
550
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#depth-result
|
551
|
+
|
480
552
|
:param str symbol: unified symbol of the market to fetch the order book for
|
481
553
|
:param int [limit]: the maximum amount of order book entries to return
|
482
554
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
483
|
-
|
484
|
-
|
555
|
+
|
556
|
+
EXCHANGE SPECIFIC PARAMETERS
|
485
557
|
:param str [params.interval]: 0(default), 0.00000001, 0.0000001, 0.000001, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1
|
486
558
|
:returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
|
487
559
|
"""
|
488
560
|
self.load_markets()
|
489
561
|
market = self.market(symbol)
|
490
|
-
request = {
|
562
|
+
request: dict = {
|
491
563
|
'market': market['id'],
|
492
564
|
}
|
493
565
|
if limit is not None:
|
@@ -525,7 +597,9 @@ class p2b(Exchange, ImplicitAPI):
|
|
525
597
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}):
|
526
598
|
"""
|
527
599
|
get the list of most recent trades for a particular symbol
|
528
|
-
|
600
|
+
|
601
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#history
|
602
|
+
|
529
603
|
:param str symbol: unified symbol of the market to fetch trades for
|
530
604
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
531
605
|
:param int [limit]: 1-100, default=50
|
@@ -538,7 +612,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
538
612
|
if lastId is None:
|
539
613
|
raise ArgumentsRequired(self.id + ' fetchTrades() requires an extra parameter params["lastId"]')
|
540
614
|
market = self.market(symbol)
|
541
|
-
request = {
|
615
|
+
request: dict = {
|
542
616
|
'market': market['id'],
|
543
617
|
'lastId': lastId,
|
544
618
|
}
|
@@ -564,10 +638,10 @@ class p2b(Exchange, ImplicitAPI):
|
|
564
638
|
# current_time: '1699255571.413828'
|
565
639
|
# }
|
566
640
|
#
|
567
|
-
result = self.
|
641
|
+
result = self.safe_list(response, 'result', [])
|
568
642
|
return self.parse_trades(result, market, since, limit)
|
569
643
|
|
570
|
-
def parse_trade(self, trade, market: Market = None):
|
644
|
+
def parse_trade(self, trade: dict, market: Market = None):
|
571
645
|
#
|
572
646
|
# fetchTrades
|
573
647
|
#
|
@@ -636,7 +710,9 @@ class p2b(Exchange, ImplicitAPI):
|
|
636
710
|
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}):
|
637
711
|
"""
|
638
712
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
639
|
-
|
713
|
+
|
714
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#kline
|
715
|
+
|
640
716
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
641
717
|
:param str timeframe: 1m, 1h, or 1d
|
642
718
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -647,7 +723,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
647
723
|
"""
|
648
724
|
self.load_markets()
|
649
725
|
market = self.market(symbol)
|
650
|
-
request = {
|
726
|
+
request: dict = {
|
651
727
|
'market': market['id'],
|
652
728
|
'interval': timeframe,
|
653
729
|
}
|
@@ -676,7 +752,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
676
752
|
# current_time: '1699256375.030494'
|
677
753
|
# }
|
678
754
|
#
|
679
|
-
result = self.
|
755
|
+
result = self.safe_list(response, 'result', [])
|
680
756
|
return self.parse_ohlcvs(result, market, timeframe, since, limit)
|
681
757
|
|
682
758
|
def parse_ohlcv(self, ohlcv, market: Market = None) -> list:
|
@@ -704,7 +780,9 @@ class p2b(Exchange, ImplicitAPI):
|
|
704
780
|
def fetch_balance(self, params={}):
|
705
781
|
"""
|
706
782
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
707
|
-
|
783
|
+
|
784
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#all-balances
|
785
|
+
|
708
786
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
709
787
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
710
788
|
"""
|
@@ -743,7 +821,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
743
821
|
# }
|
744
822
|
# }
|
745
823
|
#
|
746
|
-
result = {
|
824
|
+
result: dict = {
|
747
825
|
'info': response,
|
748
826
|
}
|
749
827
|
keys = list(response.keys())
|
@@ -753,7 +831,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
753
831
|
code = self.safe_currency_code(currencyId)
|
754
832
|
used = self.safe_string(balance, 'freeze')
|
755
833
|
available = self.safe_string(balance, 'available')
|
756
|
-
account = {
|
834
|
+
account: dict = {
|
757
835
|
'free': available,
|
758
836
|
'used': used,
|
759
837
|
}
|
@@ -763,12 +841,14 @@ class p2b(Exchange, ImplicitAPI):
|
|
763
841
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
764
842
|
"""
|
765
843
|
create a trade order
|
766
|
-
|
844
|
+
|
845
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#create-order
|
846
|
+
|
767
847
|
:param str symbol: unified symbol of the market to create an order in
|
768
848
|
:param str type: must be 'limit'
|
769
849
|
:param str side: 'buy' or 'sell'
|
770
850
|
:param float amount: how much of currency you want to trade in units of base currency
|
771
|
-
:param float price: the price at which the order is to be
|
851
|
+
:param float price: the price at which the order is to be fulfilled, in units of the quote currency
|
772
852
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
773
853
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
774
854
|
"""
|
@@ -776,7 +856,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
776
856
|
if type == 'market':
|
777
857
|
raise BadRequest(self.id + ' createOrder() can only accept orders with type "limit"')
|
778
858
|
market = self.market(symbol)
|
779
|
-
request = {
|
859
|
+
request: dict = {
|
780
860
|
'market': market['id'],
|
781
861
|
'side': side,
|
782
862
|
'amount': self.amount_to_precision(symbol, amount),
|
@@ -805,13 +885,15 @@ class p2b(Exchange, ImplicitAPI):
|
|
805
885
|
# }
|
806
886
|
# }
|
807
887
|
#
|
808
|
-
result = self.
|
888
|
+
result = self.safe_dict(response, 'result')
|
809
889
|
return self.parse_order(result, market)
|
810
890
|
|
811
891
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
812
892
|
"""
|
813
893
|
cancels an open order
|
814
|
-
|
894
|
+
|
895
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#cancel-order
|
896
|
+
|
815
897
|
:param str id: order id
|
816
898
|
:param str symbol: unified symbol of the market the order was made in
|
817
899
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -821,7 +903,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
821
903
|
raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
|
822
904
|
self.load_markets()
|
823
905
|
market = self.market(symbol)
|
824
|
-
request = {
|
906
|
+
request: dict = {
|
825
907
|
'market': market['id'],
|
826
908
|
'orderId': id,
|
827
909
|
}
|
@@ -848,19 +930,21 @@ class p2b(Exchange, ImplicitAPI):
|
|
848
930
|
# }
|
849
931
|
# }
|
850
932
|
#
|
851
|
-
result = self.
|
933
|
+
result = self.safe_dict(response, 'result')
|
852
934
|
return self.parse_order(result)
|
853
935
|
|
854
936
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
855
937
|
"""
|
856
938
|
fetch all unfilled currently open orders
|
857
|
-
|
939
|
+
|
940
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#open-orders
|
941
|
+
|
858
942
|
:param str symbol: unified market symbol of the market orders were made in
|
859
943
|
:param int [since]: the earliest time in ms to fetch orders for
|
860
944
|
:param int [limit]: the maximum number of order structures to retrieve
|
861
945
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
862
|
-
|
863
|
-
|
946
|
+
|
947
|
+
EXCHANGE SPECIFIC PARAMETERS
|
864
948
|
:param int [params.offset]: 0-10000, default=0
|
865
949
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
866
950
|
"""
|
@@ -868,7 +952,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
868
952
|
raise ArgumentsRequired(self.id + ' fetchOpenOrders() requires the symbol argument')
|
869
953
|
self.load_markets()
|
870
954
|
market = self.market(symbol)
|
871
|
-
request = {
|
955
|
+
request: dict = {
|
872
956
|
'market': market['id'],
|
873
957
|
}
|
874
958
|
if limit is not None:
|
@@ -899,26 +983,28 @@ class p2b(Exchange, ImplicitAPI):
|
|
899
983
|
# ]
|
900
984
|
# }
|
901
985
|
#
|
902
|
-
result = self.
|
986
|
+
result = self.safe_list(response, 'result', [])
|
903
987
|
return self.parse_orders(result, market, since, limit)
|
904
988
|
|
905
989
|
def fetch_order_trades(self, id: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
906
990
|
"""
|
907
991
|
fetch all the trades made from a single order
|
908
|
-
|
992
|
+
|
993
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#deals-by-order-id
|
994
|
+
|
909
995
|
:param str id: order id
|
910
996
|
:param str symbol: unified market symbol
|
911
997
|
:param int [since]: the earliest time in ms to fetch trades for
|
912
998
|
:param int [limit]: 1-100, default=50
|
913
999
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
914
|
-
|
915
|
-
|
1000
|
+
|
1001
|
+
EXCHANGE SPECIFIC PARAMETERS
|
916
1002
|
:param int [params.offset]: 0-10000, default=0
|
917
1003
|
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
918
1004
|
"""
|
919
1005
|
self.load_markets()
|
920
1006
|
market = self.safe_market(symbol)
|
921
|
-
request = {
|
1007
|
+
request: dict = {
|
922
1008
|
'orderId': id,
|
923
1009
|
}
|
924
1010
|
if limit is not None:
|
@@ -948,20 +1034,22 @@ class p2b(Exchange, ImplicitAPI):
|
|
948
1034
|
# }
|
949
1035
|
#
|
950
1036
|
result = self.safe_value(response, 'result', {})
|
951
|
-
records = self.
|
1037
|
+
records = self.safe_list(result, 'records', [])
|
952
1038
|
return self.parse_trades(records, market, since, limit)
|
953
1039
|
|
954
1040
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
955
1041
|
"""
|
956
1042
|
fetch all trades made by the user, only the transaction records in the past 3 month can be queried, the time between since and params["until"] cannot be longer than 24 hours
|
957
|
-
|
1043
|
+
|
1044
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#deals-history-by-market
|
1045
|
+
|
958
1046
|
:param str symbol: unified market symbol of the market orders were made in
|
959
1047
|
:param int [since]: the earliest time in ms to fetch orders for, default = params["until"] - 86400000
|
960
1048
|
:param int [limit]: 1-100, default=50
|
961
1049
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
962
1050
|
:param int [params.until]: the latest time in ms to fetch orders for, default = current timestamp or since + 86400000
|
963
|
-
|
964
|
-
|
1051
|
+
|
1052
|
+
EXCHANGE SPECIFIC PARAMETERS
|
965
1053
|
:param int [params.offset]: 0-10000, default=0
|
966
1054
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
|
967
1055
|
"""
|
@@ -980,7 +1068,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
980
1068
|
if (until - since) > 86400000:
|
981
1069
|
raise BadRequest(self.id + ' fetchMyTrades() the time between since and params["until"] cannot be greater than 24 hours')
|
982
1070
|
market = self.market(symbol)
|
983
|
-
request = {
|
1071
|
+
request: dict = {
|
984
1072
|
'market': market['id'],
|
985
1073
|
'startTime': self.parse_to_int(since / 1000),
|
986
1074
|
'endTime': self.parse_to_int(until / 1000),
|
@@ -1015,20 +1103,22 @@ class p2b(Exchange, ImplicitAPI):
|
|
1015
1103
|
# }
|
1016
1104
|
#
|
1017
1105
|
result = self.safe_value(response, 'result', {})
|
1018
|
-
deals = self.
|
1106
|
+
deals = self.safe_list(result, 'deals', [])
|
1019
1107
|
return self.parse_trades(deals, market, since, limit)
|
1020
1108
|
|
1021
1109
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
1022
1110
|
"""
|
1023
1111
|
fetches information on multiple closed orders made by the user, the time between since and params["untnil"] cannot be longer than 24 hours
|
1024
|
-
|
1112
|
+
|
1113
|
+
https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md#orders-history-by-market
|
1114
|
+
|
1025
1115
|
:param str symbol: unified market symbol of the market orders were made in
|
1026
1116
|
:param int [since]: the earliest time in ms to fetch orders for, default = params["until"] - 86400000
|
1027
1117
|
:param int [limit]: 1-100, default=50
|
1028
1118
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1029
1119
|
:param int [params.until]: the latest time in ms to fetch orders for, default = current timestamp or since + 86400000
|
1030
|
-
|
1031
|
-
|
1120
|
+
|
1121
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1032
1122
|
:param int [params.offset]: 0-10000, default=0
|
1033
1123
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
1034
1124
|
"""
|
@@ -1047,7 +1137,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
1047
1137
|
since = until - 86400000
|
1048
1138
|
if (until - since) > 86400000:
|
1049
1139
|
raise BadRequest(self.id + ' fetchClosedOrders() the time between since and params["until"] cannot be greater than 24 hours')
|
1050
|
-
request = {
|
1140
|
+
request: dict = {
|
1051
1141
|
'startTime': self.parse_to_int(since / 1000),
|
1052
1142
|
'endTime': self.parse_to_int(until / 1000),
|
1053
1143
|
}
|
@@ -1092,7 +1182,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
1092
1182
|
orders = self.array_concat(orders, parsedOrders)
|
1093
1183
|
return orders
|
1094
1184
|
|
1095
|
-
def parse_order(self, order, market: Market = None) -> Order:
|
1185
|
+
def parse_order(self, order: dict, market: Market = None) -> Order:
|
1096
1186
|
#
|
1097
1187
|
# cancelOrder, fetchOpenOrders, createOrder
|
1098
1188
|
#
|
@@ -1146,7 +1236,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
1146
1236
|
'postOnly': None,
|
1147
1237
|
'side': self.safe_string(order, 'side'),
|
1148
1238
|
'price': self.safe_string(order, 'price'),
|
1149
|
-
'
|
1239
|
+
'triggerPrice': None,
|
1150
1240
|
'amount': self.safe_string(order, 'amount'),
|
1151
1241
|
'cost': None,
|
1152
1242
|
'average': None,
|
@@ -1179,7 +1269,7 @@ class p2b(Exchange, ImplicitAPI):
|
|
1179
1269
|
body = self.json(params)
|
1180
1270
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
1181
1271
|
|
1182
|
-
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
1272
|
+
def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
|
1183
1273
|
if response is None:
|
1184
1274
|
return None
|
1185
1275
|
if code == 400:
|