crypto-com-sdk 0.0.67__tar.gz → 0.0.69__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.
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/PKG-INFO +6 -1
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/README.md +5 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/pyproject.toml +1 -1
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/__init__.py +1 -1
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/abstract/cryptocom.py +2 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/__init__.py +1 -1
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/exchange.py +6 -3
- crypto_com_sdk-0.0.69/src/cryptocom/ccxt/async_support/base/ws/client.py +323 -0
- crypto_com_sdk-0.0.69/src/cryptocom/ccxt/async_support/base/ws/future.py +42 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/cryptocom.py +66 -2
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/base/exchange.py +20 -8
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/cryptocom.py +66 -2
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/pro/__init__.py +1 -127
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/pro/cryptocom.py +27 -0
- crypto_com_sdk-0.0.67/src/cryptocom/ccxt/async_support/base/ws/aiohttp_client.py +0 -147
- crypto_com_sdk-0.0.67/src/cryptocom/ccxt/async_support/base/ws/client.py +0 -214
- crypto_com_sdk-0.0.67/src/cryptocom/ccxt/async_support/base/ws/future.py +0 -69
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/.gitignore +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/throttler.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/ws/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/ws/cache.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/ws/functions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/ws/order_book.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/ws/order_book_side.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/base/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/base/decimal_to_precision.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/base/errors.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/base/precise.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/base/types.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/README.md +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/_version.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/curves.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/der.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/keys.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ecdsa/util.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/abi.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/base.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/codec.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/constants.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/packed.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/registry.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/account/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/account/messages.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/abi.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/bls.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/enums.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/evm.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/networks.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/abi.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/address.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/currency.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/debug.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/functional.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/logging.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/types.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/ethereum/utils/units.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/keccak/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/keccak/keccak.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/ast_utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/common.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/exceptions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/grammar.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/grammars/common.lark +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/grammars/lark.lark +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/grammars/python.lark +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/grammars/unicode.lark +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/indenter.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/lark.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/lexer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/load_grammar.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parser_frontends.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/cyk.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/earley.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/parsers/xearley.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/reconstruct.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/tools/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/tools/nearley.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/tools/serialize.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/tools/standalone.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/tree.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/tree_matcher.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/tree_templates.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/lark/visitors.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/base.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/class_registry.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/decorators.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/error_store.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/exceptions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/fields.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/orderedset.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/schema.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/types.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/validate.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow/warnings.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/_cmsgpack.pyx +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/_packer.pyx +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/_unpacker.pyx +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/buff_converter.h +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/exceptions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/ext.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/fallback.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/pack.h +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/pack_template.h +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/sysdep.h +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/unpack.h +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/unpack_define.h +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/msgpack/unpack_template.h +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/parsimonious/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/parsimonious/exceptions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/parsimonious/expressions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/parsimonious/grammar.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/parsimonious/nodes.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/parsimonious/utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v0/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v0/model.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v0/parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v0/schemas.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v0/shape.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v1/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v1/core_structures.json +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v1/model.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v1/parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v1/parser_transformer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v1/schemas.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v1/shape.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v2/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v2/model.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v2/parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v2/parser_transformer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v2/schemas.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/abi/v2/shape.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/felt.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/common.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/constants.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/hash/address.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/hash/selector.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/hash/storage.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/hash/utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/models/typed_data.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/_context.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/errors.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/factory.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/utils/iterable.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/utils/schema.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starkware/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starkware/crypto/signature.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/starkware/crypto/utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/sympy/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/sympy/core/intfunc.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/sympy/external/gmpy.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/sympy/external/importtools.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/sympy/external/ntheory.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/_signatures.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/_version.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/compatibility.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/curried/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/curried/operator.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/dicttoolz.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/functoolz.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/itertoolz.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/recipes.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/toolz/utils.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
- {crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: crypto-com-sdk
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.69
|
4
4
|
Summary: cryptocom crypto exchange api client
|
5
5
|
Project-URL: Homepage, https://github.com/ccxt/ccxt
|
6
6
|
Project-URL: Issues, https://github.com/ccxt/ccxt
|
@@ -162,12 +162,15 @@ You can also construct custom requests to available "implicit" endpoints
|
|
162
162
|
- `close_position(self, symbol: str, side: OrderSide = None, params={})`
|
163
163
|
- `custom_handle_margin_mode_and_params(self, methodName, params={})`
|
164
164
|
- `describe(self)`
|
165
|
+
- `edit_order_request(self, id: str, symbol: str, amount: float, price: Num = None, params={})`
|
166
|
+
- `edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
|
165
167
|
- `nonce(self)`
|
166
168
|
- `params_to_string(self, object, level)`
|
167
169
|
- `withdraw(self, code: str, amount: float, address: str, tag=None, params={})`
|
168
170
|
|
169
171
|
### REST Raw
|
170
172
|
|
173
|
+
- `base_public_get_v1_public_get_announcements(request)`
|
171
174
|
- `v1_public_get_public_auth(request)`
|
172
175
|
- `v1_public_get_public_get_instruments(request)`
|
173
176
|
- `v1_public_get_public_get_book(request)`
|
@@ -185,6 +188,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
185
188
|
- `v1_private_post_private_user_balance_history(request)`
|
186
189
|
- `v1_private_post_private_get_positions(request)`
|
187
190
|
- `v1_private_post_private_create_order(request)`
|
191
|
+
- `v1_private_post_private_amend_order(request)`
|
188
192
|
- `v1_private_post_private_create_order_list(request)`
|
189
193
|
- `v1_private_post_private_cancel_order(request)`
|
190
194
|
- `v1_private_post_private_cancel_order_list(request)`
|
@@ -312,6 +316,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
312
316
|
- `load_positions_snapshot(self, client, messageHash)`
|
313
317
|
- `watch_balance(self, params={})`
|
314
318
|
- `create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})`
|
319
|
+
- `edit_order_ws(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
|
315
320
|
- `cancel_order_ws(self, id: str, symbol: Str = None, params={})`
|
316
321
|
- `cancel_all_orders_ws(self, symbol: Str = None, params={})`
|
317
322
|
- `watch_public(self, messageHash, params={})`
|
@@ -143,12 +143,15 @@ You can also construct custom requests to available "implicit" endpoints
|
|
143
143
|
- `close_position(self, symbol: str, side: OrderSide = None, params={})`
|
144
144
|
- `custom_handle_margin_mode_and_params(self, methodName, params={})`
|
145
145
|
- `describe(self)`
|
146
|
+
- `edit_order_request(self, id: str, symbol: str, amount: float, price: Num = None, params={})`
|
147
|
+
- `edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
|
146
148
|
- `nonce(self)`
|
147
149
|
- `params_to_string(self, object, level)`
|
148
150
|
- `withdraw(self, code: str, amount: float, address: str, tag=None, params={})`
|
149
151
|
|
150
152
|
### REST Raw
|
151
153
|
|
154
|
+
- `base_public_get_v1_public_get_announcements(request)`
|
152
155
|
- `v1_public_get_public_auth(request)`
|
153
156
|
- `v1_public_get_public_get_instruments(request)`
|
154
157
|
- `v1_public_get_public_get_book(request)`
|
@@ -166,6 +169,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
166
169
|
- `v1_private_post_private_user_balance_history(request)`
|
167
170
|
- `v1_private_post_private_get_positions(request)`
|
168
171
|
- `v1_private_post_private_create_order(request)`
|
172
|
+
- `v1_private_post_private_amend_order(request)`
|
169
173
|
- `v1_private_post_private_create_order_list(request)`
|
170
174
|
- `v1_private_post_private_cancel_order(request)`
|
171
175
|
- `v1_private_post_private_cancel_order_list(request)`
|
@@ -293,6 +297,7 @@ You can also construct custom requests to available "implicit" endpoints
|
|
293
297
|
- `load_positions_snapshot(self, client, messageHash)`
|
294
298
|
- `watch_balance(self, params={})`
|
295
299
|
- `create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})`
|
300
|
+
- `edit_order_ws(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={})`
|
296
301
|
- `cancel_order_ws(self, id: str, symbol: Str = None, params={})`
|
297
302
|
- `cancel_all_orders_ws(self, symbol: Str = None, params={})`
|
298
303
|
- `watch_public(self, messageHash, params={})`
|
@@ -26,7 +26,7 @@ sys.modules['ccxt'] = ccxt_module
|
|
26
26
|
|
27
27
|
# ----------------------------------------------------------------------------
|
28
28
|
|
29
|
-
__version__ = '4.4.
|
29
|
+
__version__ = '4.4.91'
|
30
30
|
|
31
31
|
# ----------------------------------------------------------------------------
|
32
32
|
|
@@ -2,6 +2,7 @@ from ccxt.base.types import Entry
|
|
2
2
|
|
3
3
|
|
4
4
|
class ImplicitAPI:
|
5
|
+
base_public_get_v1_public_get_announcements = basePublicGetV1PublicGetAnnouncements = Entry('v1/public/get-announcements', ['base', 'public'], 'GET', {'cost': 1})
|
5
6
|
v1_public_get_public_auth = v1PublicGetPublicAuth = Entry('public/auth', ['v1', 'public'], 'GET', {'cost': 3.3333333333333335})
|
6
7
|
v1_public_get_public_get_instruments = v1PublicGetPublicGetInstruments = Entry('public/get-instruments', ['v1', 'public'], 'GET', {'cost': 3.3333333333333335})
|
7
8
|
v1_public_get_public_get_book = v1PublicGetPublicGetBook = Entry('public/get-book', ['v1', 'public'], 'GET', {'cost': 1})
|
@@ -19,6 +20,7 @@ class ImplicitAPI:
|
|
19
20
|
v1_private_post_private_user_balance_history = v1PrivatePostPrivateUserBalanceHistory = Entry('private/user-balance-history', ['v1', 'private'], 'POST', {'cost': 3.3333333333333335})
|
20
21
|
v1_private_post_private_get_positions = v1PrivatePostPrivateGetPositions = Entry('private/get-positions', ['v1', 'private'], 'POST', {'cost': 3.3333333333333335})
|
21
22
|
v1_private_post_private_create_order = v1PrivatePostPrivateCreateOrder = Entry('private/create-order', ['v1', 'private'], 'POST', {'cost': 0.6666666666666666})
|
23
|
+
v1_private_post_private_amend_order = v1PrivatePostPrivateAmendOrder = Entry('private/amend-order', ['v1', 'private'], 'POST', {'cost': 1.3333333333333333})
|
22
24
|
v1_private_post_private_create_order_list = v1PrivatePostPrivateCreateOrderList = Entry('private/create-order-list', ['v1', 'private'], 'POST', {'cost': 3.3333333333333335})
|
23
25
|
v1_private_post_private_cancel_order = v1PrivatePostPrivateCancelOrder = Entry('private/cancel-order', ['v1', 'private'], 'POST', {'cost': 0.6666666666666666})
|
24
26
|
v1_private_post_private_cancel_order_list = v1PrivatePostPrivateCancelOrderList = Entry('private/cancel-order-list', ['v1', 'private'], 'POST', {'cost': 3.3333333333333335})
|
{crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/base/exchange.py
RENAMED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.4.
|
5
|
+
__version__ = '4.4.91'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -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
|
|
@@ -419,7 +419,7 @@ class Exchange(BaseExchange):
|
|
419
419
|
}, ws_options)
|
420
420
|
# we use aiohttp instead of fastClient now because of this
|
421
421
|
# https://github.com/ccxt/ccxt/pull/25995
|
422
|
-
self.clients[url] =
|
422
|
+
self.clients[url] = Client(url, on_message, on_error, on_close, on_connected, options)
|
423
423
|
# set http/s proxy (socks proxy should be set in other place)
|
424
424
|
httpProxy, httpsProxy, socksProxy = self.check_ws_proxy_settings()
|
425
425
|
if (httpProxy or httpsProxy):
|
@@ -638,6 +638,9 @@ class Exchange(BaseExchange):
|
|
638
638
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}):
|
639
639
|
raise NotSupported(self.id + ' watchTrades() is not supported yet')
|
640
640
|
|
641
|
+
async def un_watch_orders(self, symbol: Str = None, params={}):
|
642
|
+
raise NotSupported(self.id + ' unWatchOrders() is not supported yet')
|
643
|
+
|
641
644
|
async def un_watch_trades(self, symbol: str, params={}):
|
642
645
|
raise NotSupported(self.id + ' unWatchTrades() is not supported yet')
|
643
646
|
|
@@ -0,0 +1,323 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
orjson = None
|
4
|
+
try:
|
5
|
+
import orjson as orjson
|
6
|
+
except ImportError:
|
7
|
+
pass
|
8
|
+
|
9
|
+
import json
|
10
|
+
|
11
|
+
from asyncio import sleep, ensure_future, wait_for, TimeoutError, BaseEventLoop, Future as asyncioFuture
|
12
|
+
from .functions import milliseconds, iso8601, deep_extend, is_json_encoded_object
|
13
|
+
from ccxt import NetworkError, RequestTimeout
|
14
|
+
from ccxt.async_support.base.ws.future import Future
|
15
|
+
from ccxt.async_support.base.ws.functions import gunzip, inflate
|
16
|
+
from typing import Dict
|
17
|
+
|
18
|
+
from aiohttp import WSMsgType
|
19
|
+
|
20
|
+
|
21
|
+
class Client(object):
|
22
|
+
|
23
|
+
url = None
|
24
|
+
ws = None
|
25
|
+
futures: Dict[str, Future] = {}
|
26
|
+
options = {} # ws-specific options
|
27
|
+
subscriptions = {}
|
28
|
+
rejections = {}
|
29
|
+
on_message_callback = None
|
30
|
+
on_error_callback = None
|
31
|
+
on_close_callback = None
|
32
|
+
on_connected_callback = None
|
33
|
+
connectionStarted = None
|
34
|
+
connectionEstablished = None
|
35
|
+
isConnected = False
|
36
|
+
connectionTimeout = 10000 # ms, false to disable
|
37
|
+
connection = None
|
38
|
+
error = None # low-level networking exception, if any
|
39
|
+
connected = None # connection-related Future
|
40
|
+
keepAlive = 5000
|
41
|
+
heartbeat = True
|
42
|
+
maxPingPongMisses = 2.0 # how many missed pongs to raise a timeout
|
43
|
+
lastPong = None
|
44
|
+
ping = None # ping-function if defined
|
45
|
+
proxy = None
|
46
|
+
verbose = False # verbose output
|
47
|
+
gunzip = False
|
48
|
+
inflate = False
|
49
|
+
throttle = None
|
50
|
+
connecting = False
|
51
|
+
asyncio_loop: BaseEventLoop = None
|
52
|
+
ping_looper = None
|
53
|
+
|
54
|
+
def __init__(self, url, on_message_callback, on_error_callback, on_close_callback, on_connected_callback, config={}):
|
55
|
+
defaults = {
|
56
|
+
'url': url,
|
57
|
+
'futures': {},
|
58
|
+
'subscriptions': {},
|
59
|
+
'rejections': {},
|
60
|
+
'on_message_callback': on_message_callback,
|
61
|
+
'on_error_callback': on_error_callback,
|
62
|
+
'on_close_callback': on_close_callback,
|
63
|
+
'on_connected_callback': on_connected_callback,
|
64
|
+
}
|
65
|
+
settings = {}
|
66
|
+
settings.update(defaults)
|
67
|
+
settings.update(config)
|
68
|
+
for key in settings:
|
69
|
+
if hasattr(self, key) and isinstance(getattr(self, key), dict):
|
70
|
+
setattr(self, key, deep_extend(getattr(self, key), settings[key]))
|
71
|
+
else:
|
72
|
+
setattr(self, key, settings[key])
|
73
|
+
# connection-related Future
|
74
|
+
self.connected = Future()
|
75
|
+
|
76
|
+
def future(self, message_hash):
|
77
|
+
if message_hash not in self.futures or self.futures[message_hash].cancelled():
|
78
|
+
self.futures[message_hash] = Future()
|
79
|
+
future = self.futures[message_hash]
|
80
|
+
if message_hash in self.rejections:
|
81
|
+
future.reject(self.rejections[message_hash])
|
82
|
+
del self.rejections[message_hash]
|
83
|
+
return future
|
84
|
+
|
85
|
+
def resolve(self, result, message_hash):
|
86
|
+
if self.verbose and message_hash is None:
|
87
|
+
self.log(iso8601(milliseconds()), 'resolve received None messageHash')
|
88
|
+
if message_hash in self.futures:
|
89
|
+
future = self.futures[message_hash]
|
90
|
+
future.resolve(result)
|
91
|
+
del self.futures[message_hash]
|
92
|
+
return result
|
93
|
+
|
94
|
+
def reject(self, result, message_hash=None):
|
95
|
+
if message_hash is not None:
|
96
|
+
if message_hash in self.futures:
|
97
|
+
future = self.futures[message_hash]
|
98
|
+
future.reject(result)
|
99
|
+
del self.futures[message_hash]
|
100
|
+
else:
|
101
|
+
self.rejections[message_hash] = result
|
102
|
+
else:
|
103
|
+
message_hashes = list(self.futures.keys())
|
104
|
+
for message_hash in message_hashes:
|
105
|
+
self.reject(result, message_hash)
|
106
|
+
return result
|
107
|
+
|
108
|
+
def receive_loop(self):
|
109
|
+
if self.verbose:
|
110
|
+
self.log(iso8601(milliseconds()), 'receive loop')
|
111
|
+
if not self.closed():
|
112
|
+
# let's drain the aiohttp buffer to avoid latency
|
113
|
+
if len(self.buffer) > 1:
|
114
|
+
size_delta = 0
|
115
|
+
while len(self.buffer) > 1:
|
116
|
+
message, size = self.buffer.popleft()
|
117
|
+
size_delta += size
|
118
|
+
self.handle_message(message)
|
119
|
+
# we must update the size of the last message inside WebSocketDataQueue
|
120
|
+
# self.receive() calls WebSocketDataQueue.read() that calls WebSocketDataQueue._read_from_buffer()
|
121
|
+
# which updates the size of the buffer, the _size will overflow and pause the transport
|
122
|
+
# make sure to set the enviroment variable AIOHTTP_NO_EXTENSIONS=Y to check
|
123
|
+
# print(self.connection._conn.protocol._payload._size)
|
124
|
+
self.buffer[0] = (self.buffer[0][0], self.buffer[0][1] + size_delta)
|
125
|
+
|
126
|
+
task = self.asyncio_loop.create_task(self.receive())
|
127
|
+
|
128
|
+
def after_interrupt(resolved: asyncioFuture):
|
129
|
+
exception = resolved.exception()
|
130
|
+
if exception is None:
|
131
|
+
self.handle_message(resolved.result())
|
132
|
+
self.asyncio_loop.call_soon(self.receive_loop)
|
133
|
+
else:
|
134
|
+
error = NetworkError(str(exception))
|
135
|
+
if self.verbose:
|
136
|
+
self.log(iso8601(milliseconds()), 'receive_loop', 'Exception', error)
|
137
|
+
self.reset(error)
|
138
|
+
|
139
|
+
task.add_done_callback(after_interrupt)
|
140
|
+
|
141
|
+
async def open(self, session, backoff_delay=0):
|
142
|
+
# exponential backoff for consequent connections if necessary
|
143
|
+
if backoff_delay:
|
144
|
+
await sleep(backoff_delay)
|
145
|
+
if self.verbose:
|
146
|
+
self.log(iso8601(milliseconds()), 'connecting to', self.url, 'with timeout', self.connectionTimeout, 'ms')
|
147
|
+
self.connectionStarted = milliseconds()
|
148
|
+
try:
|
149
|
+
coroutine = self.create_connection(session)
|
150
|
+
self.connection = await wait_for(coroutine, timeout=int(self.connectionTimeout / 1000))
|
151
|
+
self.connecting = False
|
152
|
+
self.connectionEstablished = milliseconds()
|
153
|
+
self.isConnected = True
|
154
|
+
if self.verbose:
|
155
|
+
self.log(iso8601(milliseconds()), 'connected')
|
156
|
+
self.connected.resolve(self.url)
|
157
|
+
self.on_connected_callback(self)
|
158
|
+
# run both loops forever
|
159
|
+
self.ping_looper = ensure_future(self.ping_loop(), loop=self.asyncio_loop)
|
160
|
+
self.asyncio_loop.call_soon(self.receive_loop)
|
161
|
+
except TimeoutError:
|
162
|
+
# connection timeout
|
163
|
+
error = RequestTimeout('Connection timeout')
|
164
|
+
if self.verbose:
|
165
|
+
self.log(iso8601(milliseconds()), 'RequestTimeout', error)
|
166
|
+
self.on_error(error)
|
167
|
+
except Exception as e:
|
168
|
+
# connection failed or rejected (ConnectionRefusedError, ClientConnectorError)
|
169
|
+
error = NetworkError(e)
|
170
|
+
if self.verbose:
|
171
|
+
self.log(iso8601(milliseconds()), 'NetworkError', error)
|
172
|
+
self.on_error(error)
|
173
|
+
|
174
|
+
@property
|
175
|
+
def buffer(self):
|
176
|
+
# looks like they exposed it in C
|
177
|
+
# this means we can bypass it
|
178
|
+
# https://github.com/aio-libs/aiohttp/blob/master/aiohttp/_websocket/reader_c.pxd#L53C24-L53C31
|
179
|
+
return self.connection._conn.protocol._payload._buffer
|
180
|
+
|
181
|
+
def connect(self, session, backoff_delay=0):
|
182
|
+
if not self.connection and not self.connecting:
|
183
|
+
self.connecting = True
|
184
|
+
ensure_future(self.open(session, backoff_delay), loop=self.asyncio_loop)
|
185
|
+
return self.connected
|
186
|
+
|
187
|
+
def on_error(self, error):
|
188
|
+
if self.verbose:
|
189
|
+
self.log(iso8601(milliseconds()), 'on_error', error)
|
190
|
+
self.error = error
|
191
|
+
self.reject(error)
|
192
|
+
self.on_error_callback(self, error)
|
193
|
+
if not self.closed():
|
194
|
+
ensure_future(self.close(1006), loop=self.asyncio_loop)
|
195
|
+
|
196
|
+
def on_close(self, code):
|
197
|
+
if self.verbose:
|
198
|
+
self.log(iso8601(milliseconds()), 'on_close', code)
|
199
|
+
if not self.error:
|
200
|
+
self.reject(NetworkError('Connection closed by remote server, closing code ' + str(code)))
|
201
|
+
self.on_close_callback(self, code)
|
202
|
+
ensure_future(self.aiohttp_close(), loop=self.asyncio_loop)
|
203
|
+
|
204
|
+
def log(self, *args):
|
205
|
+
print(*args)
|
206
|
+
|
207
|
+
def closed(self):
|
208
|
+
return (self.connection is None) or self.connection.closed
|
209
|
+
|
210
|
+
def receive(self):
|
211
|
+
return self.connection.receive()
|
212
|
+
|
213
|
+
# helper method for binary and text messages
|
214
|
+
def handle_text_or_binary_message(self, data):
|
215
|
+
if self.verbose:
|
216
|
+
self.log(iso8601(milliseconds()), 'message', data)
|
217
|
+
if isinstance(data, bytes):
|
218
|
+
data = data.decode()
|
219
|
+
# decoded = json.loads(data) if is_json_encoded_object(data) else data
|
220
|
+
decode = None
|
221
|
+
if is_json_encoded_object(data):
|
222
|
+
if orjson is None:
|
223
|
+
decode = json.loads(data)
|
224
|
+
else:
|
225
|
+
decode = orjson.loads(data)
|
226
|
+
else:
|
227
|
+
decode = data
|
228
|
+
self.on_message_callback(self, decode)
|
229
|
+
|
230
|
+
def handle_message(self, message):
|
231
|
+
# self.log(iso8601(milliseconds()), message)
|
232
|
+
if message.type == WSMsgType.TEXT:
|
233
|
+
self.handle_text_or_binary_message(message.data)
|
234
|
+
elif message.type == WSMsgType.BINARY:
|
235
|
+
data = message.data
|
236
|
+
if self.gunzip:
|
237
|
+
data = gunzip(data)
|
238
|
+
elif self.inflate:
|
239
|
+
data = inflate(data)
|
240
|
+
self.handle_text_or_binary_message(data)
|
241
|
+
# autoping is responsible for automatically replying with pong
|
242
|
+
# to a ping incoming from a server, we have to disable autoping
|
243
|
+
# with aiohttp's websockets and respond with pong manually
|
244
|
+
# otherwise aiohttp's websockets client won't trigger WSMsgType.PONG
|
245
|
+
elif message.type == WSMsgType.PING:
|
246
|
+
if self.verbose:
|
247
|
+
self.log(iso8601(milliseconds()), 'ping', message)
|
248
|
+
ensure_future(self.connection.pong(message.data), loop=self.asyncio_loop)
|
249
|
+
elif message.type == WSMsgType.PONG:
|
250
|
+
self.lastPong = milliseconds()
|
251
|
+
if self.verbose:
|
252
|
+
self.log(iso8601(milliseconds()), 'pong', message)
|
253
|
+
pass
|
254
|
+
elif message.type == WSMsgType.CLOSE:
|
255
|
+
if self.verbose:
|
256
|
+
self.log(iso8601(milliseconds()), 'close', self.closed(), message)
|
257
|
+
self.on_close(message.data)
|
258
|
+
elif message.type == WSMsgType.ERROR:
|
259
|
+
if self.verbose:
|
260
|
+
self.log(iso8601(milliseconds()), 'error', message)
|
261
|
+
error = NetworkError(str(message))
|
262
|
+
self.on_error(error)
|
263
|
+
|
264
|
+
def create_connection(self, session):
|
265
|
+
# autoping is responsible for automatically replying with pong
|
266
|
+
# to a ping incoming from a server, we have to disable autoping
|
267
|
+
# with aiohttp's websockets and respond with pong manually
|
268
|
+
# otherwise aiohttp's websockets client won't trigger WSMsgType.PONG
|
269
|
+
# call aenter here to simulate async with otherwise we get the error "await not called with future"
|
270
|
+
# if connecting to a non-existent endpoint
|
271
|
+
if (self.proxy):
|
272
|
+
return session.ws_connect(self.url, autoping=False, autoclose=False, headers=self.options.get('headers'), proxy=self.proxy, max_msg_size=10485760).__aenter__()
|
273
|
+
return session.ws_connect(self.url, autoping=False, autoclose=False, headers=self.options.get('headers'), max_msg_size=10485760).__aenter__()
|
274
|
+
|
275
|
+
async def send(self, message):
|
276
|
+
if self.verbose:
|
277
|
+
self.log(iso8601(milliseconds()), 'sending', message)
|
278
|
+
send_msg = None
|
279
|
+
if isinstance(message, str):
|
280
|
+
send_msg = message
|
281
|
+
else:
|
282
|
+
if orjson is None:
|
283
|
+
send_msg = json.dumps(message, separators=(',', ':'))
|
284
|
+
else:
|
285
|
+
send_msg = orjson.dumps(message).decode('utf-8')
|
286
|
+
return await self.connection.send_str(send_msg)
|
287
|
+
|
288
|
+
async def close(self, code=1000):
|
289
|
+
if self.verbose:
|
290
|
+
self.log(iso8601(milliseconds()), 'closing', code)
|
291
|
+
for future in self.futures.values():
|
292
|
+
future.cancel()
|
293
|
+
await self.aiohttp_close()
|
294
|
+
|
295
|
+
async def aiohttp_close(self):
|
296
|
+
if not self.closed():
|
297
|
+
await self.connection.close()
|
298
|
+
# these will end automatically once self.closed() = True
|
299
|
+
# so we don't need to cancel them
|
300
|
+
if self.ping_looper:
|
301
|
+
self.ping_looper.cancel()
|
302
|
+
|
303
|
+
async def ping_loop(self):
|
304
|
+
if self.verbose:
|
305
|
+
self.log(iso8601(milliseconds()), 'ping loop')
|
306
|
+
while self.keepAlive and not self.closed():
|
307
|
+
now = milliseconds()
|
308
|
+
self.lastPong = now if self.lastPong is None else self.lastPong
|
309
|
+
if (self.lastPong + self.keepAlive * self.maxPingPongMisses) < now:
|
310
|
+
self.on_error(RequestTimeout('Connection to ' + self.url + ' timed out due to a ping-pong keepalive missing on time'))
|
311
|
+
# the following ping-clause is not necessary with aiohttp's built-in ws
|
312
|
+
# since it has a heartbeat option (see create_connection above)
|
313
|
+
# however some exchanges require a text-type ping message
|
314
|
+
# therefore we need this clause anyway
|
315
|
+
else:
|
316
|
+
if self.ping:
|
317
|
+
try:
|
318
|
+
await self.send(self.ping(self))
|
319
|
+
except Exception as e:
|
320
|
+
self.on_error(e)
|
321
|
+
else:
|
322
|
+
await self.connection.ping()
|
323
|
+
await sleep(self.keepAlive / 1000)
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import asyncio
|
2
|
+
|
3
|
+
|
4
|
+
class Future(asyncio.Future):
|
5
|
+
|
6
|
+
def resolve(self, result=None):
|
7
|
+
if not self.done():
|
8
|
+
self.set_result(result)
|
9
|
+
|
10
|
+
def reject(self, error=None):
|
11
|
+
if not self.done():
|
12
|
+
self.set_exception(error)
|
13
|
+
|
14
|
+
@classmethod
|
15
|
+
def race(cls, futures):
|
16
|
+
future = Future()
|
17
|
+
coro = asyncio.wait(futures, return_when=asyncio.FIRST_COMPLETED)
|
18
|
+
task = asyncio.create_task(coro)
|
19
|
+
|
20
|
+
def callback(done):
|
21
|
+
complete, _ = done.result()
|
22
|
+
# check for exceptions
|
23
|
+
exceptions = []
|
24
|
+
cancelled = False
|
25
|
+
for f in complete:
|
26
|
+
if f.cancelled():
|
27
|
+
cancelled = True
|
28
|
+
else:
|
29
|
+
err = f.exception()
|
30
|
+
if err:
|
31
|
+
exceptions.append(err)
|
32
|
+
# if any exceptions return with first exception
|
33
|
+
if len(exceptions) > 0:
|
34
|
+
future.set_exception(exceptions[0])
|
35
|
+
# else return first result
|
36
|
+
elif cancelled:
|
37
|
+
future.cancel()
|
38
|
+
else:
|
39
|
+
first_result = list(complete)[0].result()
|
40
|
+
future.set_result(first_result)
|
41
|
+
task.add_done_callback(callback)
|
42
|
+
return future
|
{crypto_com_sdk-0.0.67 → crypto_com_sdk-0.0.69}/src/cryptocom/ccxt/async_support/cryptocom.py
RENAMED
@@ -60,6 +60,7 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
60
60
|
'createOrders': True,
|
61
61
|
'createStopOrder': True,
|
62
62
|
'createTriggerOrder': True,
|
63
|
+
'editOrder': True,
|
63
64
|
'fetchAccounts': True,
|
64
65
|
'fetchBalance': True,
|
65
66
|
'fetchBidsAsks': False,
|
@@ -152,6 +153,7 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
152
153
|
'derivatives': 'https://uat-api.3ona.co/v2',
|
153
154
|
},
|
154
155
|
'api': {
|
156
|
+
'base': 'https://api.crypto.com',
|
155
157
|
'v1': 'https://api.crypto.com/exchange/v1',
|
156
158
|
'v2': 'https://api.crypto.com/v2',
|
157
159
|
'derivatives': 'https://deriv-api.crypto.com/v1',
|
@@ -169,6 +171,13 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
169
171
|
'fees': 'https://crypto.com/exchange/document/fees-limits',
|
170
172
|
},
|
171
173
|
'api': {
|
174
|
+
'base': {
|
175
|
+
'public': {
|
176
|
+
'get': {
|
177
|
+
'v1/public/get-announcements': 1, # no description of rate limit
|
178
|
+
},
|
179
|
+
},
|
180
|
+
},
|
172
181
|
'v1': {
|
173
182
|
'public': {
|
174
183
|
'get': {
|
@@ -195,6 +204,7 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
195
204
|
'private/user-balance-history': 10 / 3,
|
196
205
|
'private/get-positions': 10 / 3,
|
197
206
|
'private/create-order': 2 / 3,
|
207
|
+
'private/amend-order': 4 / 3, # no description of rate limit
|
198
208
|
'private/create-order-list': 10 / 3,
|
199
209
|
'private/cancel-order': 2 / 3,
|
200
210
|
'private/cancel-order-list': 10 / 3,
|
@@ -538,7 +548,22 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
538
548
|
# self endpoint requires authentication
|
539
549
|
if not self.check_required_credentials(False):
|
540
550
|
return None
|
541
|
-
|
551
|
+
skipFetchCurrencies = False
|
552
|
+
skipFetchCurrencies, params = self.handle_option_and_params(params, 'fetchCurrencies', 'skipFetchCurrencies', False)
|
553
|
+
if skipFetchCurrencies:
|
554
|
+
# sub-accounts can't access self endpoint
|
555
|
+
return None
|
556
|
+
response = {}
|
557
|
+
try:
|
558
|
+
response = await self.v1PrivatePostPrivateGetCurrencyNetworks(params)
|
559
|
+
except Exception as e:
|
560
|
+
if isinstance(e, ExchangeError):
|
561
|
+
# sub-accounts can't access self endpoint
|
562
|
+
# {"code":"10001","msg":"SYS_ERROR"}
|
563
|
+
return None
|
564
|
+
raise e
|
565
|
+
# do nothing
|
566
|
+
# sub-accounts can't access self endpoint
|
542
567
|
#
|
543
568
|
# {
|
544
569
|
# "id": "1747502328559",
|
@@ -563,7 +588,7 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
563
588
|
# "network_id": "CRONOS",
|
564
589
|
# "withdrawal_fee": "0.18000000",
|
565
590
|
# "withdraw_enabled": True,
|
566
|
-
# "min_withdrawal_amount": "0.
|
591
|
+
# "min_withdrawal_amount": "0.35",
|
567
592
|
# "deposit_enabled": True,
|
568
593
|
# "confirmation_required": "15"
|
569
594
|
# },
|
@@ -1551,6 +1576,45 @@ class cryptocom(Exchange, ImplicitAPI):
|
|
1551
1576
|
params = self.omit(params, ['postOnly', 'clientOrderId', 'timeInForce', 'stopPrice', 'triggerPrice', 'stopLossPrice', 'takeProfitPrice'])
|
1552
1577
|
return self.extend(request, params)
|
1553
1578
|
|
1579
|
+
async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
|
1580
|
+
"""
|
1581
|
+
edit a trade order
|
1582
|
+
|
1583
|
+
https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-amend-order
|
1584
|
+
|
1585
|
+
:param str id: order id
|
1586
|
+
:param str symbol: unified market symbol of the order to edit
|
1587
|
+
:param str [type]: not used by cryptocom editOrder
|
1588
|
+
:param str [side]: not used by cryptocom editOrder
|
1589
|
+
:param float amount:(mandatory) how much of the currency you want to trade in units of the base currency
|
1590
|
+
:param float price:(mandatory) the price for the order, in units of the quote currency, ignored in market orders
|
1591
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1592
|
+
:param str [params.clientOrderId]: the original client order id of the order to edit, required if id is not provided
|
1593
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1594
|
+
"""
|
1595
|
+
await self.load_markets()
|
1596
|
+
request = self.edit_order_request(id, symbol, amount, price, params)
|
1597
|
+
response = await self.v1PrivatePostPrivateAmendOrder(request)
|
1598
|
+
result = self.safe_dict(response, 'result', {})
|
1599
|
+
return self.parse_order(result)
|
1600
|
+
|
1601
|
+
def edit_order_request(self, id: str, symbol: str, amount: float, price: Num = None, params={}):
|
1602
|
+
request: dict = {}
|
1603
|
+
if id is not None:
|
1604
|
+
request['order_id'] = id
|
1605
|
+
else:
|
1606
|
+
originalClientOrderId = self.safe_string_2(params, 'orig_client_oid', 'clientOrderId')
|
1607
|
+
if originalClientOrderId is None:
|
1608
|
+
raise ArgumentsRequired(self.id + ' editOrder() requires an id argument or orig_client_oid parameter')
|
1609
|
+
else:
|
1610
|
+
request['orig_client_oid'] = originalClientOrderId
|
1611
|
+
params = self.omit(params, ['orig_client_oid', 'clientOrderId'])
|
1612
|
+
if (amount is None) or (price is None):
|
1613
|
+
raise ArgumentsRequired(self.id + ' editOrder() requires both amount and price arguments. If you do not want to change the amount or price, you should pass the original values')
|
1614
|
+
request['new_quantity'] = self.amount_to_precision(symbol, amount)
|
1615
|
+
request['new_price'] = self.price_to_precision(symbol, price)
|
1616
|
+
return self.extend(request, params)
|
1617
|
+
|
1554
1618
|
async def cancel_all_orders(self, symbol: Str = None, params={}):
|
1555
1619
|
"""
|
1556
1620
|
cancel all open orders
|