coinex-api 0.0.92__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.92 → coinex_api-0.0.100}/.gitignore +0 -1
- {coinex_api-0.0.92 → coinex_api-0.0.100}/PKG-INFO +3 -3
- {coinex_api-0.0.92 → coinex_api-0.0.100}/README.md +2 -2
- {coinex_api-0.0.92 → coinex_api-0.0.100}/pyproject.toml +1 -1
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/__init__.py +1 -1
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/__init__.py +1 -1
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/exchange.py +89 -3
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/throttler.py +1 -1
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/client.py +17 -1
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/coinex.py +2 -2
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/base/exchange.py +186 -22
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/base/types.py +2 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/coinex.py +2 -2
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/pro/__init__.py +1 -1
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/pro/coinex.py +3 -3
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/abstract/coinex.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/cache.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/functions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/future.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/order_book.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/base/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/base/decimal_to_precision.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/base/errors.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/base/precise.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/README.md +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {coinex_api-0.0.92 → 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.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/ast_utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/common.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/exceptions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammar.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/common.lark +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/lark.lark +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/python.lark +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/grammars/unicode.lark +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/indenter.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/lark.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/lexer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/load_grammar.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/reconstruct.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tree.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/tree_templates.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/lark/visitors.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/base.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/fields.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/schema.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/types.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/validate.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/_cmsgpack.pyx +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/_packer.pyx +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/_unpacker.pyx +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/buff_converter.h +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/pack.h +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/pack_template.h +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/sysdep.h +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/unpack.h +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/unpack_define.h +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/msgpack/unpack_template.h +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/model.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/schemas.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v0/shape.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/core_structures.json +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/model.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/parser_transformer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/schemas.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v1/shape.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/model.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/parser_transformer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/schemas.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/abi/v2/shape.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/common.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/constants.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/address.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/_version.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/toolz/utils.py +0 -0
- {coinex_api-0.0.92 → coinex_api-0.0.100}/src/coinex/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
- {coinex_api-0.0.92 → 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
|
|
@@ -153,7 +153,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
153
153
|
- `fetch_margin_balance(self, params={})`
|
|
154
154
|
- `fetch_markets(self, params={})`
|
|
155
155
|
- `fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
156
|
-
- `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={})`
|
|
157
157
|
- `fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
158
158
|
- `fetch_order_book(self, symbol: str, limit: Int = 20, params={})`
|
|
159
159
|
- `fetch_order(self, id: str, symbol: Str = None, params={})`
|
|
@@ -176,7 +176,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
176
176
|
- `borrow_isolated_margin(self, symbol: str, code: str, amount: float, params={})`
|
|
177
177
|
- `cancel_all_orders(self, symbol: Str = None, params={})`
|
|
178
178
|
- `cancel_order(self, id: str, symbol: Str = None, params={})`
|
|
179
|
-
- `cancel_orders(self, ids, symbol: Str = None, params={})`
|
|
179
|
+
- `cancel_orders(self, ids: List[str], symbol: Str = None, params={})`
|
|
180
180
|
- `close_position(self, symbol: str, side: OrderSide = None, params={})`
|
|
181
181
|
- `describe(self)`
|
|
182
182
|
- `edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
|
|
@@ -134,7 +134,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
134
134
|
- `fetch_margin_balance(self, params={})`
|
|
135
135
|
- `fetch_markets(self, params={})`
|
|
136
136
|
- `fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
137
|
-
- `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={})`
|
|
138
138
|
- `fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
|
|
139
139
|
- `fetch_order_book(self, symbol: str, limit: Int = 20, params={})`
|
|
140
140
|
- `fetch_order(self, id: str, symbol: Str = None, params={})`
|
|
@@ -157,7 +157,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
|
157
157
|
- `borrow_isolated_margin(self, symbol: str, code: str, amount: float, params={})`
|
|
158
158
|
- `cancel_all_orders(self, symbol: Str = None, params={})`
|
|
159
159
|
- `cancel_order(self, id: str, symbol: Str = None, params={})`
|
|
160
|
-
- `cancel_orders(self, ids, symbol: Str = None, params={})`
|
|
160
|
+
- `cancel_orders(self, ids: List[str], symbol: Str = None, params={})`
|
|
161
161
|
- `close_position(self, symbol: str, side: OrderSide = None, params={})`
|
|
162
162
|
- `describe(self)`
|
|
163
163
|
- `edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
|
|
@@ -26,7 +26,7 @@ sys.modules['ccxt'] = ccxt_module
|
|
|
26
26
|
|
|
27
27
|
# ----------------------------------------------------------------------------
|
|
28
28
|
|
|
29
|
-
__version__ = '4.5.
|
|
29
|
+
__version__ = '4.5.15'
|
|
30
30
|
|
|
31
31
|
# ----------------------------------------------------------------------------
|
|
32
32
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# -----------------------------------------------------------------------------
|
|
4
4
|
|
|
5
|
-
__version__ = '4.5.
|
|
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
|
|
|
@@ -711,6 +711,12 @@ class Exchange(BaseExchange):
|
|
|
711
711
|
async def un_watch_ticker(self, symbol: str, params={}):
|
|
712
712
|
raise NotSupported(self.id + ' unWatchTicker() is not supported yet')
|
|
713
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
|
+
|
|
714
720
|
async def fetch_deposit_addresses(self, codes: Strings = None, params={}):
|
|
715
721
|
raise NotSupported(self.id + ' fetchDepositAddresses() is not supported yet')
|
|
716
722
|
|
|
@@ -1539,6 +1545,9 @@ class Exchange(BaseExchange):
|
|
|
1539
1545
|
async def cancel_order_ws(self, id: str, symbol: Str = None, params={}):
|
|
1540
1546
|
raise NotSupported(self.id + ' cancelOrderWs() is not supported yet')
|
|
1541
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
|
+
|
|
1542
1551
|
async def cancel_orders_ws(self, ids: List[str], symbol: Str = None, params={}):
|
|
1543
1552
|
raise NotSupported(self.id + ' cancelOrdersWs() is not supported yet')
|
|
1544
1553
|
|
|
@@ -1554,7 +1563,7 @@ class Exchange(BaseExchange):
|
|
|
1554
1563
|
async def cancel_all_orders_ws(self, symbol: Str = None, params={}):
|
|
1555
1564
|
raise NotSupported(self.id + ' cancelAllOrdersWs() is not supported yet')
|
|
1556
1565
|
|
|
1557
|
-
async def cancel_unified_order(self, order, params={}):
|
|
1566
|
+
async def cancel_unified_order(self, order: Order, params={}):
|
|
1558
1567
|
return self.cancel_order(self.safe_string(order, 'id'), self.safe_string(order, 'symbol'), params)
|
|
1559
1568
|
|
|
1560
1569
|
async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
@@ -2181,3 +2190,80 @@ class Exchange(BaseExchange):
|
|
|
2181
2190
|
:returns dict: a `transfer structure <https://docs.ccxt.com/#/?id=transfer-structure>`
|
|
2182
2191
|
"""
|
|
2183
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
|
|
@@ -83,6 +83,12 @@ class Client(object):
|
|
|
83
83
|
del self.rejections[message_hash]
|
|
84
84
|
return future
|
|
85
85
|
|
|
86
|
+
def reusable_future(self, message_hash):
|
|
87
|
+
return self.future(message_hash) # only used in go
|
|
88
|
+
|
|
89
|
+
def reusableFuture(self, message_hash):
|
|
90
|
+
return self.future(message_hash) # only used in go
|
|
91
|
+
|
|
86
92
|
def resolve(self, result, message_hash):
|
|
87
93
|
if self.verbose and message_hash is None:
|
|
88
94
|
self.log(iso8601(milliseconds()), 'resolve received None messageHash')
|
|
@@ -111,7 +117,7 @@ class Client(object):
|
|
|
111
117
|
self.log(iso8601(milliseconds()), 'receive loop')
|
|
112
118
|
if not self.closed():
|
|
113
119
|
# let's drain the aiohttp buffer to avoid latency
|
|
114
|
-
if len(self.buffer) > 1:
|
|
120
|
+
if self.buffer and len(self.buffer) > 1:
|
|
115
121
|
size_delta = 0
|
|
116
122
|
while len(self.buffer) > 1:
|
|
117
123
|
message, size = self.buffer.popleft()
|
|
@@ -180,6 +186,16 @@ class Client(object):
|
|
|
180
186
|
# looks like they exposed it in C
|
|
181
187
|
# this means we can bypass it
|
|
182
188
|
# https://github.com/aio-libs/aiohttp/blob/master/aiohttp/_websocket/reader_c.pxd#L53C24-L53C31
|
|
189
|
+
# these checks are necessary to protect these errors: AttributeError: 'NoneType' object has no attribute '_buffer'
|
|
190
|
+
# upon getting an error message
|
|
191
|
+
if self.connection is None:
|
|
192
|
+
return None
|
|
193
|
+
if self.connection._conn is None:
|
|
194
|
+
return None
|
|
195
|
+
if self.connection._conn.protocol is None:
|
|
196
|
+
return None
|
|
197
|
+
if self.connection._conn.protocol._payload is None:
|
|
198
|
+
return None
|
|
183
199
|
return self.connection._conn.protocol._payload._buffer
|
|
184
200
|
|
|
185
201
|
def connect(self, session, backoff_delay=0):
|
|
@@ -1601,7 +1601,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
|
1601
1601
|
self.safe_number(ohlcv, 'value'),
|
|
1602
1602
|
]
|
|
1603
1603
|
|
|
1604
|
-
async def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
1604
|
+
async def fetch_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
1605
1605
|
"""
|
|
1606
1606
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
1607
1607
|
|
|
@@ -2617,7 +2617,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
|
2617
2617
|
results.append(order)
|
|
2618
2618
|
return results
|
|
2619
2619
|
|
|
2620
|
-
async def cancel_orders(self, ids, symbol: Str = None, params={}):
|
|
2620
|
+
async def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
|
2621
2621
|
"""
|
|
2622
2622
|
cancel multiple orders
|
|
2623
2623
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# -----------------------------------------------------------------------------
|
|
6
6
|
|
|
7
|
-
__version__ = '4.5.
|
|
7
|
+
__version__ = '4.5.15'
|
|
8
8
|
|
|
9
9
|
# -----------------------------------------------------------------------------
|
|
10
10
|
|
|
@@ -33,7 +33,7 @@ from ccxt.base.decimal_to_precision import decimal_to_precision
|
|
|
33
33
|
from ccxt.base.decimal_to_precision import DECIMAL_PLACES, TICK_SIZE, NO_PADDING, TRUNCATE, ROUND, ROUND_UP, ROUND_DOWN, SIGNIFICANT_DIGITS
|
|
34
34
|
from ccxt.base.decimal_to_precision import number_to_string
|
|
35
35
|
from ccxt.base.precise import Precise
|
|
36
|
-
from ccxt.base.types import ConstructorArgs, BalanceAccount, Currency, IndexType, OrderSide, OrderType, Trade, OrderRequest, Market, MarketType, Str, Num, Strings, CancellationRequest, Bool
|
|
36
|
+
from ccxt.base.types import ConstructorArgs, BalanceAccount, Currency, IndexType, OrderSide, OrderType, Trade, OrderRequest, Market, MarketType, Str, Num, Strings, CancellationRequest, Bool, Order
|
|
37
37
|
|
|
38
38
|
# -----------------------------------------------------------------------------
|
|
39
39
|
|
|
@@ -50,6 +50,11 @@ from cryptography.hazmat.primitives.serialization import load_pem_private_key
|
|
|
50
50
|
from ccxt.static_dependencies import ecdsa
|
|
51
51
|
from ccxt.static_dependencies import keccak
|
|
52
52
|
|
|
53
|
+
try:
|
|
54
|
+
import coincurve
|
|
55
|
+
except ImportError:
|
|
56
|
+
coincurve = None
|
|
57
|
+
|
|
53
58
|
# eddsa signing
|
|
54
59
|
try:
|
|
55
60
|
import axolotl_curve25519 as eddsa
|
|
@@ -1401,6 +1406,21 @@ class Exchange(object):
|
|
|
1401
1406
|
|
|
1402
1407
|
@staticmethod
|
|
1403
1408
|
def ecdsa(request, secret, algorithm='p256', hash=None, fixed_length=False):
|
|
1409
|
+
"""
|
|
1410
|
+
ECDSA signing with support for multiple algorithms and coincurve for SECP256K1.
|
|
1411
|
+
Args:
|
|
1412
|
+
request: The message to sign
|
|
1413
|
+
secret: The private key (hex string or PEM format)
|
|
1414
|
+
algorithm: The elliptic curve algorithm ('p192', 'p224', 'p256', 'p384', 'p521', 'secp256k1')
|
|
1415
|
+
hash: The hash function to use (defaults to algorithm-specific hash)
|
|
1416
|
+
fixed_length: Whether to ensure fixed-length signatures (for deterministic signing)
|
|
1417
|
+
Note: coincurve produces non-deterministic signatures
|
|
1418
|
+
Returns:
|
|
1419
|
+
dict: {'r': r_value, 's': s_value, 'v': v_value}
|
|
1420
|
+
Note:
|
|
1421
|
+
If coincurve is not available or fails for SECP256K1, the method automatically
|
|
1422
|
+
falls back to the standard ecdsa implementation.
|
|
1423
|
+
"""
|
|
1404
1424
|
# your welcome - frosty00
|
|
1405
1425
|
algorithms = {
|
|
1406
1426
|
'p192': [ecdsa.NIST192p, 'sha256'],
|
|
@@ -1412,6 +1432,14 @@ class Exchange(object):
|
|
|
1412
1432
|
}
|
|
1413
1433
|
if algorithm not in algorithms:
|
|
1414
1434
|
raise ArgumentsRequired(algorithm + ' is not a supported algorithm')
|
|
1435
|
+
# Use coincurve for SECP256K1 if available
|
|
1436
|
+
if algorithm == 'secp256k1' and coincurve is not None:
|
|
1437
|
+
try:
|
|
1438
|
+
return Exchange._ecdsa_secp256k1_coincurve(request, secret, hash, fixed_length)
|
|
1439
|
+
except Exception:
|
|
1440
|
+
# If coincurve fails, fall back to ecdsa implementation
|
|
1441
|
+
pass
|
|
1442
|
+
# Fall back to original ecdsa implementation for other algorithms or when deterministic signing is needed
|
|
1415
1443
|
curve_info = algorithms[algorithm]
|
|
1416
1444
|
hash_function = getattr(hashlib, curve_info[1])
|
|
1417
1445
|
encoded_request = Exchange.encode(request)
|
|
@@ -1447,6 +1475,53 @@ class Exchange(object):
|
|
|
1447
1475
|
|
|
1448
1476
|
|
|
1449
1477
|
@staticmethod
|
|
1478
|
+
def _ecdsa_secp256k1_coincurve(request, secret, hash=None, fixed_length=False):
|
|
1479
|
+
"""
|
|
1480
|
+
Use coincurve library for SECP256K1 ECDSA signing.
|
|
1481
|
+
This method provides faster SECP256K1 signing using the coincurve library,
|
|
1482
|
+
which is a Python binding to libsecp256k1. This implementation produces
|
|
1483
|
+
deterministic signatures (RFC 6979) using coincurve's sign_recoverable method.
|
|
1484
|
+
Args:
|
|
1485
|
+
request: The message to sign
|
|
1486
|
+
secret: The private key (hex string or PEM format)
|
|
1487
|
+
hash: The hash function to use
|
|
1488
|
+
fixed_length: Not used in coincurve implementation (signatures are always fixed length)
|
|
1489
|
+
Returns:
|
|
1490
|
+
dict: {'r': r_value, 's': s_value, 'v': v_value}
|
|
1491
|
+
Raises:
|
|
1492
|
+
ArgumentsRequired: If coincurve library is not available
|
|
1493
|
+
"""
|
|
1494
|
+
encoded_request = Exchange.encode(request)
|
|
1495
|
+
if hash is not None:
|
|
1496
|
+
digest = Exchange.hash(encoded_request, hash, 'binary')
|
|
1497
|
+
else:
|
|
1498
|
+
digest = base64.b16decode(encoded_request, casefold=True)
|
|
1499
|
+
if isinstance(secret, str):
|
|
1500
|
+
secret = Exchange.encode(secret)
|
|
1501
|
+
# Handle PEM format
|
|
1502
|
+
if secret.find(b'-----BEGIN EC PRIVATE KEY-----') > -1:
|
|
1503
|
+
secret = base64.b16decode(secret.replace(b'-----BEGIN EC PRIVATE KEY-----', b'').replace(b'-----END EC PRIVATE KEY-----', b'').replace(b'\n', b'').replace(b'\r', b''), casefold=True)
|
|
1504
|
+
else:
|
|
1505
|
+
# Assume hex format
|
|
1506
|
+
secret = base64.b16decode(secret, casefold=True)
|
|
1507
|
+
# Create coincurve PrivateKey
|
|
1508
|
+
private_key = coincurve.PrivateKey(secret)
|
|
1509
|
+
# Sign the digest using sign_recoverable which produces deterministic signatures (RFC 6979)
|
|
1510
|
+
# The signature format is: 32 bytes r + 32 bytes s + 1 byte recovery_id (v)
|
|
1511
|
+
signature = private_key.sign_recoverable(digest, hasher=None)
|
|
1512
|
+
# Extract r, s, and v from the recoverable signature (65 bytes total)
|
|
1513
|
+
r_binary = signature[:32]
|
|
1514
|
+
s_binary = signature[32:64]
|
|
1515
|
+
v = signature[64]
|
|
1516
|
+
# Convert to hex strings
|
|
1517
|
+
r = Exchange.decode(base64.b16encode(r_binary)).lower()
|
|
1518
|
+
s = Exchange.decode(base64.b16encode(s_binary)).lower()
|
|
1519
|
+
return {
|
|
1520
|
+
'r': r,
|
|
1521
|
+
's': s,
|
|
1522
|
+
'v': v,
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1450
1525
|
def binary_to_urlencoded_base64(data: bytes) -> str:
|
|
1451
1526
|
encoded = base64.urlsafe_b64encode(data).decode("utf-8")
|
|
1452
1527
|
return encoded.rstrip("=")
|
|
@@ -2673,6 +2748,12 @@ class Exchange(object):
|
|
|
2673
2748
|
def un_watch_ticker(self, symbol: str, params={}):
|
|
2674
2749
|
raise NotSupported(self.id + ' unWatchTicker() is not supported yet')
|
|
2675
2750
|
|
|
2751
|
+
def un_watch_mark_price(self, symbol: str, params={}):
|
|
2752
|
+
raise NotSupported(self.id + ' unWatchMarkPrice() is not supported yet')
|
|
2753
|
+
|
|
2754
|
+
def un_watch_mark_prices(self, symbols: Strings = None, params={}):
|
|
2755
|
+
raise NotSupported(self.id + ' unWatchMarkPrices() is not supported yet')
|
|
2756
|
+
|
|
2676
2757
|
def fetch_deposit_addresses(self, codes: Strings = None, params={}):
|
|
2677
2758
|
raise NotSupported(self.id + ' fetchDepositAddresses() is not supported yet')
|
|
2678
2759
|
|
|
@@ -2942,7 +3023,7 @@ class Exchange(object):
|
|
|
2942
3023
|
'delay': 0.001,
|
|
2943
3024
|
'capacity': 1,
|
|
2944
3025
|
'cost': 1,
|
|
2945
|
-
'maxCapacity': 1000,
|
|
3026
|
+
'maxCapacity': self.safe_integer(self.options, 'maxRequestsQueue', 1000),
|
|
2946
3027
|
'refillRate': refillRate,
|
|
2947
3028
|
}
|
|
2948
3029
|
existingBucket = {} if (self.tokenBucket is None) else self.tokenBucket
|
|
@@ -3024,33 +3105,33 @@ class Exchange(object):
|
|
|
3024
3105
|
featureBlock['symbolRequired'] = self.in_array(key, ['createOrder', 'createOrders', 'fetchOHLCV'])
|
|
3025
3106
|
return featuresObj
|
|
3026
3107
|
|
|
3027
|
-
def feature_value(self, symbol: str, methodName: Str = None, paramName: Str = None,
|
|
3108
|
+
def feature_value(self, symbol: str, methodName: Str = None, paramName: Str = None, defaultValue: Any = None):
|
|
3028
3109
|
"""
|
|
3029
3110
|
self method is a very deterministic to help users to know what feature is supported by the exchange
|
|
3030
3111
|
:param str [symbol]: unified symbol
|
|
3031
3112
|
:param str [methodName]: view currently supported methods: https://docs.ccxt.com/#/README?id=features
|
|
3032
|
-
:param str [paramName]: unified param value(check docs for supported param names)
|
|
3033
|
-
:param str [subParamName]: unified sub-param value(eg. stopLoss->triggerPriceType)
|
|
3113
|
+
:param str [paramName]: unified param value, like: `triggerPrice`, `stopLoss.triggerPrice`(check docs for supported param names)
|
|
3034
3114
|
:param dict [defaultValue]: return default value if no result found
|
|
3035
3115
|
:returns dict: returns feature value
|
|
3036
3116
|
"""
|
|
3037
3117
|
market = self.market(symbol)
|
|
3038
|
-
return self.feature_value_by_type(market['type'], market['subType'], methodName, paramName,
|
|
3118
|
+
return self.feature_value_by_type(market['type'], market['subType'], methodName, paramName, defaultValue)
|
|
3039
3119
|
|
|
3040
|
-
def feature_value_by_type(self, marketType: str, subType: Str, methodName: Str = None, paramName: Str = None,
|
|
3120
|
+
def feature_value_by_type(self, marketType: str, subType: Str, methodName: Str = None, paramName: Str = None, defaultValue: Any = None):
|
|
3041
3121
|
"""
|
|
3042
3122
|
self method is a very deterministic to help users to know what feature is supported by the exchange
|
|
3043
3123
|
:param str [marketType]: supported only: "spot", "swap", "future"
|
|
3044
3124
|
:param str [subType]: supported only: "linear", "inverse"
|
|
3045
3125
|
:param str [methodName]: view currently supported methods: https://docs.ccxt.com/#/README?id=features
|
|
3046
3126
|
:param str [paramName]: unified param value(check docs for supported param names)
|
|
3047
|
-
:param str [subParamName]: unified sub-param value(eg. stopLoss->triggerPriceType)
|
|
3048
3127
|
:param dict [defaultValue]: return default value if no result found
|
|
3049
3128
|
:returns dict: returns feature value
|
|
3050
3129
|
"""
|
|
3051
3130
|
# if exchange does not yet have features manually implemented
|
|
3052
3131
|
if self.features is None:
|
|
3053
3132
|
return defaultValue
|
|
3133
|
+
if marketType is None:
|
|
3134
|
+
return defaultValue # marketType is required
|
|
3054
3135
|
# if marketType(e.g. 'option') does not exist in features
|
|
3055
3136
|
if not (marketType in self.features):
|
|
3056
3137
|
return defaultValue # unsupported marketType, check "exchange.features" for details
|
|
@@ -3070,7 +3151,7 @@ class Exchange(object):
|
|
|
3070
3151
|
methodsContainer = self.features[marketType][subType]
|
|
3071
3152
|
# if user wanted only marketType and didn't provide methodName, eg: featureIsSupported('spot')
|
|
3072
3153
|
if methodName is None:
|
|
3073
|
-
return methodsContainer
|
|
3154
|
+
return defaultValue if (defaultValue is not None) else methodsContainer
|
|
3074
3155
|
if not (methodName in methodsContainer):
|
|
3075
3156
|
return defaultValue # unsupported method, check "exchange.features" for details')
|
|
3076
3157
|
methodDict = methodsContainer[methodName]
|
|
@@ -3078,21 +3159,24 @@ class Exchange(object):
|
|
|
3078
3159
|
return defaultValue
|
|
3079
3160
|
# if user wanted only method and didn't provide `paramName`, eg: featureIsSupported('swap', 'linear', 'createOrder')
|
|
3080
3161
|
if paramName is None:
|
|
3081
|
-
return methodDict
|
|
3082
|
-
|
|
3162
|
+
return defaultValue if (defaultValue is not None) else methodDict
|
|
3163
|
+
splited = paramName.split('.') # can be only parent key(`stopLoss`) or with child(`stopLoss.triggerPrice`)
|
|
3164
|
+
parentKey = splited[0]
|
|
3165
|
+
subKey = self.safe_string(splited, 1)
|
|
3166
|
+
if not (parentKey in methodDict):
|
|
3083
3167
|
return defaultValue # unsupported paramName, check "exchange.features" for details')
|
|
3084
|
-
dictionary = self.safe_dict(methodDict,
|
|
3168
|
+
dictionary = self.safe_dict(methodDict, parentKey)
|
|
3085
3169
|
if dictionary is None:
|
|
3086
3170
|
# if the value is not dictionary but a scalar value(or None), return
|
|
3087
|
-
return methodDict[
|
|
3171
|
+
return methodDict[parentKey]
|
|
3088
3172
|
else:
|
|
3089
|
-
# return, when calling without
|
|
3090
|
-
if
|
|
3091
|
-
return methodDict[
|
|
3092
|
-
# raise an exception for unsupported
|
|
3093
|
-
if not (
|
|
3094
|
-
return defaultValue # unsupported
|
|
3095
|
-
return methodDict[
|
|
3173
|
+
# return, when calling without subKey eg: featureValueByType('spot', None, 'createOrder', 'stopLoss')
|
|
3174
|
+
if subKey is None:
|
|
3175
|
+
return methodDict[parentKey]
|
|
3176
|
+
# raise an exception for unsupported subKey
|
|
3177
|
+
if not (subKey in methodDict[parentKey]):
|
|
3178
|
+
return defaultValue # unsupported subKey, check "exchange.features" for details
|
|
3179
|
+
return methodDict[parentKey][subKey]
|
|
3096
3180
|
|
|
3097
3181
|
def orderbook_checksum_message(self, symbol: Str):
|
|
3098
3182
|
return symbol + ' = False'
|
|
@@ -5590,6 +5674,9 @@ class Exchange(object):
|
|
|
5590
5674
|
def cancel_order_ws(self, id: str, symbol: Str = None, params={}):
|
|
5591
5675
|
raise NotSupported(self.id + ' cancelOrderWs() is not supported yet')
|
|
5592
5676
|
|
|
5677
|
+
def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
|
5678
|
+
raise NotSupported(self.id + ' cancelOrders() is not supported yet')
|
|
5679
|
+
|
|
5593
5680
|
def cancel_orders_ws(self, ids: List[str], symbol: Str = None, params={}):
|
|
5594
5681
|
raise NotSupported(self.id + ' cancelOrdersWs() is not supported yet')
|
|
5595
5682
|
|
|
@@ -5605,7 +5692,7 @@ class Exchange(object):
|
|
|
5605
5692
|
def cancel_all_orders_ws(self, symbol: Str = None, params={}):
|
|
5606
5693
|
raise NotSupported(self.id + ' cancelAllOrdersWs() is not supported yet')
|
|
5607
5694
|
|
|
5608
|
-
def cancel_unified_order(self, order, params={}):
|
|
5695
|
+
def cancel_unified_order(self, order: Order, params={}):
|
|
5609
5696
|
return self.cancel_order(self.safe_string(order, 'id'), self.safe_string(order, 'symbol'), params)
|
|
5610
5697
|
|
|
5611
5698
|
def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
@@ -7164,6 +7251,83 @@ class Exchange(object):
|
|
|
7164
7251
|
"""
|
|
7165
7252
|
raise NotSupported(self.id + ' fetchTransfers() is not supported yet')
|
|
7166
7253
|
|
|
7254
|
+
def un_watch_ohlcv(self, symbol: str, timeframe: str = '1m', params={}):
|
|
7255
|
+
"""
|
|
7256
|
+
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
7257
|
+
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
|
7258
|
+
:param str timeframe: the length of time each candle represents
|
|
7259
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
7260
|
+
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
|
7261
|
+
"""
|
|
7262
|
+
raise NotSupported(self.id + ' unWatchOHLCV() is not supported yet')
|
|
7263
|
+
|
|
7264
|
+
def watch_mark_price(self, symbol: str, params={}):
|
|
7265
|
+
"""
|
|
7266
|
+
watches a mark price for a specific market
|
|
7267
|
+
:param str symbol: unified symbol of the market to fetch the ticker for
|
|
7268
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
7269
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
7270
|
+
"""
|
|
7271
|
+
raise NotSupported(self.id + ' watchMarkPrice() is not supported yet')
|
|
7272
|
+
|
|
7273
|
+
def watch_mark_prices(self, symbols: Strings = None, params={}):
|
|
7274
|
+
"""
|
|
7275
|
+
watches the mark price for all markets
|
|
7276
|
+
:param str[] symbols: unified symbol of the market to fetch the ticker for
|
|
7277
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
7278
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
7279
|
+
"""
|
|
7280
|
+
raise NotSupported(self.id + ' watchMarkPrices() is not supported yet')
|
|
7281
|
+
|
|
7282
|
+
def withdraw_ws(self, code: str, amount: float, address: str, tag: Str = None, params={}):
|
|
7283
|
+
"""
|
|
7284
|
+
make a withdrawal
|
|
7285
|
+
:param str code: unified currency code
|
|
7286
|
+
:param float amount: the amount to withdraw
|
|
7287
|
+
:param str address: the address to withdraw to
|
|
7288
|
+
:param str tag:
|
|
7289
|
+
:param dict [params]: extra parameters specific to the bitvavo api endpoint
|
|
7290
|
+
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
|
|
7291
|
+
"""
|
|
7292
|
+
raise NotSupported(self.id + ' withdrawWs() is not supported yet')
|
|
7293
|
+
|
|
7294
|
+
def un_watch_my_trades(self, symbol: Str = None, params={}):
|
|
7295
|
+
"""
|
|
7296
|
+
unWatches information on multiple trades made by the user
|
|
7297
|
+
:param str symbol: unified market symbol of the market orders were made in
|
|
7298
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
7299
|
+
:returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
|
|
7300
|
+
"""
|
|
7301
|
+
raise NotSupported(self.id + ' unWatchMyTrades() is not supported yet')
|
|
7302
|
+
|
|
7303
|
+
def create_orders_ws(self, orders: List[OrderRequest], params={}):
|
|
7304
|
+
"""
|
|
7305
|
+
create a list of trade orders
|
|
7306
|
+
: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
|
|
7307
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
7308
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
|
7309
|
+
"""
|
|
7310
|
+
raise NotSupported(self.id + ' createOrdersWs() is not supported yet')
|
|
7311
|
+
|
|
7312
|
+
def fetch_orders_by_status_ws(self, status: str, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
|
7313
|
+
"""
|
|
7314
|
+
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
|
7315
|
+
:param str symbol: unified symbol of the market to fetch the order book for
|
|
7316
|
+
:param int [limit]: the maximum amount of order book entries to return
|
|
7317
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
7318
|
+
:returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
|
|
7319
|
+
"""
|
|
7320
|
+
raise NotSupported(self.id + ' fetchOrdersByStatusWs() is not supported yet')
|
|
7321
|
+
|
|
7322
|
+
def un_watch_bids_asks(self, symbols: Strings = None, params={}):
|
|
7323
|
+
"""
|
|
7324
|
+
unWatches best bid & ask for symbols
|
|
7325
|
+
:param str[] symbols: unified symbol of the market to fetch the ticker for
|
|
7326
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
|
7327
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
|
7328
|
+
"""
|
|
7329
|
+
raise NotSupported(self.id + ' unWatchBidsAsks() is not supported yet')
|
|
7330
|
+
|
|
7167
7331
|
def clean_unsubscription(self, client, subHash: str, unsubHash: str, subHashIsPrefix=False):
|
|
7168
7332
|
if unsubHash in client.subscriptions:
|
|
7169
7333
|
del client.subscriptions[unsubHash]
|
|
@@ -1600,7 +1600,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
|
1600
1600
|
self.safe_number(ohlcv, 'value'),
|
|
1601
1601
|
]
|
|
1602
1602
|
|
|
1603
|
-
def fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
1603
|
+
def fetch_ohlcv(self, symbol: str, timeframe: str = '1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
|
1604
1604
|
"""
|
|
1605
1605
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
1606
1606
|
|
|
@@ -2616,7 +2616,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
|
2616
2616
|
results.append(order)
|
|
2617
2617
|
return results
|
|
2618
2618
|
|
|
2619
|
-
def cancel_orders(self, ids, symbol: Str = None, params={}):
|
|
2619
|
+
def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
|
2620
2620
|
"""
|
|
2621
2621
|
cancel multiple orders
|
|
2622
2622
|
|