ccxt 4.2.76__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 +25 -0
- ccxt/abstract/kucoinfutures.py +35 -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 +3513 -1511
- 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 +3105 -881
- 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 +239 -50
- ccxt/async_support/bitget.py +1513 -563
- ccxt/async_support/bithumb.py +201 -67
- 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 +403 -150
- 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 +2326 -1255
- ccxt/async_support/cex.py +1409 -1329
- ccxt/async_support/coinbase.py +1455 -288
- 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 +467 -158
- ccxt/async_support/deribit.py +558 -324
- 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 +1473 -464
- 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 +1634 -269
- 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 +1050 -355
- 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 +1777 -455
- 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 +1155 -295
- 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 +1729 -482
- 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 +3513 -1511
- ccxt/binancecoinm.py +2 -1
- ccxt/binanceus.py +12 -1
- ccxt/binanceusdm.py +3 -1
- ccxt/bingx.py +3105 -881
- 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 +239 -50
- ccxt/bitget.py +1513 -563
- ccxt/bithumb.py +200 -67
- 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 +403 -150
- ccxt/btcalpha.py +161 -55
- ccxt/btcbox.py +250 -34
- ccxt/btcmarkets.py +232 -85
- ccxt/btcturk.py +159 -60
- ccxt/bybit.py +2326 -1255
- ccxt/cex.py +1408 -1329
- ccxt/coinbase.py +1455 -288
- 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 +467 -158
- ccxt/deribit.py +558 -324
- ccxt/digifinex.py +340 -223
- ccxt/ellipx.py +1826 -0
- ccxt/exmo.py +259 -128
- ccxt/gate.py +1473 -464
- 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 +1633 -269
- 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 +1050 -355
- 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 +1777 -455
- 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 +63 -15
- 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 +204 -82
- 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 +967 -661
- 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 +168 -32
- ccxt/pro/exmo.py +253 -21
- 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 +93 -34
- ccxt/pro/poloniex.py +129 -50
- ccxt/pro/poloniexfutures.py +53 -32
- ccxt/pro/probit.py +93 -86
- 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 +486 -70
- 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} +465 -407
- ccxt/test/tests_helpers.py +285 -0
- ccxt/test/tests_init.py +39 -0
- ccxt/test/{test_sync.py → tests_sync.py} +465 -409
- 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 +1155 -295
- 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.76.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.76.dist-info/METADATA +0 -626
- ccxt-4.2.76.dist-info/RECORD +0 -534
- {ccxt-4.2.76.dist-info → ccxt-4.4.48.dist-info}/top_level.txt +0 -0
ccxt/async_support/coinspot.py
CHANGED
@@ -60,8 +60,11 @@ class coinspot(Exchange, ImplicitAPI):
|
|
60
60
|
'fetchOpenInterestHistory': False,
|
61
61
|
'fetchOrderBook': True,
|
62
62
|
'fetchPosition': False,
|
63
|
+
'fetchPositionHistory': False,
|
63
64
|
'fetchPositionMode': False,
|
64
65
|
'fetchPositions': False,
|
66
|
+
'fetchPositionsForSymbol': False,
|
67
|
+
'fetchPositionsHistory': False,
|
65
68
|
'fetchPositionsRisk': False,
|
66
69
|
'fetchPremiumIndexOHLCV': False,
|
67
70
|
'fetchTicker': True,
|
@@ -141,11 +144,58 @@ class coinspot(Exchange, ImplicitAPI):
|
|
141
144
|
'options': {
|
142
145
|
'fetchBalance': 'private_post_my_balances',
|
143
146
|
},
|
147
|
+
'features': {
|
148
|
+
'spot': {
|
149
|
+
'sandbox': False,
|
150
|
+
'createOrder': {
|
151
|
+
'marginMode': False,
|
152
|
+
'triggerPrice': False,
|
153
|
+
'triggerPriceType': None,
|
154
|
+
'triggerDirection': False,
|
155
|
+
'stopLossPrice': False,
|
156
|
+
'takeProfitPrice': False,
|
157
|
+
'attachedStopLossTakeProfit': None,
|
158
|
+
'timeInForce': {
|
159
|
+
'IOC': False,
|
160
|
+
'FOK': False,
|
161
|
+
'PO': False,
|
162
|
+
'GTD': False,
|
163
|
+
},
|
164
|
+
'hedged': False,
|
165
|
+
'trailing': False,
|
166
|
+
'leverage': False,
|
167
|
+
'marketBuyByCost': False,
|
168
|
+
'marketBuyRequiresPrice': False,
|
169
|
+
'selfTradePrevention': False,
|
170
|
+
'iceberg': False,
|
171
|
+
},
|
172
|
+
'createOrders': None,
|
173
|
+
'fetchMyTrades': {
|
174
|
+
'marginMode': False,
|
175
|
+
'limit': None,
|
176
|
+
'daysBack': 100000,
|
177
|
+
'untilDays': 100000, # todo implement
|
178
|
+
},
|
179
|
+
'fetchOrder': None,
|
180
|
+
'fetchOpenOrders': None, # todo implement
|
181
|
+
'fetchOrders': None,
|
182
|
+
'fetchClosedOrders': None, # todo implement
|
183
|
+
'fetchOHLCV': None,
|
184
|
+
},
|
185
|
+
'swap': {
|
186
|
+
'linear': None,
|
187
|
+
'inverse': None,
|
188
|
+
},
|
189
|
+
'future': {
|
190
|
+
'linear': None,
|
191
|
+
'inverse': None,
|
192
|
+
},
|
193
|
+
},
|
144
194
|
'precisionMode': TICK_SIZE,
|
145
195
|
})
|
146
196
|
|
147
197
|
def parse_balance(self, response) -> Balances:
|
148
|
-
result = {'info': response}
|
198
|
+
result: dict = {'info': response}
|
149
199
|
balances = self.safe_value_2(response, 'balance', 'balances')
|
150
200
|
if isinstance(balances, list):
|
151
201
|
for i in range(0, len(balances)):
|
@@ -171,7 +221,9 @@ class coinspot(Exchange, ImplicitAPI):
|
|
171
221
|
async def fetch_balance(self, params={}) -> Balances:
|
172
222
|
"""
|
173
223
|
query for balance and get the amount of funds available for trading or funds locked in orders
|
174
|
-
|
224
|
+
|
225
|
+
https://www.coinspot.com.au/api#listmybalance
|
226
|
+
|
175
227
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
176
228
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
177
229
|
"""
|
@@ -199,7 +251,9 @@ class coinspot(Exchange, ImplicitAPI):
|
|
199
251
|
async def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
200
252
|
"""
|
201
253
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
202
|
-
|
254
|
+
|
255
|
+
https://www.coinspot.com.au/api#listopenorders
|
256
|
+
|
203
257
|
:param str symbol: unified symbol of the market to fetch the order book for
|
204
258
|
:param int [limit]: the maximum amount of order book entries to return
|
205
259
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -207,13 +261,13 @@ class coinspot(Exchange, ImplicitAPI):
|
|
207
261
|
"""
|
208
262
|
await self.load_markets()
|
209
263
|
market = self.market(symbol)
|
210
|
-
request = {
|
264
|
+
request: dict = {
|
211
265
|
'cointype': market['id'],
|
212
266
|
}
|
213
267
|
orderbook = await self.privatePostOrders(self.extend(request, params))
|
214
268
|
return self.parse_order_book(orderbook, market['symbol'], None, 'buyorders', 'sellorders', 'rate', 'amount')
|
215
269
|
|
216
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
270
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
217
271
|
#
|
218
272
|
# {
|
219
273
|
# "btc":{
|
@@ -251,7 +305,9 @@ class coinspot(Exchange, ImplicitAPI):
|
|
251
305
|
async def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
252
306
|
"""
|
253
307
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
254
|
-
|
308
|
+
|
309
|
+
https://www.coinspot.com.au/api#latestprices
|
310
|
+
|
255
311
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
256
312
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
257
313
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -261,7 +317,7 @@ class coinspot(Exchange, ImplicitAPI):
|
|
261
317
|
response = await self.publicGetLatest(params)
|
262
318
|
id = market['id']
|
263
319
|
id = id.lower()
|
264
|
-
prices = self.
|
320
|
+
prices = self.safe_dict(response, 'prices', {})
|
265
321
|
#
|
266
322
|
# {
|
267
323
|
# "status":"ok",
|
@@ -274,13 +330,15 @@ class coinspot(Exchange, ImplicitAPI):
|
|
274
330
|
# }
|
275
331
|
# }
|
276
332
|
#
|
277
|
-
ticker = self.
|
333
|
+
ticker = self.safe_dict(prices, id)
|
278
334
|
return self.parse_ticker(ticker, market)
|
279
335
|
|
280
336
|
async def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
281
337
|
"""
|
282
338
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
283
|
-
|
339
|
+
|
340
|
+
https://www.coinspot.com.au/api#latestprices
|
341
|
+
|
284
342
|
:param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
285
343
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
286
344
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -290,22 +348,22 @@ class coinspot(Exchange, ImplicitAPI):
|
|
290
348
|
#
|
291
349
|
# {
|
292
350
|
# "status": "ok",
|
293
|
-
# "prices":
|
294
|
-
#
|
295
|
-
#
|
296
|
-
#
|
297
|
-
#
|
298
|
-
#
|
299
|
-
#
|
300
|
-
#
|
301
|
-
#
|
302
|
-
#
|
351
|
+
# "prices": {
|
352
|
+
# "btc": {
|
353
|
+
# "bid": "25050",
|
354
|
+
# "ask": "25370",
|
355
|
+
# "last": "25234"
|
356
|
+
# },
|
357
|
+
# "ltc": {
|
358
|
+
# "bid": "79.39192993",
|
359
|
+
# "ask": "87.98",
|
360
|
+
# "last": "87.95"
|
361
|
+
# }
|
303
362
|
# }
|
304
|
-
# }
|
305
363
|
# }
|
306
364
|
#
|
307
|
-
result = {}
|
308
|
-
prices = self.
|
365
|
+
result: dict = {}
|
366
|
+
prices = self.safe_dict(response, 'prices', {})
|
309
367
|
ids = list(prices.keys())
|
310
368
|
for i in range(0, len(ids)):
|
311
369
|
id = ids[i]
|
@@ -319,7 +377,9 @@ class coinspot(Exchange, ImplicitAPI):
|
|
319
377
|
async def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
320
378
|
"""
|
321
379
|
get the list of most recent trades for a particular symbol
|
322
|
-
|
380
|
+
|
381
|
+
https://www.coinspot.com.au/api#orderhistory
|
382
|
+
|
323
383
|
:param str symbol: unified symbol of the market to fetch trades for
|
324
384
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
325
385
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -328,7 +388,7 @@ class coinspot(Exchange, ImplicitAPI):
|
|
328
388
|
"""
|
329
389
|
await self.load_markets()
|
330
390
|
market = self.market(symbol)
|
331
|
-
request = {
|
391
|
+
request: dict = {
|
332
392
|
'cointype': market['id'],
|
333
393
|
}
|
334
394
|
response = await self.privatePostOrdersHistory(self.extend(request, params))
|
@@ -340,13 +400,15 @@ class coinspot(Exchange, ImplicitAPI):
|
|
340
400
|
# ],
|
341
401
|
# }
|
342
402
|
#
|
343
|
-
trades = self.
|
403
|
+
trades = self.safe_list(response, 'orders', [])
|
344
404
|
return self.parse_trades(trades, market, since, limit)
|
345
405
|
|
346
406
|
async def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
347
407
|
"""
|
348
408
|
fetch all trades made by the user
|
349
|
-
|
409
|
+
|
410
|
+
https://www.coinspot.com.au/api#rotransaction
|
411
|
+
|
350
412
|
:param str symbol: unified market symbol
|
351
413
|
:param int [since]: the earliest time in ms to fetch trades for
|
352
414
|
:param int [limit]: the maximum number of trades structures to retrieve
|
@@ -354,7 +416,7 @@ class coinspot(Exchange, ImplicitAPI):
|
|
354
416
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
355
417
|
"""
|
356
418
|
await self.load_markets()
|
357
|
-
request = {}
|
419
|
+
request: dict = {}
|
358
420
|
market = None
|
359
421
|
if symbol is not None:
|
360
422
|
market = self.market(symbol)
|
@@ -362,41 +424,41 @@ class coinspot(Exchange, ImplicitAPI):
|
|
362
424
|
request['startdate'] = self.yyyymmdd(since)
|
363
425
|
response = await self.privatePostRoMyTransactions(self.extend(request, params))
|
364
426
|
# {
|
365
|
-
#
|
366
|
-
#
|
367
|
-
#
|
368
|
-
#
|
369
|
-
#
|
370
|
-
#
|
371
|
-
#
|
372
|
-
#
|
373
|
-
#
|
374
|
-
#
|
375
|
-
#
|
376
|
-
#
|
377
|
-
#
|
378
|
-
#
|
379
|
-
#
|
380
|
-
#
|
381
|
-
#
|
382
|
-
#
|
383
|
-
#
|
384
|
-
#
|
385
|
-
#
|
386
|
-
#
|
387
|
-
#
|
388
|
-
#
|
427
|
+
# "status": "ok",
|
428
|
+
# "buyorders": [
|
429
|
+
# {
|
430
|
+
# "otc": False,
|
431
|
+
# "market": "ALGO/AUD",
|
432
|
+
# "amount": 386.95197925,
|
433
|
+
# "created": "2022-10-20T09:56:44.502Z",
|
434
|
+
# "audfeeExGst": 1.80018002,
|
435
|
+
# "audGst": 0.180018,
|
436
|
+
# "audtotal": 200
|
437
|
+
# },
|
438
|
+
# ],
|
439
|
+
# "sellorders": [
|
440
|
+
# {
|
441
|
+
# "otc": False,
|
442
|
+
# "market": "SOLO/ALGO",
|
443
|
+
# "amount": 154.52345614,
|
444
|
+
# "total": 115.78858204658796,
|
445
|
+
# "created": "2022-04-16T09:36:43.698Z",
|
446
|
+
# "audfeeExGst": 1.08995731,
|
447
|
+
# "audGst": 0.10899573,
|
448
|
+
# "audtotal": 118.7
|
449
|
+
# },
|
450
|
+
# ]
|
389
451
|
# }
|
390
|
-
buyTrades = self.
|
452
|
+
buyTrades = self.safe_list(response, 'buyorders', [])
|
391
453
|
for i in range(0, len(buyTrades)):
|
392
454
|
buyTrades[i]['side'] = 'buy'
|
393
|
-
sellTrades = self.
|
455
|
+
sellTrades = self.safe_list(response, 'sellorders', [])
|
394
456
|
for i in range(0, len(sellTrades)):
|
395
457
|
sellTrades[i]['side'] = 'sell'
|
396
458
|
trades = self.array_concat(buyTrades, sellTrades)
|
397
459
|
return self.parse_trades(trades, market, since, limit)
|
398
460
|
|
399
|
-
def parse_trade(self, trade, market: Market = None) -> Trade:
|
461
|
+
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
400
462
|
#
|
401
463
|
# public fetchTrades
|
402
464
|
#
|
@@ -467,12 +529,14 @@ class coinspot(Exchange, ImplicitAPI):
|
|
467
529
|
async def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
468
530
|
"""
|
469
531
|
create a trade order
|
470
|
-
|
532
|
+
|
533
|
+
https://www.coinspot.com.au/api#placebuyorder
|
534
|
+
|
471
535
|
:param str symbol: unified symbol of the market to create an order in
|
472
536
|
:param str type: must be 'limit'
|
473
537
|
:param str side: 'buy' or 'sell'
|
474
538
|
:param float amount: how much of currency you want to trade in units of base currency
|
475
|
-
:param float [price]: the price at which the order is to be
|
539
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
476
540
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
477
541
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
478
542
|
"""
|
@@ -481,7 +545,7 @@ class coinspot(Exchange, ImplicitAPI):
|
|
481
545
|
if type == 'market':
|
482
546
|
raise ExchangeError(self.id + ' createOrder() allows limit orders only')
|
483
547
|
market = self.market(symbol)
|
484
|
-
request = {
|
548
|
+
request: dict = {
|
485
549
|
'cointype': market['id'],
|
486
550
|
'amount': amount,
|
487
551
|
'rate': price,
|
@@ -491,8 +555,10 @@ class coinspot(Exchange, ImplicitAPI):
|
|
491
555
|
async def cancel_order(self, id: str, symbol: Str = None, params={}):
|
492
556
|
"""
|
493
557
|
cancels an open order
|
494
|
-
|
495
|
-
|
558
|
+
|
559
|
+
https://www.coinspot.com.au/api#cancelbuyorder
|
560
|
+
https://www.coinspot.com.au/api#cancelsellorder
|
561
|
+
|
496
562
|
:param str id: order id
|
497
563
|
:param str symbol: not used by coinspot cancelOrder()
|
498
564
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -502,11 +568,20 @@ class coinspot(Exchange, ImplicitAPI):
|
|
502
568
|
if side != 'buy' and side != 'sell':
|
503
569
|
raise ArgumentsRequired(self.id + ' cancelOrder() requires a side parameter, "buy" or "sell"')
|
504
570
|
params = self.omit(params, 'side')
|
505
|
-
|
506
|
-
request = {
|
571
|
+
request: dict = {
|
507
572
|
'id': id,
|
508
573
|
}
|
509
|
-
|
574
|
+
response = None
|
575
|
+
if side == 'buy':
|
576
|
+
response = await self.privatePostMyBuyCancel(self.extend(request, params))
|
577
|
+
else:
|
578
|
+
response = await self.privatePostMySellCancel(self.extend(request, params))
|
579
|
+
#
|
580
|
+
# status - ok, error
|
581
|
+
#
|
582
|
+
return self.safe_order({
|
583
|
+
'info': response,
|
584
|
+
})
|
510
585
|
|
511
586
|
def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
|
512
587
|
url = self.urls['api'][api] + '/' + path
|