coinex-api 0.0.55__tar.gz → 0.0.100__tar.gz
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.
Potentially problematic release.
This version of coinex-api might be problematic. Click here for more details.
- {coinex_api-0.0.55 → coinex_api-0.0.100}/.gitignore +0 -1
- {coinex_api-0.0.55 → coinex_api-0.0.100}/PKG-INFO +6 -5
- {coinex_api-0.0.55 → coinex_api-0.0.100}/README.md +5 -4
- {coinex_api-0.0.55 → coinex_api-0.0.100}/pyproject.toml +1 -1
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/__init__.py +2 -1
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/__init__.py +2 -1
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/exchange.py +212 -47
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/throttler.py +1 -1
- coinex_api-0.0.100/src/coinex/ccxt/async_support/base/ws/client.py +344 -0
- coinex_api-0.0.100/src/coinex/ccxt/async_support/base/ws/future.py +46 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/coinex.py +85 -20
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/base/decimal_to_precision.py +14 -10
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/base/errors.py +6 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/base/exchange.py +625 -119
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/base/types.py +4 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/coinex.py +85 -20
- coinex_api-0.0.100/src/coinex/ccxt/pro/__init__.py +66 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/pro/coinex.py +20 -18
- coinex_api-0.0.55/src/coinex/ccxt/async_support/base/ws/aiohttp_client.py +0 -147
- coinex_api-0.0.55/src/coinex/ccxt/async_support/base/ws/client.py +0 -214
- coinex_api-0.0.55/src/coinex/ccxt/async_support/base/ws/fast_client.py +0 -97
- coinex_api-0.0.55/src/coinex/ccxt/async_support/base/ws/future.py +0 -69
- coinex_api-0.0.55/src/coinex/ccxt/pro/__init__.py +0 -21
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/abstract/coinex.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/cache.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/functions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/order_book.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/base/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/base/precise.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/README.md +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/ast_utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/common.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/exceptions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammar.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/common.lark +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/lark.lark +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/python.lark +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/unicode.lark +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/indenter.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/lark.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/lexer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/load_grammar.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/reconstruct.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tree.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tree_templates.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/visitors.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/base.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/fields.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/schema.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/types.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/validate.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/_cmsgpack.pyx +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/_packer.pyx +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/_unpacker.pyx +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/buff_converter.h +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/pack.h +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/pack_template.h +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/sysdep.h +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/unpack.h +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/unpack_define.h +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/unpack_template.h +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/model.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/schemas.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/shape.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/core_structures.json +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/model.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/parser_transformer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/schemas.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/shape.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/model.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/parser_transformer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/schemas.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/shape.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/common.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/constants.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/address.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/_version.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/utils.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
- {coinex_api-0.0.55 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: coinex-api
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.100
|
|
4
4
|
Summary: coinex crypto exchange api client
|
|
5
5
|
Project-URL: Homepage, https://github.com/ccxt/ccxt
|
|
6
6
|
Project-URL: Issues, https://github.com/ccxt/ccxt
|
|
@@ -138,6 +138,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
138
138
|
- `fetch_currencies(self, params={})`
|
|
139
139
|
- `fetch_deposit_address(self, code: str, params={})`
|
|
140
140
|
- `fetch_deposit_withdraw_fee(self, code: str, params={})`
|
|
141
|
+
- `fetch_deposit_withdraw_fees(self, codes: Strings = None, params={})`
|
|
141
142
|
- `fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
142
143
|
- `fetch_financial_balance(self, params={})`
|
|
143
144
|
- `fetch_funding_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
@@ -152,7 +153,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
152
153
|
- `fetch_margin_balance(self, params={})`
|
|
153
154
|
- `fetch_markets(self, params={})`
|
|
154
155
|
- `fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
155
|
-
- `fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={})`
|
|
156
|
+
- `fetch_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={})`
|
|
156
157
|
- `fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
157
158
|
- `fetch_order_book(self, symbol: str, limit: Int = 20, params={})`
|
|
158
159
|
- `fetch_order(self, id: str, symbol: Str = None, params={})`
|
|
@@ -175,7 +176,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
175
176
|
- `borrow_isolated_margin(self, symbol: str, code: str, amount: float, params={})`
|
|
176
177
|
- `cancel_all_orders(self, symbol: Str = None, params={})`
|
|
177
178
|
- `cancel_order(self, id: str, symbol: Str = None, params={})`
|
|
178
|
-
- `cancel_orders(self, ids, symbol: Str = None, params={})`
|
|
179
|
+
- `cancel_orders(self, ids: List[str], symbol: Str = None, params={})`
|
|
179
180
|
- `close_position(self, symbol: str, side: OrderSide = None, params={})`
|
|
180
181
|
- `describe(self)`
|
|
181
182
|
- `edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
|
|
@@ -183,10 +184,10 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
183
184
|
- `nonce(self)`
|
|
184
185
|
- `reduce_margin(self, symbol: str, amount: float, params={})`
|
|
185
186
|
- `repay_isolated_margin(self, symbol: str, code: str, amount, params={})`
|
|
186
|
-
- `set_leverage(self, leverage:
|
|
187
|
+
- `set_leverage(self, leverage: int, symbol: Str = None, params={})`
|
|
187
188
|
- `set_margin_mode(self, marginMode: str, symbol: Str = None, params={})`
|
|
188
189
|
- `transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={})`
|
|
189
|
-
- `withdraw(self, code: str, amount: float, address: str, tag=None, params={})`
|
|
190
|
+
- `withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={})`
|
|
190
191
|
|
|
191
192
|
### REST Raw
|
|
192
193
|
|
|
@@ -119,6 +119,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
119
119
|
- `fetch_currencies(self, params={})`
|
|
120
120
|
- `fetch_deposit_address(self, code: str, params={})`
|
|
121
121
|
- `fetch_deposit_withdraw_fee(self, code: str, params={})`
|
|
122
|
+
- `fetch_deposit_withdraw_fees(self, codes: Strings = None, params={})`
|
|
122
123
|
- `fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
123
124
|
- `fetch_financial_balance(self, params={})`
|
|
124
125
|
- `fetch_funding_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
@@ -133,7 +134,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
133
134
|
- `fetch_margin_balance(self, params={})`
|
|
134
135
|
- `fetch_markets(self, params={})`
|
|
135
136
|
- `fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
136
|
-
- `fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={})`
|
|
137
|
+
- `fetch_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={})`
|
|
137
138
|
- `fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
138
139
|
- `fetch_order_book(self, symbol: str, limit: Int = 20, params={})`
|
|
139
140
|
- `fetch_order(self, id: str, symbol: Str = None, params={})`
|
|
@@ -156,7 +157,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
156
157
|
- `borrow_isolated_margin(self, symbol: str, code: str, amount: float, params={})`
|
|
157
158
|
- `cancel_all_orders(self, symbol: Str = None, params={})`
|
|
158
159
|
- `cancel_order(self, id: str, symbol: Str = None, params={})`
|
|
159
|
-
- `cancel_orders(self, ids, symbol: Str = None, params={})`
|
|
160
|
+
- `cancel_orders(self, ids: List[str], symbol: Str = None, params={})`
|
|
160
161
|
- `close_position(self, symbol: str, side: OrderSide = None, params={})`
|
|
161
162
|
- `describe(self)`
|
|
162
163
|
- `edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
|
|
@@ -164,10 +165,10 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
164
165
|
- `nonce(self)`
|
|
165
166
|
- `reduce_margin(self, symbol: str, amount: float, params={})`
|
|
166
167
|
- `repay_isolated_margin(self, symbol: str, code: str, amount, params={})`
|
|
167
|
-
- `set_leverage(self, leverage:
|
|
168
|
+
- `set_leverage(self, leverage: int, symbol: Str = None, params={})`
|
|
168
169
|
- `set_margin_mode(self, marginMode: str, symbol: Str = None, params={})`
|
|
169
170
|
- `transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={})`
|
|
170
|
-
- `withdraw(self, code: str, amount: float, address: str, tag=None, params={})`
|
|
171
|
+
- `withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={})`
|
|
171
172
|
|
|
172
173
|
### REST Raw
|
|
173
174
|
|
|
@@ -26,7 +26,7 @@ sys.modules['ccxt'] = ccxt_module
|
|
|
26
26
|
|
|
27
27
|
# ----------------------------------------------------------------------------
|
|
28
28
|
|
|
29
|
-
__version__ = '4.
|
|
29
|
+
__version__ = '4.5.15'
|
|
30
30
|
|
|
31
31
|
# ----------------------------------------------------------------------------
|
|
32
32
|
|
|
@@ -59,6 +59,7 @@ from ccxt.base.errors import NoChange # noqa: F4
|
|
|
59
59
|
from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
|
|
60
60
|
from ccxt.base.errors import MarketClosed # noqa: F401
|
|
61
61
|
from ccxt.base.errors import ManualInteractionNeeded # noqa: F401
|
|
62
|
+
from ccxt.base.errors import RestrictedLocation # noqa: F401
|
|
62
63
|
from ccxt.base.errors import InsufficientFunds # noqa: F401
|
|
63
64
|
from ccxt.base.errors import InvalidAddress # noqa: F401
|
|
64
65
|
from ccxt.base.errors import AddressPending # noqa: F401
|
|
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
|
|
|
8
8
|
|
|
9
9
|
# -----------------------------------------------------------------------------
|
|
10
10
|
|
|
11
|
-
__version__ = '4.
|
|
11
|
+
__version__ = '4.5.15'
|
|
12
12
|
|
|
13
13
|
# -----------------------------------------------------------------------------
|
|
14
14
|
|
|
@@ -38,6 +38,7 @@ from ccxt.base.errors import NoChange # noqa: F4
|
|
|
38
38
|
from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
|
|
39
39
|
from ccxt.base.errors import MarketClosed # noqa: F401
|
|
40
40
|
from ccxt.base.errors import ManualInteractionNeeded # noqa: F401
|
|
41
|
+
from ccxt.base.errors import RestrictedLocation # noqa: F401
|
|
41
42
|
from ccxt.base.errors import InsufficientFunds # noqa: F401
|
|
42
43
|
from ccxt.base.errors import InvalidAddress # noqa: F401
|
|
43
44
|
from ccxt.base.errors import AddressPending # noqa: F401
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# -----------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
__version__ = '4.
|
|
5
|
+
__version__ = '4.5.15'
|
|
6
6
|
|
|
7
7
|
# -----------------------------------------------------------------------------
|
|
8
8
|
|
|
@@ -25,7 +25,7 @@ from ccxt.async_support.base.throttler import Throttler
|
|
|
25
25
|
# -----------------------------------------------------------------------------
|
|
26
26
|
|
|
27
27
|
from ccxt.base.errors import BaseError, BadSymbol, BadRequest, BadResponse, ExchangeError, ExchangeNotAvailable, RequestTimeout, NotSupported, NullResponse, InvalidAddress, RateLimitExceeded, OperationFailed
|
|
28
|
-
from ccxt.base.types import ConstructorArgs, OrderType, OrderSide, OrderRequest, CancellationRequest
|
|
28
|
+
from ccxt.base.types import ConstructorArgs, OrderType, OrderSide, OrderRequest, CancellationRequest, Order
|
|
29
29
|
|
|
30
30
|
# -----------------------------------------------------------------------------
|
|
31
31
|
|
|
@@ -34,7 +34,7 @@ from ccxt.base.exchange import Exchange as BaseExchange, ArgumentsRequired
|
|
|
34
34
|
# -----------------------------------------------------------------------------
|
|
35
35
|
|
|
36
36
|
from ccxt.async_support.base.ws.functions import inflate, inflate64, gunzip
|
|
37
|
-
from ccxt.async_support.base.ws.
|
|
37
|
+
from ccxt.async_support.base.ws.client import Client
|
|
38
38
|
from ccxt.async_support.base.ws.future import Future
|
|
39
39
|
from ccxt.async_support.base.ws.order_book import OrderBook, IndexedOrderBook, CountedOrderBook
|
|
40
40
|
|
|
@@ -54,6 +54,15 @@ __all__ = [
|
|
|
54
54
|
]
|
|
55
55
|
|
|
56
56
|
# -----------------------------------------------------------------------------
|
|
57
|
+
# --- PROTO BUF IMPORTS
|
|
58
|
+
try:
|
|
59
|
+
from ccxt.protobuf.mexc import PushDataV3ApiWrapper_pb2
|
|
60
|
+
from google.protobuf.json_format import MessageToDict
|
|
61
|
+
except ImportError:
|
|
62
|
+
PushDataV3ApiWrapper_pb2 = None
|
|
63
|
+
MessageToDict = None
|
|
64
|
+
|
|
65
|
+
# -----------------------------------------------------------------------------
|
|
57
66
|
|
|
58
67
|
|
|
59
68
|
class Exchange(BaseExchange):
|
|
@@ -176,15 +185,7 @@ class Exchange(BaseExchange):
|
|
|
176
185
|
if (socksProxy not in self.socks_proxy_sessions):
|
|
177
186
|
# Create our SSL context object with our CA cert file
|
|
178
187
|
self.open() # ensure `asyncio_loop` is set
|
|
179
|
-
|
|
180
|
-
socksProxy,
|
|
181
|
-
# extra args copied from self.open()
|
|
182
|
-
ssl=self.ssl_context,
|
|
183
|
-
loop=self.asyncio_loop,
|
|
184
|
-
enable_cleanup_closed=True
|
|
185
|
-
)
|
|
186
|
-
self.socks_proxy_sessions[socksProxy] = aiohttp.ClientSession(loop=self.asyncio_loop, connector=self.aiohttp_socks_connector, trust_env=self.aiohttp_trust_env)
|
|
187
|
-
proxy_session = self.socks_proxy_sessions[socksProxy]
|
|
188
|
+
proxy_session = self.get_socks_proxy_session(socksProxy)
|
|
188
189
|
# add aiohttp_proxy for python as exclusion
|
|
189
190
|
elif self.aiohttp_proxy:
|
|
190
191
|
final_proxy = self.aiohttp_proxy
|
|
@@ -239,6 +240,8 @@ class Exchange(BaseExchange):
|
|
|
239
240
|
self.last_json_response = json_response
|
|
240
241
|
if self.verbose:
|
|
241
242
|
self.log("\nfetch Response:", self.id, method, url, http_status_code, "ResponseHeaders:", headers, "ResponseBody:", http_response)
|
|
243
|
+
if json_response and not isinstance(json_response, list) and self.returnResponseHeaders:
|
|
244
|
+
json_response['responseHeaders'] = headers
|
|
242
245
|
self.logger.debug("%s %s, Response: %s %s %s", method, url, http_status_code, headers, http_response)
|
|
243
246
|
|
|
244
247
|
except socket.gaierror as e:
|
|
@@ -267,6 +270,20 @@ class Exchange(BaseExchange):
|
|
|
267
270
|
return http_response
|
|
268
271
|
return response.content
|
|
269
272
|
|
|
273
|
+
def get_socks_proxy_session(self, socksProxy):
|
|
274
|
+
if (self.socks_proxy_sessions is None):
|
|
275
|
+
self.socks_proxy_sessions = {}
|
|
276
|
+
if (socksProxy not in self.socks_proxy_sessions):
|
|
277
|
+
self.aiohttp_socks_connector = ProxyConnector.from_url(
|
|
278
|
+
socksProxy,
|
|
279
|
+
# extra args copied from self.open()
|
|
280
|
+
ssl=self.ssl_context,
|
|
281
|
+
loop=self.asyncio_loop,
|
|
282
|
+
enable_cleanup_closed=True
|
|
283
|
+
)
|
|
284
|
+
self.socks_proxy_sessions[socksProxy] = aiohttp.ClientSession(loop=self.asyncio_loop, connector=self.aiohttp_socks_connector, trust_env=self.aiohttp_trust_env)
|
|
285
|
+
return self.socks_proxy_sessions[socksProxy]
|
|
286
|
+
|
|
270
287
|
async def load_markets_helper(self, reload=False, params={}):
|
|
271
288
|
if not reload:
|
|
272
289
|
if self.markets:
|
|
@@ -276,10 +293,34 @@ class Exchange(BaseExchange):
|
|
|
276
293
|
currencies = None
|
|
277
294
|
if self.has['fetchCurrencies'] is True:
|
|
278
295
|
currencies = await self.fetch_currencies()
|
|
296
|
+
self.options['cachedCurrencies'] = currencies
|
|
279
297
|
markets = await self.fetch_markets(params)
|
|
298
|
+
if 'cachedCurrencies' in self.options:
|
|
299
|
+
del self.options['cachedCurrencies']
|
|
280
300
|
return self.set_markets(markets, currencies)
|
|
281
301
|
|
|
302
|
+
|
|
282
303
|
async def load_markets(self, reload=False, params={}):
|
|
304
|
+
"""
|
|
305
|
+
Loads and prepares the markets for trading.
|
|
306
|
+
|
|
307
|
+
Args:
|
|
308
|
+
reload (bool): If True, the markets will be reloaded from the exchange.
|
|
309
|
+
params (dict): Additional exchange-specific parameters for the request.
|
|
310
|
+
|
|
311
|
+
Returns:
|
|
312
|
+
dict: A dictionary of markets.
|
|
313
|
+
|
|
314
|
+
Raises:
|
|
315
|
+
Exception: If the markets cannot be loaded or prepared.
|
|
316
|
+
|
|
317
|
+
Notes:
|
|
318
|
+
This method is asynchronous.
|
|
319
|
+
It ensures that the markets are only loaded once, even if called multiple times.
|
|
320
|
+
If the markets are already loaded and `reload` is False or not provided, it returns the existing markets.
|
|
321
|
+
If a reload is in progress, it waits for completion before returning.
|
|
322
|
+
If an error occurs during loading or preparation, an exception is raised.
|
|
323
|
+
"""
|
|
283
324
|
if (reload and not self.reloading_markets) or not self.markets_loading:
|
|
284
325
|
self.reloading_markets = True
|
|
285
326
|
coroutine = self.load_markets_helper(reload, params)
|
|
@@ -386,21 +427,17 @@ class Exchange(BaseExchange):
|
|
|
386
427
|
'verbose': self.verbose,
|
|
387
428
|
'throttle': Throttler(self.tokenBucket, self.asyncio_loop),
|
|
388
429
|
'asyncio_loop': self.asyncio_loop,
|
|
430
|
+
'decompressBinary': self.safe_bool(self.options, 'decompressBinary', True),
|
|
389
431
|
}, ws_options)
|
|
390
|
-
|
|
391
|
-
|
|
432
|
+
# we use aiohttp instead of fastClient now because of this
|
|
433
|
+
# https://github.com/ccxt/ccxt/pull/25995
|
|
434
|
+
self.clients[url] = Client(url, on_message, on_error, on_close, on_connected, options)
|
|
435
|
+
# set http/s proxy (socks proxy should be set in other place)
|
|
436
|
+
httpProxy, httpsProxy, socksProxy = self.check_ws_proxy_settings()
|
|
437
|
+
if (httpProxy or httpsProxy):
|
|
438
|
+
self.clients[url].proxy = httpProxy if httpProxy else httpsProxy
|
|
392
439
|
return self.clients[url]
|
|
393
440
|
|
|
394
|
-
def get_ws_proxy(self):
|
|
395
|
-
httpProxy, httpsProxy, socksProxy = self.check_ws_proxy_settings()
|
|
396
|
-
if httpProxy:
|
|
397
|
-
return httpProxy
|
|
398
|
-
elif httpsProxy:
|
|
399
|
-
return httpsProxy
|
|
400
|
-
elif socksProxy:
|
|
401
|
-
return socksProxy
|
|
402
|
-
return None
|
|
403
|
-
|
|
404
441
|
def delay(self, timeout, method, *args):
|
|
405
442
|
return self.asyncio_loop.call_later(timeout / 1000, self.spawn, method, *args)
|
|
406
443
|
|
|
@@ -463,8 +500,13 @@ class Exchange(BaseExchange):
|
|
|
463
500
|
if not subscribed:
|
|
464
501
|
client.subscriptions[subscribe_hash] = subscription or True
|
|
465
502
|
|
|
503
|
+
selected_session = self.session
|
|
504
|
+
# http/s proxy is being set in other places
|
|
505
|
+
httpProxy, httpsProxy, socksProxy = self.check_ws_proxy_settings()
|
|
506
|
+
if (socksProxy):
|
|
507
|
+
selected_session = self.get_socks_proxy_session(socksProxy)
|
|
466
508
|
connected = client.connected if client.connected.done() \
|
|
467
|
-
else asyncio.ensure_future(client.connect(
|
|
509
|
+
else asyncio.ensure_future(client.connect(selected_session, backoff_delay))
|
|
468
510
|
|
|
469
511
|
def after(fut):
|
|
470
512
|
# todo: decouple signing from subscriptions
|
|
@@ -541,6 +583,31 @@ class Exchange(BaseExchange):
|
|
|
541
583
|
return '0e-00'
|
|
542
584
|
return format(n, 'g')
|
|
543
585
|
|
|
586
|
+
def decode_proto_msg(self, data):
|
|
587
|
+
if not MessageToDict:
|
|
588
|
+
raise NotSupported(self.id + ' requires protobuf to decode messages, please install it with `pip install "protobuf==5.29.5"`')
|
|
589
|
+
message = PushDataV3ApiWrapper_pb2.PushDataV3ApiWrapper()
|
|
590
|
+
message.ParseFromString(data)
|
|
591
|
+
dict_msg = MessageToDict(message)
|
|
592
|
+
# {
|
|
593
|
+
# "channel":"spot@public.kline.v3.api.pb@BTCUSDT@Min1",
|
|
594
|
+
# "symbol":"BTCUSDT",
|
|
595
|
+
# "symbolId":"2fb942154ef44a4ab2ef98c8afb6a4a7",
|
|
596
|
+
# "createTime":"1754735110559",
|
|
597
|
+
# "publicSpotKline":{
|
|
598
|
+
# "interval":"Min1",
|
|
599
|
+
# "windowStart":"1754735100",
|
|
600
|
+
# "openingPrice":"117792.45",
|
|
601
|
+
# "closingPrice":"117805.32",
|
|
602
|
+
# "highestPrice":"117814.63",
|
|
603
|
+
# "lowestPrice":"117792.45",
|
|
604
|
+
# "volume":"0.13425465",
|
|
605
|
+
# "amount":"15815.77",
|
|
606
|
+
# "windowEnd":"1754735160"
|
|
607
|
+
# }
|
|
608
|
+
# }
|
|
609
|
+
return dict_msg
|
|
610
|
+
|
|
544
611
|
# ########################################################################
|
|
545
612
|
# ########################################################################
|
|
546
613
|
# ########################################################################
|
|
@@ -578,7 +645,7 @@ class Exchange(BaseExchange):
|
|
|
578
645
|
# ########################################################################
|
|
579
646
|
# ########################################################################
|
|
580
647
|
|
|
581
|
-
# METHODS BELOW THIS LINE ARE TRANSPILED FROM
|
|
648
|
+
# METHODS BELOW THIS LINE ARE TRANSPILED FROM TYPESCRIPT
|
|
582
649
|
|
|
583
650
|
async def fetch_accounts(self, params={}):
|
|
584
651
|
raise NotSupported(self.id + ' fetchAccounts() is not supported yet')
|
|
@@ -608,6 +675,9 @@ class Exchange(BaseExchange):
|
|
|
608
675
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}):
|
|
609
676
|
raise NotSupported(self.id + ' watchTrades() is not supported yet')
|
|
610
677
|
|
|
678
|
+
async def un_watch_orders(self, symbol: Str = None, params={}):
|
|
679
|
+
raise NotSupported(self.id + ' unWatchOrders() is not supported yet')
|
|
680
|
+
|
|
611
681
|
async def un_watch_trades(self, symbol: str, params={}):
|
|
612
682
|
raise NotSupported(self.id + ' unWatchTrades() is not supported yet')
|
|
613
683
|
|
|
@@ -635,6 +705,18 @@ class Exchange(BaseExchange):
|
|
|
635
705
|
async def un_watch_order_book_for_symbols(self, symbols: List[str], params={}):
|
|
636
706
|
raise NotSupported(self.id + ' unWatchOrderBookForSymbols() is not supported yet')
|
|
637
707
|
|
|
708
|
+
async def un_watch_positions(self, symbols: Strings = None, params={}):
|
|
709
|
+
raise NotSupported(self.id + ' unWatchPositions() is not supported yet')
|
|
710
|
+
|
|
711
|
+
async def un_watch_ticker(self, symbol: str, params={}):
|
|
712
|
+
raise NotSupported(self.id + ' unWatchTicker() is not supported yet')
|
|
713
|
+
|
|
714
|
+
async def un_watch_mark_price(self, symbol: str, params={}):
|
|
715
|
+
raise NotSupported(self.id + ' unWatchMarkPrice() is not supported yet')
|
|
716
|
+
|
|
717
|
+
async def un_watch_mark_prices(self, symbols: Strings = None, params={}):
|
|
718
|
+
raise NotSupported(self.id + ' unWatchMarkPrices() is not supported yet')
|
|
719
|
+
|
|
638
720
|
async def fetch_deposit_addresses(self, codes: Strings = None, params={}):
|
|
639
721
|
raise NotSupported(self.id + ' fetchDepositAddresses() is not supported yet')
|
|
640
722
|
|
|
@@ -704,13 +786,13 @@ class Exchange(BaseExchange):
|
|
|
704
786
|
async def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}):
|
|
705
787
|
raise NotSupported(self.id + ' transfer() is not supported yet')
|
|
706
788
|
|
|
707
|
-
async def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
|
789
|
+
async def withdraw(self, code: str, amount: float, address: str, tag: Str = None, params={}):
|
|
708
790
|
raise NotSupported(self.id + ' withdraw() is not supported yet')
|
|
709
791
|
|
|
710
792
|
async def create_deposit_address(self, code: str, params={}):
|
|
711
793
|
raise NotSupported(self.id + ' createDepositAddress() is not supported yet')
|
|
712
794
|
|
|
713
|
-
async def set_leverage(self, leverage:
|
|
795
|
+
async def set_leverage(self, leverage: int, symbol: Str = None, params={}):
|
|
714
796
|
raise NotSupported(self.id + ' setLeverage() is not supported yet')
|
|
715
797
|
|
|
716
798
|
async def fetch_leverage(self, symbol: str, params={}):
|
|
@@ -759,7 +841,7 @@ class Exchange(BaseExchange):
|
|
|
759
841
|
async def fetch_deposit_addresses_by_network(self, code: str, params={}):
|
|
760
842
|
raise NotSupported(self.id + ' fetchDepositAddressesByNetwork() is not supported yet')
|
|
761
843
|
|
|
762
|
-
async def fetch_open_interest_history(self, symbol: str, timeframe='1h', since: Int = None, limit: Int = None, params={}):
|
|
844
|
+
async def fetch_open_interest_history(self, symbol: str, timeframe: str = '1h', since: Int = None, limit: Int = None, params={}):
|
|
763
845
|
raise NotSupported(self.id + ' fetchOpenInterestHistory() is not supported yet')
|
|
764
846
|
|
|
765
847
|
async def fetch_open_interest(self, symbol: str, params={}):
|
|
@@ -795,19 +877,19 @@ class Exchange(BaseExchange):
|
|
|
795
877
|
async def repay_margin(self, code: str, amount: float, symbol: Str = None, params={}):
|
|
796
878
|
raise NotSupported(self.id + ' repayMargin is deprecated, please use repayCrossMargin or repayIsolatedMargin instead')
|
|
797
879
|
|
|
798
|
-
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}):
|
|
880
|
+
async def fetch_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={}):
|
|
799
881
|
message = ''
|
|
800
882
|
if self.has['fetchTrades']:
|
|
801
883
|
message = '. If you want to build OHLCV candles from trade executions data, visit https://github.com/ccxt/ccxt/tree/master/examples/ and see "build-ohlcv-bars" file'
|
|
802
884
|
raise NotSupported(self.id + ' fetchOHLCV() is not supported yet' + message)
|
|
803
885
|
|
|
804
|
-
async def fetch_ohlcv_ws(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}):
|
|
886
|
+
async def fetch_ohlcv_ws(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={}):
|
|
805
887
|
message = ''
|
|
806
888
|
if self.has['fetchTradesWs']:
|
|
807
889
|
message = '. If you want to build OHLCV candles from trade executions data, visit https://github.com/ccxt/ccxt/tree/master/examples/ and see "build-ohlcv-bars" file'
|
|
808
890
|
raise NotSupported(self.id + ' fetchOHLCVWs() is not supported yet. Try using fetchOHLCV instead.' + message)
|
|
809
891
|
|
|
810
|
-
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}):
|
|
892
|
+
async def watch_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={}):
|
|
811
893
|
raise NotSupported(self.id + ' watchOHLCV() is not supported yet')
|
|
812
894
|
|
|
813
895
|
async def fetch_web_endpoint(self, method, endpointMethod, returnAsJson, startRegex=None, endRegex=None):
|
|
@@ -876,15 +958,15 @@ class Exchange(BaseExchange):
|
|
|
876
958
|
if self.enableRateLimit:
|
|
877
959
|
cost = self.calculate_rate_limiter_cost(api, method, path, params, config)
|
|
878
960
|
await self.throttle(cost)
|
|
961
|
+
retries = None
|
|
962
|
+
retries, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailure', 0)
|
|
963
|
+
retryDelay = None
|
|
964
|
+
retryDelay, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailureDelay', 0)
|
|
879
965
|
self.lastRestRequestTimestamp = self.milliseconds()
|
|
880
966
|
request = self.sign(path, api, method, params, headers, body)
|
|
881
967
|
self.last_request_headers = request['headers']
|
|
882
968
|
self.last_request_body = request['body']
|
|
883
969
|
self.last_request_url = request['url']
|
|
884
|
-
retries = None
|
|
885
|
-
retries, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailure', 0)
|
|
886
|
-
retryDelay = None
|
|
887
|
-
retryDelay, params = self.handle_option_and_params(params, path, 'maxRetriesOnFailureDelay', 0)
|
|
888
970
|
for i in range(0, retries + 1):
|
|
889
971
|
try:
|
|
890
972
|
return await self.fetch(request['url'], request['method'], request['headers'], request['body'])
|
|
@@ -1144,7 +1226,7 @@ class Exchange(BaseExchange):
|
|
|
1144
1226
|
async def fetch_position_mode(self, symbol: Str = None, params={}):
|
|
1145
1227
|
raise NotSupported(self.id + ' fetchPositionMode() is not supported yet')
|
|
1146
1228
|
|
|
1147
|
-
async def create_trailing_amount_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingAmount=None, trailingTriggerPrice=None, params={}):
|
|
1229
|
+
async def create_trailing_amount_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingAmount: Num = None, trailingTriggerPrice: Num = None, params={}):
|
|
1148
1230
|
"""
|
|
1149
1231
|
create a trailing order by providing the symbol, type, side, amount, price and trailingAmount
|
|
1150
1232
|
:param str symbol: unified symbol of the market to create an order in
|
|
@@ -1166,7 +1248,7 @@ class Exchange(BaseExchange):
|
|
|
1166
1248
|
return await self.create_order(symbol, type, side, amount, price, params)
|
|
1167
1249
|
raise NotSupported(self.id + ' createTrailingAmountOrder() is not supported yet')
|
|
1168
1250
|
|
|
1169
|
-
async def create_trailing_amount_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingAmount=None, trailingTriggerPrice=None, params={}):
|
|
1251
|
+
async def create_trailing_amount_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingAmount: Num = None, trailingTriggerPrice: Num = None, params={}):
|
|
1170
1252
|
"""
|
|
1171
1253
|
create a trailing order by providing the symbol, type, side, amount, price and trailingAmount
|
|
1172
1254
|
:param str symbol: unified symbol of the market to create an order in
|
|
@@ -1188,7 +1270,7 @@ class Exchange(BaseExchange):
|
|
|
1188
1270
|
return await self.create_order_ws(symbol, type, side, amount, price, params)
|
|
1189
1271
|
raise NotSupported(self.id + ' createTrailingAmountOrderWs() is not supported yet')
|
|
1190
1272
|
|
|
1191
|
-
async def create_trailing_percent_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingPercent=None, trailingTriggerPrice=None, params={}):
|
|
1273
|
+
async def create_trailing_percent_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingPercent: Num = None, trailingTriggerPrice: Num = None, params={}):
|
|
1192
1274
|
"""
|
|
1193
1275
|
create a trailing order by providing the symbol, type, side, amount, price and trailingPercent
|
|
1194
1276
|
:param str symbol: unified symbol of the market to create an order in
|
|
@@ -1210,7 +1292,7 @@ class Exchange(BaseExchange):
|
|
|
1210
1292
|
return await self.create_order(symbol, type, side, amount, price, params)
|
|
1211
1293
|
raise NotSupported(self.id + ' createTrailingPercentOrder() is not supported yet')
|
|
1212
1294
|
|
|
1213
|
-
async def create_trailing_percent_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingPercent=None, trailingTriggerPrice=None, params={}):
|
|
1295
|
+
async def create_trailing_percent_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, trailingPercent: Num = None, trailingTriggerPrice: Num = None, params={}):
|
|
1214
1296
|
"""
|
|
1215
1297
|
create a trailing order by providing the symbol, type, side, amount, price and trailingPercent
|
|
1216
1298
|
:param str symbol: unified symbol of the market to create an order in
|
|
@@ -1463,6 +1545,9 @@ class Exchange(BaseExchange):
|
|
|
1463
1545
|
async def cancel_order_ws(self, id: str, symbol: Str = None, params={}):
|
|
1464
1546
|
raise NotSupported(self.id + ' cancelOrderWs() is not supported yet')
|
|
1465
1547
|
|
|
1548
|
+
async def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
|
1549
|
+
raise NotSupported(self.id + ' cancelOrders() is not supported yet')
|
|
1550
|
+
|
|
1466
1551
|
async def cancel_orders_ws(self, ids: List[str], symbol: Str = None, params={}):
|
|
1467
1552
|
raise NotSupported(self.id + ' cancelOrdersWs() is not supported yet')
|
|
1468
1553
|
|
|
@@ -1478,7 +1563,7 @@ class Exchange(BaseExchange):
|
|
|
1478
1563
|
async def cancel_all_orders_ws(self, symbol: Str = None, params={}):
|
|
1479
1564
|
raise NotSupported(self.id + ' cancelAllOrdersWs() is not supported yet')
|
|
1480
1565
|
|
|
1481
|
-
async def cancel_unified_order(self, order, params={}):
|
|
1566
|
+
async def cancel_unified_order(self, order: Order, params={}):
|
|
1482
1567
|
return self.cancel_order(self.safe_string(order, 'id'), self.safe_string(order, 'symbol'), params)
|
|
1483
1568
|
|
|
1484
1569
|
async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
@@ -1540,6 +1625,9 @@ class Exchange(BaseExchange):
|
|
|
1540
1625
|
async def fetch_greeks(self, symbol: str, params={}):
|
|
1541
1626
|
raise NotSupported(self.id + ' fetchGreeks() is not supported yet')
|
|
1542
1627
|
|
|
1628
|
+
async def fetch_all_greeks(self, symbols: Strings = None, params={}):
|
|
1629
|
+
raise NotSupported(self.id + ' fetchAllGreeks() is not supported yet')
|
|
1630
|
+
|
|
1543
1631
|
async def fetch_option_chain(self, code: str, params={}):
|
|
1544
1632
|
raise NotSupported(self.id + ' fetchOptionChain() is not supported yet')
|
|
1545
1633
|
|
|
@@ -1560,10 +1648,10 @@ class Exchange(BaseExchange):
|
|
|
1560
1648
|
"""
|
|
1561
1649
|
raise NotSupported(self.id + ' fetchDepositsWithdrawals() is not supported yet')
|
|
1562
1650
|
|
|
1563
|
-
async def fetch_deposits(self,
|
|
1651
|
+
async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1564
1652
|
raise NotSupported(self.id + ' fetchDeposits() is not supported yet')
|
|
1565
1653
|
|
|
1566
|
-
async def fetch_withdrawals(self,
|
|
1654
|
+
async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
1567
1655
|
raise NotSupported(self.id + ' fetchWithdrawals() is not supported yet')
|
|
1568
1656
|
|
|
1569
1657
|
async def fetch_deposits_ws(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
@@ -1774,7 +1862,7 @@ class Exchange(BaseExchange):
|
|
|
1774
1862
|
else:
|
|
1775
1863
|
raise NotSupported(self.id + ' fetchFundingInterval() is not supported yet')
|
|
1776
1864
|
|
|
1777
|
-
async def fetch_mark_ohlcv(self, symbol, timeframe='1m', since: Int = None, limit: Int = None, params={}):
|
|
1865
|
+
async def fetch_mark_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={}):
|
|
1778
1866
|
"""
|
|
1779
1867
|
fetches historical mark price candlestick data containing the open, high, low, and close price of a market
|
|
1780
1868
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
@@ -1792,7 +1880,7 @@ class Exchange(BaseExchange):
|
|
|
1792
1880
|
else:
|
|
1793
1881
|
raise NotSupported(self.id + ' fetchMarkOHLCV() is not supported yet')
|
|
1794
1882
|
|
|
1795
|
-
async def fetch_index_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}):
|
|
1883
|
+
async def fetch_index_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={}):
|
|
1796
1884
|
"""
|
|
1797
1885
|
fetches historical index price candlestick data containing the open, high, low, and close price of a market
|
|
1798
1886
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
@@ -1810,7 +1898,7 @@ class Exchange(BaseExchange):
|
|
|
1810
1898
|
else:
|
|
1811
1899
|
raise NotSupported(self.id + ' fetchIndexOHLCV() is not supported yet')
|
|
1812
1900
|
|
|
1813
|
-
async def fetch_premium_index_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}):
|
|
1901
|
+
async def fetch_premium_index_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={}):
|
|
1814
1902
|
"""
|
|
1815
1903
|
fetches historical premium index price candlestick data containing the open, high, low, and close price of a market
|
|
1816
1904
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
@@ -1856,7 +1944,7 @@ class Exchange(BaseExchange):
|
|
|
1856
1944
|
calls = 0
|
|
1857
1945
|
result = []
|
|
1858
1946
|
errors = 0
|
|
1859
|
-
until = self.
|
|
1947
|
+
until = self.safe_integer_n(params, ['until', 'untill', 'till']) # do not omit it from params here
|
|
1860
1948
|
maxEntriesPerRequest, params = self.handle_max_entries_per_request_and_params(method, maxEntriesPerRequest, params)
|
|
1861
1949
|
if (paginationDirection == 'forward'):
|
|
1862
1950
|
if since is None:
|
|
@@ -2102,3 +2190,80 @@ class Exchange(BaseExchange):
|
|
|
2102
2190
|
:returns dict: a `transfer structure <https://docs.ccxt.com/#/?id=transfer-structure>`
|
|
2103
2191
|
"""
|
|
2104
2192
|
raise NotSupported(self.id + ' fetchTransfers() is not supported yet')
|
|
2193
|
+
|
|
2194
|
+
async def un_watch_ohlcv(self, symbol: str, timeframe: str = '1m', params={}):
|
|
2195
|
+
"""
|
|
2196
|
+
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
2197
|
+
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
2198
|
+
:param str timeframe: the length of time each candle represents
|
|
2199
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2200
|
+
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
|
2201
|
+
"""
|
|
2202
|
+
raise NotSupported(self.id + ' unWatchOHLCV() is not supported yet')
|
|
2203
|
+
|
|
2204
|
+
async def watch_mark_price(self, symbol: str, params={}):
|
|
2205
|
+
"""
|
|
2206
|
+
watches a mark price for a specific market
|
|
2207
|
+
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
2208
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2209
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
2210
|
+
"""
|
|
2211
|
+
raise NotSupported(self.id + ' watchMarkPrice() is not supported yet')
|
|
2212
|
+
|
|
2213
|
+
async def watch_mark_prices(self, symbols: Strings = None, params={}):
|
|
2214
|
+
"""
|
|
2215
|
+
watches the mark price for all markets
|
|
2216
|
+
:param str[] symbols: unified symbol of the market to fetch the ticker for
|
|
2217
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2218
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
2219
|
+
"""
|
|
2220
|
+
raise NotSupported(self.id + ' watchMarkPrices() is not supported yet')
|
|
2221
|
+
|
|
2222
|
+
async def withdraw_ws(self, code: str, amount: float, address: str, tag: Str = None, params={}):
|
|
2223
|
+
"""
|
|
2224
|
+
make a withdrawal
|
|
2225
|
+
:param str code: unified currency code
|
|
2226
|
+
:param float amount: the amount to withdraw
|
|
2227
|
+
:param str address: the address to withdraw to
|
|
2228
|
+
:param str tag:
|
|
2229
|
+
:param dict [params]: extra parameters specific to the bitvavo api endpoint
|
|
2230
|
+
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
|
|
2231
|
+
"""
|
|
2232
|
+
raise NotSupported(self.id + ' withdrawWs() is not supported yet')
|
|
2233
|
+
|
|
2234
|
+
async def un_watch_my_trades(self, symbol: Str = None, params={}):
|
|
2235
|
+
"""
|
|
2236
|
+
unWatches information on multiple trades made by the user
|
|
2237
|
+
:param str symbol: unified market symbol of the market orders were made in
|
|
2238
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2239
|
+
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
|
2240
|
+
"""
|
|
2241
|
+
raise NotSupported(self.id + ' unWatchMyTrades() is not supported yet')
|
|
2242
|
+
|
|
2243
|
+
async def create_orders_ws(self, orders: List[OrderRequest], params={}):
|
|
2244
|
+
"""
|
|
2245
|
+
create a list of trade orders
|
|
2246
|
+
:param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
|
|
2247
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2248
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
2249
|
+
"""
|
|
2250
|
+
raise NotSupported(self.id + ' createOrdersWs() is not supported yet')
|
|
2251
|
+
|
|
2252
|
+
async def fetch_orders_by_status_ws(self, status: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
2253
|
+
"""
|
|
2254
|
+
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
2255
|
+
:param str symbol: unified symbol of the market to fetch the order book for
|
|
2256
|
+
:param int [limit]: the maximum amount of order book entries to return
|
|
2257
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2258
|
+
:returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
|
|
2259
|
+
"""
|
|
2260
|
+
raise NotSupported(self.id + ' fetchOrdersByStatusWs() is not supported yet')
|
|
2261
|
+
|
|
2262
|
+
async def un_watch_bids_asks(self, symbols: Strings = None, params={}):
|
|
2263
|
+
"""
|
|
2264
|
+
unWatches best bid & ask for symbols
|
|
2265
|
+
:param str[] symbols: unified symbol of the market to fetch the ticker for
|
|
2266
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
2267
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
2268
|
+
"""
|
|
2269
|
+
raise NotSupported(self.id + ' unWatchBidsAsks() is not supported yet')
|
|
@@ -42,7 +42,7 @@ class Throttler:
|
|
|
42
42
|
def __call__(self, cost=None):
|
|
43
43
|
future = asyncio.Future()
|
|
44
44
|
if len(self.queue) > self.config['maxCapacity']:
|
|
45
|
-
raise RuntimeError('throttle queue is over maxCapacity (' + str(int(self.config['maxCapacity'])) + '), see https://
|
|
45
|
+
raise RuntimeError('throttle queue is over maxCapacity (' + str(int(self.config['maxCapacity'])) + '), see https://docs.ccxt.com/#/README?id=maximum-requests-capacity')
|
|
46
46
|
self.queue.append((future, cost))
|
|
47
47
|
if not self.running:
|
|
48
48
|
self.running = True
|