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/kuna.py
CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.kuna import ImplicitAPI
|
8
8
|
import hashlib
|
9
9
|
import json
|
10
|
-
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
10
|
+
from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
13
13
|
from ccxt.base.errors import ArgumentsRequired
|
@@ -58,6 +58,8 @@ class kuna(Exchange, ImplicitAPI):
|
|
58
58
|
'fetchCurrencies': True,
|
59
59
|
'fetchDeposit': True,
|
60
60
|
'fetchDepositAddress': True,
|
61
|
+
'fetchDepositAddresses': False,
|
62
|
+
'fetchDepositAddressesByNetwork': False,
|
61
63
|
'fetchDeposits': True,
|
62
64
|
'fetchDepositsWithdrawals': False,
|
63
65
|
'fetchFundingHistory': False,
|
@@ -76,7 +78,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
76
78
|
'fetchMarkets': True,
|
77
79
|
'fetchMarkOHLCV': False,
|
78
80
|
'fetchMyTrades': True,
|
79
|
-
'fetchOHLCV':
|
81
|
+
'fetchOHLCV': False,
|
80
82
|
'fetchOpenInterest': False,
|
81
83
|
'fetchOpenInterestHistory': False,
|
82
84
|
'fetchOpenOrders': True,
|
@@ -361,6 +363,65 @@ class kuna(Exchange, ImplicitAPI):
|
|
361
363
|
],
|
362
364
|
},
|
363
365
|
},
|
366
|
+
'features': {
|
367
|
+
'spot': {
|
368
|
+
'sandbox': False,
|
369
|
+
'createOrder': {
|
370
|
+
'marginMode': False,
|
371
|
+
'triggerPrice': True,
|
372
|
+
'triggerPriceType': None,
|
373
|
+
'triggerDirection': False,
|
374
|
+
'stopLossPrice': False, # todo
|
375
|
+
'takeProfitPrice': False, # todo
|
376
|
+
'attachedStopLossTakeProfit': None,
|
377
|
+
'timeInForce': {
|
378
|
+
'IOC': False,
|
379
|
+
'FOK': False,
|
380
|
+
'PO': False,
|
381
|
+
'GTD': False,
|
382
|
+
},
|
383
|
+
'hedged': False,
|
384
|
+
'selfTradePrevention': False,
|
385
|
+
'trailing': False,
|
386
|
+
'leverage': False,
|
387
|
+
'marketBuyByCost': True,
|
388
|
+
'marketBuyRequiresPrice': False,
|
389
|
+
'iceberg': False,
|
390
|
+
},
|
391
|
+
'createOrders': None,
|
392
|
+
'fetchMyTrades': None, # todo implement
|
393
|
+
'fetchOrder': {
|
394
|
+
'marginMode': False,
|
395
|
+
'trigger': False,
|
396
|
+
'trailing': False,
|
397
|
+
},
|
398
|
+
'fetchOpenOrders': {
|
399
|
+
'marginMode': False,
|
400
|
+
'limit': 100,
|
401
|
+
'trigger': False,
|
402
|
+
'trailing': False,
|
403
|
+
},
|
404
|
+
'fetchOrders': None,
|
405
|
+
'fetchClosedOrders': {
|
406
|
+
'marginMode': False,
|
407
|
+
'limit': 100,
|
408
|
+
'daysBack': 100000, # todo
|
409
|
+
'daysBackCanceled': 1,
|
410
|
+
'untilDays': 14,
|
411
|
+
'trigger': False,
|
412
|
+
'trailing': False,
|
413
|
+
},
|
414
|
+
'fetchOHLCV': None,
|
415
|
+
},
|
416
|
+
'swap': {
|
417
|
+
'linear': None,
|
418
|
+
'inverse': None,
|
419
|
+
},
|
420
|
+
'future': {
|
421
|
+
'linear': None,
|
422
|
+
'inverse': None,
|
423
|
+
},
|
424
|
+
},
|
364
425
|
'fees': {
|
365
426
|
'trading': {
|
366
427
|
'tierBased': False,
|
@@ -409,7 +470,9 @@ class kuna(Exchange, ImplicitAPI):
|
|
409
470
|
def fetch_time(self, params={}):
|
410
471
|
"""
|
411
472
|
fetches the current integer timestamp in milliseconds from the exchange server
|
412
|
-
|
473
|
+
|
474
|
+
https://docs.kuna.io/docs/get-time-on-the-server
|
475
|
+
|
413
476
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
414
477
|
:returns int: the current integer timestamp in milliseconds from the exchange server
|
415
478
|
"""
|
@@ -425,10 +488,12 @@ class kuna(Exchange, ImplicitAPI):
|
|
425
488
|
data = self.safe_value(response, 'data', {})
|
426
489
|
return self.safe_integer(data, 'timestamp_miliseconds')
|
427
490
|
|
428
|
-
def fetch_currencies(self, params={}):
|
491
|
+
def fetch_currencies(self, params={}) -> Currencies:
|
429
492
|
"""
|
430
493
|
fetches all available currencies on an exchange
|
431
|
-
|
494
|
+
|
495
|
+
https://docs.kuna.io/docs/get-information-about-available-currencies
|
496
|
+
|
432
497
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
433
498
|
:returns dict: an associative dictionary of currencies
|
434
499
|
"""
|
@@ -460,15 +525,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
460
525
|
data = self.safe_value(response, 'data', [])
|
461
526
|
return self.parse_currencies(data)
|
462
527
|
|
463
|
-
def
|
464
|
-
currencies = self.to_array(currencies)
|
465
|
-
result = {}
|
466
|
-
for i in range(0, len(currencies)):
|
467
|
-
currency = self.parse_currency(currencies[i])
|
468
|
-
result[currency['code']] = currency
|
469
|
-
return result
|
470
|
-
|
471
|
-
def parse_currency(self, currency):
|
528
|
+
def parse_currency(self, currency: dict) -> Currency:
|
472
529
|
#
|
473
530
|
# {
|
474
531
|
# "code": "BTC",
|
@@ -492,7 +549,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
492
549
|
currencyId = self.safe_string(currency, 'code')
|
493
550
|
precision = self.safe_string(currency, 'precision')
|
494
551
|
tradePrecision = self.safe_string(currency, 'tradePrecision')
|
495
|
-
return {
|
552
|
+
return self.safe_currency_structure({
|
496
553
|
'info': currency,
|
497
554
|
'id': currencyId,
|
498
555
|
'code': self.safe_currency_code(currencyId),
|
@@ -503,7 +560,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
503
560
|
'deposit': None,
|
504
561
|
'withdraw': None,
|
505
562
|
'fee': None,
|
506
|
-
'precision': Precise.string_min(precision, tradePrecision),
|
563
|
+
'precision': self.parse_number(Precise.string_min(precision, tradePrecision)),
|
507
564
|
'limits': {
|
508
565
|
'amount': {
|
509
566
|
'min': None,
|
@@ -515,12 +572,14 @@ class kuna(Exchange, ImplicitAPI):
|
|
515
572
|
},
|
516
573
|
},
|
517
574
|
'networks': {},
|
518
|
-
}
|
575
|
+
})
|
519
576
|
|
520
|
-
def fetch_markets(self, params={}):
|
577
|
+
def fetch_markets(self, params={}) -> List[Market]:
|
521
578
|
"""
|
522
579
|
retrieves data on all markets for kuna
|
523
|
-
|
580
|
+
|
581
|
+
https://docs.kuna.io/docs/get-all-traded-markets
|
582
|
+
|
524
583
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
525
584
|
:returns dict[]: an array of objects representing market data
|
526
585
|
"""
|
@@ -610,7 +669,9 @@ class kuna(Exchange, ImplicitAPI):
|
|
610
669
|
def fetch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
611
670
|
"""
|
612
671
|
fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
613
|
-
|
672
|
+
|
673
|
+
https://docs.kuna.io/docs/get-public-orders-book
|
674
|
+
|
614
675
|
:param str symbol: unified symbol of the market to fetch the order book for
|
615
676
|
:param int [limit]: 5, 10, 20, 50, 100, 500, or 1000(default)
|
616
677
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -618,7 +679,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
618
679
|
"""
|
619
680
|
self.load_markets()
|
620
681
|
market = self.market(symbol)
|
621
|
-
request = {
|
682
|
+
request: dict = {
|
622
683
|
'pairs': market['id'],
|
623
684
|
}
|
624
685
|
if limit is not None:
|
@@ -650,10 +711,10 @@ class kuna(Exchange, ImplicitAPI):
|
|
650
711
|
# }
|
651
712
|
# }
|
652
713
|
#
|
653
|
-
data = self.
|
714
|
+
data = self.safe_dict(response, 'data', {})
|
654
715
|
return self.parse_order_book(data, market['symbol'], None, 'bids', 'asks', 0, 1)
|
655
716
|
|
656
|
-
def parse_ticker(self, ticker, market: Market = None) -> Ticker:
|
717
|
+
def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
|
657
718
|
#
|
658
719
|
# {
|
659
720
|
# "pair": "BTC_USDT", # Traded pair
|
@@ -694,7 +755,9 @@ class kuna(Exchange, ImplicitAPI):
|
|
694
755
|
def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
|
695
756
|
"""
|
696
757
|
fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market. The average is not returned in the response, but the median can be accessed via response['info']['price']
|
697
|
-
|
758
|
+
|
759
|
+
https://docs.kuna.io/docs/get-market-info-by-tickers
|
760
|
+
|
698
761
|
:param str[] [symbols]: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
699
762
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
700
763
|
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -704,7 +767,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
704
767
|
raise ArgumentsRequired(self.id + ' fetchTickers() requires a symbols argument')
|
705
768
|
symbols = self.market_symbols(symbols)
|
706
769
|
marketIds = self.market_ids(symbols)
|
707
|
-
request = {
|
770
|
+
request: dict = {
|
708
771
|
'pairs': ','.join(marketIds),
|
709
772
|
}
|
710
773
|
response = self.v4PublicGetMarketsPublicTickersPairsPairs(self.extend(request, params))
|
@@ -728,20 +791,22 @@ class kuna(Exchange, ImplicitAPI):
|
|
728
791
|
# ]
|
729
792
|
# }
|
730
793
|
#
|
731
|
-
data = self.
|
794
|
+
data = self.safe_list(response, 'data', [])
|
732
795
|
return self.parse_tickers(data, symbols, params)
|
733
796
|
|
734
797
|
def fetch_ticker(self, symbol: str, params={}) -> Ticker:
|
735
798
|
"""
|
736
799
|
fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
737
|
-
|
800
|
+
|
801
|
+
https://docs.kuna.io/docs/get-market-info-by-tickers
|
802
|
+
|
738
803
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
739
804
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
740
805
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
741
806
|
"""
|
742
807
|
self.load_markets()
|
743
808
|
market = self.market(symbol)
|
744
|
-
request = {
|
809
|
+
request: dict = {
|
745
810
|
'pairs': market['id'],
|
746
811
|
}
|
747
812
|
response = self.v4PublicGetMarketsPublicTickersPairsPairs(self.extend(request, params))
|
@@ -766,12 +831,12 @@ class kuna(Exchange, ImplicitAPI):
|
|
766
831
|
# }
|
767
832
|
#
|
768
833
|
data = self.safe_value(response, 'data', [])
|
769
|
-
ticker = self.
|
834
|
+
ticker = self.safe_dict(data, 0)
|
770
835
|
return self.parse_ticker(ticker, market)
|
771
836
|
|
772
837
|
def fetch_l3_order_book(self, symbol: str, limit: Int = None, params={}):
|
773
838
|
"""
|
774
|
-
|
839
|
+
TODO: double check
|
775
840
|
fetches level 3 information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
776
841
|
:param str symbol: unified market symbol
|
777
842
|
:param int [limit]: max number of orders to return, default is None
|
@@ -783,7 +848,9 @@ class kuna(Exchange, ImplicitAPI):
|
|
783
848
|
def fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
784
849
|
"""
|
785
850
|
get the list of most recent trades for a particular symbol
|
786
|
-
|
851
|
+
|
852
|
+
https://docs.kuna.io/docs/get-public-trades-book
|
853
|
+
|
787
854
|
:param str symbol: unified symbol of the market to fetch trades for
|
788
855
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
789
856
|
:param int [limit]: between 1 and 100, 25 by default
|
@@ -792,7 +859,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
792
859
|
"""
|
793
860
|
self.load_markets()
|
794
861
|
market = self.market(symbol)
|
795
|
-
request = {
|
862
|
+
request: dict = {
|
796
863
|
'pairs': market['id'],
|
797
864
|
}
|
798
865
|
if limit is not None:
|
@@ -817,7 +884,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
817
884
|
data = self.safe_list(response, 'data', [])
|
818
885
|
return self.parse_trades(data, market, since, limit)
|
819
886
|
|
820
|
-
def parse_trade(self, trade, market: Market = None) -> Trade:
|
887
|
+
def parse_trade(self, trade: dict, market: Market = None) -> Trade:
|
821
888
|
#
|
822
889
|
# fetchTrades(public)
|
823
890
|
#
|
@@ -870,7 +937,6 @@ class kuna(Exchange, ImplicitAPI):
|
|
870
937
|
'fee': {
|
871
938
|
'cost': self.safe_string(trade, 'fee'),
|
872
939
|
'currency': self.safe_currency_code(self.safe_string(trade, 'feeCurrency')),
|
873
|
-
'rate': None,
|
874
940
|
},
|
875
941
|
}, market)
|
876
942
|
|
@@ -885,7 +951,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
885
951
|
# ...
|
886
952
|
# ]
|
887
953
|
#
|
888
|
-
result = {'info': response}
|
954
|
+
result: dict = {'info': response}
|
889
955
|
for i in range(0, len(response)):
|
890
956
|
balance = response[i]
|
891
957
|
currencyId = self.safe_string(balance, 'currency')
|
@@ -919,16 +985,18 @@ class kuna(Exchange, ImplicitAPI):
|
|
919
985
|
def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
|
920
986
|
"""
|
921
987
|
create a trade order
|
922
|
-
|
988
|
+
|
989
|
+
https://docs.kuna.io/docs/create-a-new-order-private
|
990
|
+
|
923
991
|
:param str symbol: unified symbol of the market to create an order in
|
924
992
|
:param str type: 'market' or 'limit'
|
925
993
|
:param str side: 'buy' or 'sell'
|
926
994
|
:param float amount: how much of currency you want to trade in units of base currency
|
927
|
-
:param float [price]: the price at which the order is to be
|
995
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
928
996
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
929
997
|
:param float [params.triggerPrice]: the price at which a trigger order is triggered at
|
930
|
-
|
931
|
-
|
998
|
+
|
999
|
+
EXCHANGE SPECIFIC PARAMETERS
|
932
1000
|
:param str [params.id]: id must be a UUID format, if you do not specify id, it will be generated automatically.
|
933
1001
|
:param float [params.quoteQuantity]: the max quantity of the quote asset to use for selling/buying
|
934
1002
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -938,7 +1006,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
938
1006
|
triggerPrice = self.safe_string_2(params, 'triggerPrice', 'stopPrice')
|
939
1007
|
params = self.omit(params, ['triggerPrice', 'stopPrice'])
|
940
1008
|
capitalizedType = self.capitalize(type)
|
941
|
-
request = {
|
1009
|
+
request: dict = {
|
942
1010
|
'pair': market['id'],
|
943
1011
|
'orderSide': 'Bid' if (side == 'buy') else 'Ask',
|
944
1012
|
'quantity': self.number_to_string(amount),
|
@@ -968,7 +1036,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
968
1036
|
# }
|
969
1037
|
# }
|
970
1038
|
#
|
971
|
-
data = self.
|
1039
|
+
data = self.safe_dict(response, 'data', {})
|
972
1040
|
return self.parse_order(data, market)
|
973
1041
|
|
974
1042
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
@@ -980,7 +1048,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
980
1048
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
981
1049
|
"""
|
982
1050
|
self.load_markets()
|
983
|
-
request = {
|
1051
|
+
request: dict = {
|
984
1052
|
'orderId': id,
|
985
1053
|
}
|
986
1054
|
response = self.v4PrivatePostOrderPrivateCancel(self.extend(request, params))
|
@@ -1008,7 +1076,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1008
1076
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1009
1077
|
"""
|
1010
1078
|
self.load_markets()
|
1011
|
-
request = {
|
1079
|
+
request: dict = {
|
1012
1080
|
'orderIds': ids,
|
1013
1081
|
}
|
1014
1082
|
response = self.v4PrivatePostOrderPrivateCancelMulti(self.extend(request, params))
|
@@ -1023,11 +1091,11 @@ class kuna(Exchange, ImplicitAPI):
|
|
1023
1091
|
# ]
|
1024
1092
|
# }
|
1025
1093
|
#
|
1026
|
-
data = self.
|
1094
|
+
data = self.safe_list(response, 'data', [])
|
1027
1095
|
return self.parse_orders(data)
|
1028
1096
|
|
1029
|
-
def parse_order_status(self, status):
|
1030
|
-
statuses = {
|
1097
|
+
def parse_order_status(self, status: Str):
|
1098
|
+
statuses: dict = {
|
1031
1099
|
'Canceled': 'canceled',
|
1032
1100
|
'Closed': 'filled',
|
1033
1101
|
'Pending': 'open',
|
@@ -1038,7 +1106,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1038
1106
|
}
|
1039
1107
|
return self.safe_string(statuses, status, status)
|
1040
1108
|
|
1041
|
-
def parse_order(self, order, market: Market = None) -> Order:
|
1109
|
+
def parse_order(self, order: dict, market: Market = None) -> Order:
|
1042
1110
|
#
|
1043
1111
|
# createOrder, fetchOrder, fetchOpenOrders, fetchOrdersByStatus
|
1044
1112
|
#
|
@@ -1082,7 +1150,6 @@ class kuna(Exchange, ImplicitAPI):
|
|
1082
1150
|
#
|
1083
1151
|
marketId = self.safe_string(order, 'pair')
|
1084
1152
|
datetime = self.safe_string(order, 'createdAt')
|
1085
|
-
triggerPrice = self.safe_string(order, 'stopPrice')
|
1086
1153
|
side = self.safe_string(order, 'side')
|
1087
1154
|
if side == 'Bid':
|
1088
1155
|
side = 'buy'
|
@@ -1103,8 +1170,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1103
1170
|
'postOnly': None,
|
1104
1171
|
'side': side,
|
1105
1172
|
'price': self.safe_string(order, 'price'),
|
1106
|
-
'
|
1107
|
-
'triggerPrice': triggerPrice,
|
1173
|
+
'triggerPrice': self.safe_string(order, 'stopPrice'),
|
1108
1174
|
'amount': self.safe_string(order, 'quantity'),
|
1109
1175
|
'filled': self.safe_string(order, 'executedQuantity'),
|
1110
1176
|
'remaining': None,
|
@@ -1117,16 +1183,19 @@ class kuna(Exchange, ImplicitAPI):
|
|
1117
1183
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
1118
1184
|
"""
|
1119
1185
|
fetches information on an order made by the user
|
1120
|
-
|
1186
|
+
|
1187
|
+
https://docs.kuna.io/docs/get-order-details-by-id
|
1188
|
+
|
1189
|
+
:param str id: order id
|
1121
1190
|
:param str symbol: not used by kuna fetchOrder
|
1122
1191
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1123
|
-
|
1124
|
-
|
1192
|
+
|
1193
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1125
1194
|
:param boolean [params.withTrades]: default is True, specify if the response should include trades associated with the order
|
1126
1195
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1127
1196
|
"""
|
1128
1197
|
self.load_markets()
|
1129
|
-
request = {
|
1198
|
+
request: dict = {
|
1130
1199
|
'id': id,
|
1131
1200
|
'withTrades': True,
|
1132
1201
|
}
|
@@ -1165,20 +1234,22 @@ class kuna(Exchange, ImplicitAPI):
|
|
1165
1234
|
# }
|
1166
1235
|
# }
|
1167
1236
|
#
|
1168
|
-
data = self.
|
1237
|
+
data = self.safe_dict(response, 'data', {})
|
1169
1238
|
return self.parse_order(data)
|
1170
1239
|
|
1171
1240
|
def fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
1172
1241
|
"""
|
1173
1242
|
fetch all unfilled currently open orders
|
1174
|
-
|
1243
|
+
|
1244
|
+
https://docs.kuna.io/docs/get-active-client-orders-private
|
1245
|
+
|
1175
1246
|
:param str symbol: unified market symbol
|
1176
1247
|
:param int [since]: the earliest time in ms to fetch open orders for
|
1177
1248
|
:param int [limit]: 1-100, the maximum number of open orders structures to retrieve
|
1178
1249
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1179
1250
|
:param int [params.until]: the latest timestamp(ms) to fetch orders for
|
1180
|
-
|
1181
|
-
|
1251
|
+
|
1252
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1182
1253
|
:param str [params.sort]: asc(oldest-on-top) or desc(newest-on-top)
|
1183
1254
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
1184
1255
|
"""
|
@@ -1186,7 +1257,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1186
1257
|
until = self.safe_integer(params, 'until')
|
1187
1258
|
params = self.omit(params, ['until'])
|
1188
1259
|
market = None
|
1189
|
-
request = {
|
1260
|
+
request: dict = {
|
1190
1261
|
}
|
1191
1262
|
if symbol is not None:
|
1192
1263
|
market = self.market(symbol)
|
@@ -1219,20 +1290,22 @@ class kuna(Exchange, ImplicitAPI):
|
|
1219
1290
|
# ]
|
1220
1291
|
# }
|
1221
1292
|
#
|
1222
|
-
data = self.
|
1293
|
+
data = self.safe_list(response, 'data', [])
|
1223
1294
|
return self.parse_orders(data, market, since, limit)
|
1224
1295
|
|
1225
1296
|
def fetch_closed_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
1226
1297
|
"""
|
1227
1298
|
fetches information on multiple closed orders made by the user
|
1228
|
-
|
1299
|
+
|
1300
|
+
https://docs.kuna.io/docs/get-private-orders-history
|
1301
|
+
|
1229
1302
|
:param str symbol: unified market symbol of the market orders were made in
|
1230
1303
|
:param int [since]: the earliest time in ms to fetch orders for
|
1231
1304
|
:param int [limit]: the maximum number of order structures to retrieve
|
1232
1305
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1233
1306
|
:param int [params.until]: the latest time in ms to fetch orders for
|
1234
|
-
|
1235
|
-
|
1307
|
+
|
1308
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1236
1309
|
:param str [params.sort]: asc(oldest-on-top) or desc(newest-on-top)
|
1237
1310
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
1238
1311
|
"""
|
@@ -1241,15 +1314,17 @@ class kuna(Exchange, ImplicitAPI):
|
|
1241
1314
|
def fetch_orders_by_status(self, status, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
1242
1315
|
"""
|
1243
1316
|
fetch a list of orders
|
1244
|
-
|
1317
|
+
|
1318
|
+
https://docs.kuna.io/docs/get-private-orders-history
|
1319
|
+
|
1245
1320
|
:param str status: canceled, closed, expired, open, pending, rejected, or waitStop
|
1246
1321
|
:param str symbol: unified market symbol of the market orders were made in
|
1247
1322
|
:param int [since]: the earliest time in ms to fetch orders for
|
1248
1323
|
:param int [limit]: 1-100, the maximum number of open orders structures to retrieve
|
1249
1324
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1250
1325
|
:param int [params.until]: the latest timestamp(ms) to fetch orders for
|
1251
|
-
|
1252
|
-
|
1326
|
+
|
1327
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1253
1328
|
:param str [params.sort]: asc(oldest-on-top) or desc(newest-on-top)
|
1254
1329
|
:returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
1255
1330
|
"""
|
@@ -1259,7 +1334,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1259
1334
|
until = self.safe_integer(params, 'until')
|
1260
1335
|
params = self.omit(params, ['until'])
|
1261
1336
|
market = None
|
1262
|
-
request = {
|
1337
|
+
request: dict = {
|
1263
1338
|
'status': self.capitalize(status),
|
1264
1339
|
}
|
1265
1340
|
if symbol is not None:
|
@@ -1294,26 +1369,28 @@ class kuna(Exchange, ImplicitAPI):
|
|
1294
1369
|
# ]
|
1295
1370
|
# }
|
1296
1371
|
#
|
1297
|
-
data = self.
|
1372
|
+
data = self.safe_list(response, 'data', [])
|
1298
1373
|
return self.parse_orders(data, market, since, limit)
|
1299
1374
|
|
1300
1375
|
def fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
1301
1376
|
"""
|
1302
1377
|
fetch all trades made by the user
|
1303
|
-
|
1378
|
+
|
1379
|
+
https://docs.kuna.io/docs/get-private-trades-history
|
1380
|
+
|
1304
1381
|
:param str symbol: unified market symbol
|
1305
1382
|
:param int [since]: not used by kuna fetchMyTrades
|
1306
1383
|
:param int [limit]: not used by kuna fetchMyTrades
|
1307
1384
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1308
|
-
|
1309
|
-
|
1385
|
+
|
1386
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1310
1387
|
:param str [params.orderId]: UUID of an order, to receive trades for self order only
|
1311
1388
|
:param str [params.sort]: asc(oldest-on-top) or desc(newest-on-top)
|
1312
1389
|
:returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
1313
1390
|
"""
|
1314
1391
|
self.load_markets()
|
1315
1392
|
market = None
|
1316
|
-
request = {}
|
1393
|
+
request: dict = {}
|
1317
1394
|
if symbol is not None:
|
1318
1395
|
market = self.market(symbol)
|
1319
1396
|
request['pair'] = market['id']
|
@@ -1337,21 +1414,23 @@ class kuna(Exchange, ImplicitAPI):
|
|
1337
1414
|
# ]
|
1338
1415
|
# }
|
1339
1416
|
#
|
1340
|
-
data = self.
|
1417
|
+
data = self.safe_list(response, 'data')
|
1341
1418
|
return self.parse_trades(data, market, since, limit)
|
1342
1419
|
|
1343
|
-
def withdraw(self, code: str, amount: float, address, tag=None, params={}):
|
1420
|
+
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}) -> Transaction:
|
1344
1421
|
"""
|
1345
1422
|
make a withdrawal
|
1346
|
-
|
1423
|
+
|
1424
|
+
https://docs.kuna.io/docs/create-a-withdraw
|
1425
|
+
|
1347
1426
|
:param str code: unified currency code
|
1348
1427
|
:param float amount: the amount to withdraw
|
1349
1428
|
:param str address: the address to withdraw to
|
1350
1429
|
:param str tag:
|
1351
1430
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1352
1431
|
:param str [params.chain]: the chain to withdraw to
|
1353
|
-
|
1354
|
-
|
1432
|
+
|
1433
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1355
1434
|
:param str [params.id]: id must be a uuid format, if you do not specify id, it will be generated automatically
|
1356
1435
|
:param boolean [params.withdrawAll]: self field says that the amount should also include a fee
|
1357
1436
|
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
|
@@ -1367,7 +1446,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1367
1446
|
else:
|
1368
1447
|
chain = currency['id'].upper()
|
1369
1448
|
networkId = self.network_code_to_id(chain)
|
1370
|
-
request = {
|
1449
|
+
request: dict = {
|
1371
1450
|
'currency': networkId,
|
1372
1451
|
'amount': amount,
|
1373
1452
|
'address': address,
|
@@ -1384,20 +1463,22 @@ class kuna(Exchange, ImplicitAPI):
|
|
1384
1463
|
# }
|
1385
1464
|
# }
|
1386
1465
|
#
|
1387
|
-
data = self.
|
1466
|
+
data = self.safe_dict(response, 'data', {})
|
1388
1467
|
return self.parse_transaction(data, currency)
|
1389
1468
|
|
1390
1469
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1391
1470
|
"""
|
1392
1471
|
fetch all withdrawals made to an account
|
1393
|
-
|
1472
|
+
|
1473
|
+
https://docs.kuna.io/docs/get-withdraw-history
|
1474
|
+
|
1394
1475
|
:param str code: unified currency code
|
1395
1476
|
:param int [since]: the earliest time in ms to fetch withdrawals for
|
1396
1477
|
:param int [limit]: the maximum number of withdrawals structures to retrieve
|
1397
1478
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1398
1479
|
:param int [params.until]: the latest time in ms to fetch deposits for
|
1399
|
-
|
1400
|
-
|
1480
|
+
|
1481
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1401
1482
|
:param str [params.status]: Created, Canceled, PartiallyProcessed, Processing, Processed, WaitForConfirmation, Pending, AmlChecking
|
1402
1483
|
:param str [params.sortField]: amount(sorting by time), createdAt(sorting by date)
|
1403
1484
|
:param str [params.sortOrder]: asc(oldest-on-top), or desc(newest-on-top, default)
|
@@ -1411,7 +1492,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1411
1492
|
currency = None
|
1412
1493
|
if code is not None:
|
1413
1494
|
currency = self.currency(code)
|
1414
|
-
request = {}
|
1495
|
+
request: dict = {}
|
1415
1496
|
if code is not None:
|
1416
1497
|
request['currency'] = code
|
1417
1498
|
if since is not None:
|
@@ -1445,20 +1526,22 @@ class kuna(Exchange, ImplicitAPI):
|
|
1445
1526
|
# ]
|
1446
1527
|
# }
|
1447
1528
|
#
|
1448
|
-
data = self.
|
1529
|
+
data = self.safe_list(response, 'data', [])
|
1449
1530
|
return self.parse_transactions(data, currency)
|
1450
1531
|
|
1451
1532
|
def fetch_withdrawal(self, id: str, code: Str = None, params={}):
|
1452
1533
|
"""
|
1453
1534
|
fetch data on a currency withdrawal via the withdrawal id
|
1454
|
-
|
1535
|
+
|
1536
|
+
https://docs.kuna.io/docs/get-withdraw-details-by-id
|
1537
|
+
|
1455
1538
|
:param str id: withdrawal id
|
1456
1539
|
:param str code: not used by kuna.fetchWithdrawal
|
1457
1540
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1458
1541
|
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
|
1459
1542
|
"""
|
1460
1543
|
self.load_markets()
|
1461
|
-
request = {
|
1544
|
+
request: dict = {
|
1462
1545
|
'withdrawId': id,
|
1463
1546
|
}
|
1464
1547
|
response = self.v4PrivateGetWithdrawPrivateDetailsWithdrawId(self.extend(request, params))
|
@@ -1483,20 +1566,22 @@ class kuna(Exchange, ImplicitAPI):
|
|
1483
1566
|
# }
|
1484
1567
|
# }
|
1485
1568
|
#
|
1486
|
-
data = self.
|
1569
|
+
data = self.safe_dict(response, 'data', {})
|
1487
1570
|
return self.parse_transaction(data)
|
1488
1571
|
|
1489
1572
|
def create_deposit_address(self, code: str, params={}):
|
1490
1573
|
"""
|
1491
1574
|
create a currency deposit address
|
1492
|
-
|
1575
|
+
|
1576
|
+
https://docs.kuna.io/docs/generate-a-constant-crypto-address-for-deposit
|
1577
|
+
|
1493
1578
|
:param str code: unified currency code of the currency for the deposit address
|
1494
1579
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1495
1580
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
1496
1581
|
"""
|
1497
1582
|
self.load_markets()
|
1498
1583
|
currency = self.currency(code)
|
1499
|
-
request = {
|
1584
|
+
request: dict = {
|
1500
1585
|
'source': currency['id'],
|
1501
1586
|
}
|
1502
1587
|
response = self.v4PrivatePostDepositPrivateCryptoGenerateAddress(self.extend(request, params))
|
@@ -1509,20 +1594,22 @@ class kuna(Exchange, ImplicitAPI):
|
|
1509
1594
|
# }
|
1510
1595
|
# }
|
1511
1596
|
#
|
1512
|
-
data = self.
|
1597
|
+
data = self.safe_dict(response, 'data', {})
|
1513
1598
|
return self.parse_deposit_address(data, currency)
|
1514
1599
|
|
1515
|
-
def fetch_deposit_address(self, code: str, params={}):
|
1600
|
+
def fetch_deposit_address(self, code: str, params={}) -> DepositAddress:
|
1516
1601
|
"""
|
1517
1602
|
fetch the deposit address for a currency associated with self account
|
1518
|
-
|
1603
|
+
|
1604
|
+
https://docs.kuna.io/docs/find-crypto-address-for-deposit
|
1605
|
+
|
1519
1606
|
:param str code: unified currency code
|
1520
1607
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1521
1608
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
1522
1609
|
"""
|
1523
1610
|
self.load_markets()
|
1524
1611
|
currency = self.currency(code)
|
1525
|
-
request = {
|
1612
|
+
request: dict = {
|
1526
1613
|
'source': currency['id'].upper(),
|
1527
1614
|
}
|
1528
1615
|
response = self.v4PrivateGetDepositPrivateCryptoAddress(self.extend(request, params))
|
@@ -1535,10 +1622,10 @@ class kuna(Exchange, ImplicitAPI):
|
|
1535
1622
|
# }
|
1536
1623
|
# }
|
1537
1624
|
#
|
1538
|
-
data = self.
|
1625
|
+
data = self.safe_dict(response, 'data', {})
|
1539
1626
|
return self.parse_deposit_address(data, currency)
|
1540
1627
|
|
1541
|
-
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
1628
|
+
def parse_deposit_address(self, depositAddress, currency: Currency = None) -> DepositAddress:
|
1542
1629
|
#
|
1543
1630
|
# {
|
1544
1631
|
# "id": "c52b6646-fb91-4760-b147-a4f952e8652c", # ID of the address.
|
@@ -1555,8 +1642,8 @@ class kuna(Exchange, ImplicitAPI):
|
|
1555
1642
|
'tag': None,
|
1556
1643
|
}
|
1557
1644
|
|
1558
|
-
def parse_transaction_status(self, status):
|
1559
|
-
statuses = {
|
1645
|
+
def parse_transaction_status(self, status: Str):
|
1646
|
+
statuses: dict = {
|
1560
1647
|
'Created': 'pending',
|
1561
1648
|
'Canceled': 'canceled',
|
1562
1649
|
'PartiallyProcessed': 'pending',
|
@@ -1571,14 +1658,16 @@ class kuna(Exchange, ImplicitAPI):
|
|
1571
1658
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
1572
1659
|
"""
|
1573
1660
|
fetch all deposits made to an account
|
1574
|
-
|
1661
|
+
|
1662
|
+
https://docs.kuna.io/docs/get-deposit-history
|
1663
|
+
|
1575
1664
|
:param str code: unified currency code
|
1576
1665
|
:param int [since]: the earliest time in ms to fetch deposits for
|
1577
1666
|
:param int [limit]: the maximum number of deposits structures to retrieve
|
1578
1667
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1579
1668
|
:param int [params.until]: the latest time in ms to fetch deposits for
|
1580
|
-
|
1581
|
-
|
1669
|
+
|
1670
|
+
EXCHANGE SPECIFIC PARAMETERS
|
1582
1671
|
:param str [params.status]: Created, Canceled, PartiallyProcessed, Processing, Processed, WaitForConfirmation, Pending, AmlChecking
|
1583
1672
|
:param str [params.sortField]: amount(sorting by time), createdAt(sorting by date)
|
1584
1673
|
:param str [params.sortOrder]: asc(oldest-on-top), or desc(newest-on-top, default)
|
@@ -1592,7 +1681,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1592
1681
|
currency = None
|
1593
1682
|
if code is not None:
|
1594
1683
|
currency = self.currency(code)
|
1595
|
-
request = {}
|
1684
|
+
request: dict = {}
|
1596
1685
|
if code is not None:
|
1597
1686
|
request['currency'] = code
|
1598
1687
|
if since is not None:
|
@@ -1626,13 +1715,15 @@ class kuna(Exchange, ImplicitAPI):
|
|
1626
1715
|
# ]
|
1627
1716
|
# }
|
1628
1717
|
#
|
1629
|
-
data = self.
|
1718
|
+
data = self.safe_list(response, 'data', [])
|
1630
1719
|
return self.parse_transactions(data, currency)
|
1631
1720
|
|
1632
1721
|
def fetch_deposit(self, id: str, code: Str = None, params={}):
|
1633
1722
|
"""
|
1634
1723
|
fetch data on a currency deposit via the deposit id
|
1635
|
-
|
1724
|
+
|
1725
|
+
https://docs.kuna.io/docs/get-deposit-details-by-id
|
1726
|
+
|
1636
1727
|
:param str id: deposit id
|
1637
1728
|
:param str code: filter by currency code
|
1638
1729
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -1642,7 +1733,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1642
1733
|
currency = None
|
1643
1734
|
if code is not None:
|
1644
1735
|
currency = self.currency(code)
|
1645
|
-
request = {
|
1736
|
+
request: dict = {
|
1646
1737
|
'depositId': id,
|
1647
1738
|
}
|
1648
1739
|
response = self.v4PrivateGetDepositPrivateDetailsDepositId(self.extend(request, params))
|
@@ -1667,10 +1758,10 @@ class kuna(Exchange, ImplicitAPI):
|
|
1667
1758
|
# }
|
1668
1759
|
# }
|
1669
1760
|
#
|
1670
|
-
data = self.
|
1761
|
+
data = self.safe_dict(response, 'data', {})
|
1671
1762
|
return self.parse_transaction(data, currency)
|
1672
1763
|
|
1673
|
-
def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
|
1764
|
+
def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
|
1674
1765
|
#
|
1675
1766
|
# {
|
1676
1767
|
# "id": "a201cb3c-5830-57ac-ad2c-f6a588dd55eb", # Unique ID of deposit
|
@@ -1814,7 +1905,7 @@ class kuna(Exchange, ImplicitAPI):
|
|
1814
1905
|
body = json.dumps(body)
|
1815
1906
|
return {'url': url, 'method': method, 'body': body, 'headers': headers}
|
1816
1907
|
|
1817
|
-
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
1908
|
+
def handle_errors(self, code: int, reason: str, url: str, method: str, headers: dict, body: str, response, requestHeaders, requestBody):
|
1818
1909
|
#
|
1819
1910
|
# {
|
1820
1911
|
# "errors": [
|