coinex-api 0.0.15__py3-none-any.whl → 0.0.16__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. coinex/__init__.py +7 -0
  2. coinex/ccxt/__init__.py +101 -0
  3. coinex/ccxt/abstract/coinex.py +237 -0
  4. coinex/ccxt/async_support/__init__.py +80 -0
  5. coinex/ccxt/async_support/base/__init__.py +1 -0
  6. coinex/ccxt/async_support/base/exchange.py +2100 -0
  7. coinex/ccxt/async_support/base/throttler.py +50 -0
  8. coinex/ccxt/async_support/base/ws/__init__.py +38 -0
  9. coinex/ccxt/async_support/base/ws/aiohttp_client.py +147 -0
  10. coinex/ccxt/async_support/base/ws/cache.py +213 -0
  11. coinex/ccxt/async_support/base/ws/client.py +214 -0
  12. coinex/ccxt/async_support/base/ws/fast_client.py +97 -0
  13. coinex/ccxt/async_support/base/ws/functions.py +59 -0
  14. coinex/ccxt/async_support/base/ws/future.py +69 -0
  15. coinex/ccxt/async_support/base/ws/order_book.py +78 -0
  16. coinex/ccxt/async_support/base/ws/order_book_side.py +174 -0
  17. coinex/ccxt/async_support/coinex.py +5833 -0
  18. coinex/ccxt/base/__init__.py +27 -0
  19. coinex/ccxt/base/decimal_to_precision.py +174 -0
  20. coinex/ccxt/base/errors.py +267 -0
  21. coinex/ccxt/base/exchange.py +6769 -0
  22. coinex/ccxt/base/precise.py +297 -0
  23. coinex/ccxt/base/types.py +577 -0
  24. coinex/ccxt/coinex.py +5832 -0
  25. coinex/ccxt/pro/__init__.py +21 -0
  26. coinex/ccxt/pro/coinex.py +1366 -0
  27. coinex/ccxt/static_dependencies/README.md +1 -0
  28. coinex/ccxt/static_dependencies/__init__.py +1 -0
  29. coinex/ccxt/static_dependencies/ecdsa/__init__.py +14 -0
  30. coinex/ccxt/static_dependencies/ecdsa/_version.py +520 -0
  31. coinex/ccxt/static_dependencies/ecdsa/curves.py +56 -0
  32. coinex/ccxt/static_dependencies/ecdsa/der.py +221 -0
  33. coinex/ccxt/static_dependencies/ecdsa/ecdsa.py +310 -0
  34. coinex/ccxt/static_dependencies/ecdsa/ellipticcurve.py +197 -0
  35. coinex/ccxt/static_dependencies/ecdsa/keys.py +332 -0
  36. coinex/ccxt/static_dependencies/ecdsa/numbertheory.py +531 -0
  37. coinex/ccxt/static_dependencies/ecdsa/rfc6979.py +100 -0
  38. coinex/ccxt/static_dependencies/ecdsa/util.py +266 -0
  39. coinex/ccxt/static_dependencies/ethereum/__init__.py +7 -0
  40. coinex/ccxt/static_dependencies/ethereum/abi/__init__.py +16 -0
  41. coinex/ccxt/static_dependencies/ethereum/abi/abi.py +19 -0
  42. coinex/ccxt/static_dependencies/ethereum/abi/base.py +152 -0
  43. coinex/ccxt/static_dependencies/ethereum/abi/codec.py +217 -0
  44. coinex/ccxt/static_dependencies/ethereum/abi/constants.py +3 -0
  45. coinex/ccxt/static_dependencies/ethereum/abi/decoding.py +565 -0
  46. coinex/ccxt/static_dependencies/ethereum/abi/encoding.py +720 -0
  47. coinex/ccxt/static_dependencies/ethereum/abi/exceptions.py +139 -0
  48. coinex/ccxt/static_dependencies/ethereum/abi/grammar.py +443 -0
  49. coinex/ccxt/static_dependencies/ethereum/abi/packed.py +13 -0
  50. coinex/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  51. coinex/ccxt/static_dependencies/ethereum/abi/registry.py +643 -0
  52. coinex/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +3 -0
  53. coinex/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +230 -0
  54. coinex/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  55. coinex/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +83 -0
  56. coinex/ccxt/static_dependencies/ethereum/abi/utils/padding.py +27 -0
  57. coinex/ccxt/static_dependencies/ethereum/abi/utils/string.py +19 -0
  58. coinex/ccxt/static_dependencies/ethereum/account/__init__.py +3 -0
  59. coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +4 -0
  60. coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +239 -0
  61. coinex/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +40 -0
  62. coinex/ccxt/static_dependencies/ethereum/account/messages.py +263 -0
  63. coinex/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  64. coinex/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +5 -0
  65. coinex/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +54 -0
  66. coinex/ccxt/static_dependencies/ethereum/hexbytes/main.py +65 -0
  67. coinex/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  68. coinex/ccxt/static_dependencies/ethereum/typing/__init__.py +63 -0
  69. coinex/ccxt/static_dependencies/ethereum/typing/abi.py +6 -0
  70. coinex/ccxt/static_dependencies/ethereum/typing/bls.py +7 -0
  71. coinex/ccxt/static_dependencies/ethereum/typing/discovery.py +5 -0
  72. coinex/ccxt/static_dependencies/ethereum/typing/encoding.py +7 -0
  73. coinex/ccxt/static_dependencies/ethereum/typing/enums.py +17 -0
  74. coinex/ccxt/static_dependencies/ethereum/typing/ethpm.py +9 -0
  75. coinex/ccxt/static_dependencies/ethereum/typing/evm.py +20 -0
  76. coinex/ccxt/static_dependencies/ethereum/typing/networks.py +1122 -0
  77. coinex/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  78. coinex/ccxt/static_dependencies/ethereum/utils/__init__.py +115 -0
  79. coinex/ccxt/static_dependencies/ethereum/utils/abi.py +72 -0
  80. coinex/ccxt/static_dependencies/ethereum/utils/address.py +171 -0
  81. coinex/ccxt/static_dependencies/ethereum/utils/applicators.py +151 -0
  82. coinex/ccxt/static_dependencies/ethereum/utils/conversions.py +190 -0
  83. coinex/ccxt/static_dependencies/ethereum/utils/currency.py +107 -0
  84. coinex/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +269 -0
  85. coinex/ccxt/static_dependencies/ethereum/utils/debug.py +20 -0
  86. coinex/ccxt/static_dependencies/ethereum/utils/decorators.py +132 -0
  87. coinex/ccxt/static_dependencies/ethereum/utils/encoding.py +6 -0
  88. coinex/ccxt/static_dependencies/ethereum/utils/exceptions.py +4 -0
  89. coinex/ccxt/static_dependencies/ethereum/utils/functional.py +75 -0
  90. coinex/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +74 -0
  91. coinex/ccxt/static_dependencies/ethereum/utils/humanize.py +188 -0
  92. coinex/ccxt/static_dependencies/ethereum/utils/logging.py +159 -0
  93. coinex/ccxt/static_dependencies/ethereum/utils/module_loading.py +31 -0
  94. coinex/ccxt/static_dependencies/ethereum/utils/numeric.py +43 -0
  95. coinex/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  96. coinex/ccxt/static_dependencies/ethereum/utils/toolz.py +76 -0
  97. coinex/ccxt/static_dependencies/ethereum/utils/types.py +54 -0
  98. coinex/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +18 -0
  99. coinex/ccxt/static_dependencies/ethereum/utils/typing/misc.py +14 -0
  100. coinex/ccxt/static_dependencies/ethereum/utils/units.py +31 -0
  101. coinex/ccxt/static_dependencies/keccak/__init__.py +3 -0
  102. coinex/ccxt/static_dependencies/keccak/keccak.py +197 -0
  103. coinex/ccxt/static_dependencies/lark/__init__.py +38 -0
  104. coinex/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
  105. coinex/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
  106. coinex/ccxt/static_dependencies/lark/ast_utils.py +59 -0
  107. coinex/ccxt/static_dependencies/lark/common.py +86 -0
  108. coinex/ccxt/static_dependencies/lark/exceptions.py +292 -0
  109. coinex/ccxt/static_dependencies/lark/grammar.py +130 -0
  110. coinex/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  111. coinex/ccxt/static_dependencies/lark/grammars/common.lark +59 -0
  112. coinex/ccxt/static_dependencies/lark/grammars/lark.lark +62 -0
  113. coinex/ccxt/static_dependencies/lark/grammars/python.lark +302 -0
  114. coinex/ccxt/static_dependencies/lark/grammars/unicode.lark +7 -0
  115. coinex/ccxt/static_dependencies/lark/indenter.py +143 -0
  116. coinex/ccxt/static_dependencies/lark/lark.py +658 -0
  117. coinex/ccxt/static_dependencies/lark/lexer.py +678 -0
  118. coinex/ccxt/static_dependencies/lark/load_grammar.py +1428 -0
  119. coinex/ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
  120. coinex/ccxt/static_dependencies/lark/parser_frontends.py +257 -0
  121. coinex/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  122. coinex/ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
  123. coinex/ccxt/static_dependencies/lark/parsers/earley.py +314 -0
  124. coinex/ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
  125. coinex/ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
  126. coinex/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
  127. coinex/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
  128. coinex/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
  129. coinex/ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
  130. coinex/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
  131. coinex/ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
  132. coinex/ccxt/static_dependencies/lark/py.typed +0 -0
  133. coinex/ccxt/static_dependencies/lark/reconstruct.py +107 -0
  134. coinex/ccxt/static_dependencies/lark/tools/__init__.py +70 -0
  135. coinex/ccxt/static_dependencies/lark/tools/nearley.py +202 -0
  136. coinex/ccxt/static_dependencies/lark/tools/serialize.py +32 -0
  137. coinex/ccxt/static_dependencies/lark/tools/standalone.py +196 -0
  138. coinex/ccxt/static_dependencies/lark/tree.py +267 -0
  139. coinex/ccxt/static_dependencies/lark/tree_matcher.py +186 -0
  140. coinex/ccxt/static_dependencies/lark/tree_templates.py +180 -0
  141. coinex/ccxt/static_dependencies/lark/utils.py +343 -0
  142. coinex/ccxt/static_dependencies/lark/visitors.py +596 -0
  143. coinex/ccxt/static_dependencies/marshmallow/__init__.py +81 -0
  144. coinex/ccxt/static_dependencies/marshmallow/base.py +65 -0
  145. coinex/ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
  146. coinex/ccxt/static_dependencies/marshmallow/decorators.py +231 -0
  147. coinex/ccxt/static_dependencies/marshmallow/error_store.py +60 -0
  148. coinex/ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
  149. coinex/ccxt/static_dependencies/marshmallow/fields.py +2114 -0
  150. coinex/ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
  151. coinex/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  152. coinex/ccxt/static_dependencies/marshmallow/schema.py +1228 -0
  153. coinex/ccxt/static_dependencies/marshmallow/types.py +12 -0
  154. coinex/ccxt/static_dependencies/marshmallow/utils.py +378 -0
  155. coinex/ccxt/static_dependencies/marshmallow/validate.py +678 -0
  156. coinex/ccxt/static_dependencies/marshmallow/warnings.py +2 -0
  157. coinex/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
  158. coinex/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
  159. coinex/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
  160. coinex/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
  161. coinex/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  162. coinex/ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
  163. coinex/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
  164. coinex/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
  165. coinex/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
  166. coinex/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  167. coinex/ccxt/static_dependencies/msgpack/__init__.py +55 -0
  168. coinex/ccxt/static_dependencies/msgpack/_cmsgpack.pyx +11 -0
  169. coinex/ccxt/static_dependencies/msgpack/_packer.pyx +374 -0
  170. coinex/ccxt/static_dependencies/msgpack/_unpacker.pyx +547 -0
  171. coinex/ccxt/static_dependencies/msgpack/buff_converter.h +8 -0
  172. coinex/ccxt/static_dependencies/msgpack/exceptions.py +48 -0
  173. coinex/ccxt/static_dependencies/msgpack/ext.py +168 -0
  174. coinex/ccxt/static_dependencies/msgpack/fallback.py +951 -0
  175. coinex/ccxt/static_dependencies/msgpack/pack.h +89 -0
  176. coinex/ccxt/static_dependencies/msgpack/pack_template.h +820 -0
  177. coinex/ccxt/static_dependencies/msgpack/sysdep.h +194 -0
  178. coinex/ccxt/static_dependencies/msgpack/unpack.h +391 -0
  179. coinex/ccxt/static_dependencies/msgpack/unpack_define.h +95 -0
  180. coinex/ccxt/static_dependencies/msgpack/unpack_template.h +464 -0
  181. coinex/ccxt/static_dependencies/parsimonious/__init__.py +10 -0
  182. coinex/ccxt/static_dependencies/parsimonious/exceptions.py +105 -0
  183. coinex/ccxt/static_dependencies/parsimonious/expressions.py +479 -0
  184. coinex/ccxt/static_dependencies/parsimonious/grammar.py +487 -0
  185. coinex/ccxt/static_dependencies/parsimonious/nodes.py +325 -0
  186. coinex/ccxt/static_dependencies/parsimonious/utils.py +40 -0
  187. coinex/ccxt/static_dependencies/starknet/__init__.py +0 -0
  188. coinex/ccxt/static_dependencies/starknet/abi/v0/__init__.py +2 -0
  189. coinex/ccxt/static_dependencies/starknet/abi/v0/model.py +44 -0
  190. coinex/ccxt/static_dependencies/starknet/abi/v0/parser.py +216 -0
  191. coinex/ccxt/static_dependencies/starknet/abi/v0/schemas.py +72 -0
  192. coinex/ccxt/static_dependencies/starknet/abi/v0/shape.py +63 -0
  193. coinex/ccxt/static_dependencies/starknet/abi/v1/__init__.py +2 -0
  194. coinex/ccxt/static_dependencies/starknet/abi/v1/core_structures.json +14 -0
  195. coinex/ccxt/static_dependencies/starknet/abi/v1/model.py +39 -0
  196. coinex/ccxt/static_dependencies/starknet/abi/v1/parser.py +220 -0
  197. coinex/ccxt/static_dependencies/starknet/abi/v1/parser_transformer.py +179 -0
  198. coinex/ccxt/static_dependencies/starknet/abi/v1/schemas.py +66 -0
  199. coinex/ccxt/static_dependencies/starknet/abi/v1/shape.py +47 -0
  200. coinex/ccxt/static_dependencies/starknet/abi/v2/__init__.py +2 -0
  201. coinex/ccxt/static_dependencies/starknet/abi/v2/model.py +89 -0
  202. coinex/ccxt/static_dependencies/starknet/abi/v2/parser.py +293 -0
  203. coinex/ccxt/static_dependencies/starknet/abi/v2/parser_transformer.py +192 -0
  204. coinex/ccxt/static_dependencies/starknet/abi/v2/schemas.py +132 -0
  205. coinex/ccxt/static_dependencies/starknet/abi/v2/shape.py +107 -0
  206. coinex/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  207. coinex/ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
  208. coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  209. coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
  210. coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
  211. coinex/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
  212. coinex/ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
  213. coinex/ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
  214. coinex/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  215. coinex/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
  216. coinex/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  217. coinex/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
  218. coinex/ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
  219. coinex/ccxt/static_dependencies/starknet/common.py +15 -0
  220. coinex/ccxt/static_dependencies/starknet/constants.py +39 -0
  221. coinex/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  222. coinex/ccxt/static_dependencies/starknet/hash/address.py +79 -0
  223. coinex/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
  224. coinex/ccxt/static_dependencies/starknet/hash/selector.py +16 -0
  225. coinex/ccxt/static_dependencies/starknet/hash/storage.py +12 -0
  226. coinex/ccxt/static_dependencies/starknet/hash/utils.py +78 -0
  227. coinex/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  228. coinex/ccxt/static_dependencies/starknet/models/typed_data.py +45 -0
  229. coinex/ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
  230. coinex/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
  231. coinex/ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
  232. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
  233. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
  234. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
  235. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
  236. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
  237. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
  238. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
  239. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
  240. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
  241. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
  242. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
  243. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
  244. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
  245. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
  246. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
  247. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
  248. coinex/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
  249. coinex/ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
  250. coinex/ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
  251. coinex/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
  252. coinex/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
  253. coinex/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  254. coinex/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
  255. coinex/ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
  256. coinex/ccxt/static_dependencies/starknet/utils/schema.py +13 -0
  257. coinex/ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
  258. coinex/ccxt/static_dependencies/starkware/__init__.py +0 -0
  259. coinex/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  260. coinex/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +50 -0
  261. coinex/ccxt/static_dependencies/starkware/crypto/math_utils.py +78 -0
  262. coinex/ccxt/static_dependencies/starkware/crypto/signature.py +2344 -0
  263. coinex/ccxt/static_dependencies/starkware/crypto/utils.py +63 -0
  264. coinex/ccxt/static_dependencies/sympy/__init__.py +0 -0
  265. coinex/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  266. coinex/ccxt/static_dependencies/sympy/core/intfunc.py +35 -0
  267. coinex/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  268. coinex/ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
  269. coinex/ccxt/static_dependencies/sympy/external/importtools.py +187 -0
  270. coinex/ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
  271. coinex/ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
  272. coinex/ccxt/static_dependencies/toolz/__init__.py +26 -0
  273. coinex/ccxt/static_dependencies/toolz/_signatures.py +784 -0
  274. coinex/ccxt/static_dependencies/toolz/_version.py +520 -0
  275. coinex/ccxt/static_dependencies/toolz/compatibility.py +30 -0
  276. coinex/ccxt/static_dependencies/toolz/curried/__init__.py +101 -0
  277. coinex/ccxt/static_dependencies/toolz/curried/exceptions.py +22 -0
  278. coinex/ccxt/static_dependencies/toolz/curried/operator.py +22 -0
  279. coinex/ccxt/static_dependencies/toolz/dicttoolz.py +339 -0
  280. coinex/ccxt/static_dependencies/toolz/functoolz.py +1049 -0
  281. coinex/ccxt/static_dependencies/toolz/itertoolz.py +1057 -0
  282. coinex/ccxt/static_dependencies/toolz/recipes.py +46 -0
  283. coinex/ccxt/static_dependencies/toolz/utils.py +9 -0
  284. coinex/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  285. coinex/ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
  286. {coinex_api-0.0.15.dist-info → coinex_api-0.0.16.dist-info}/METADATA +1 -1
  287. coinex_api-0.0.16.dist-info/RECORD +288 -0
  288. coinex_api-0.0.15.dist-info/RECORD +0 -3
  289. {coinex_api-0.0.15.dist-info → coinex_api-0.0.16.dist-info}/WHEEL +0 -0
@@ -0,0 +1,139 @@
1
+ from ...parsimonious import (
2
+ ParseError
3
+ )
4
+
5
+
6
+ class EncodingError(Exception):
7
+ """
8
+ Base exception for any error that occurs during encoding.
9
+ """
10
+
11
+ pass
12
+
13
+
14
+ class EncodingTypeError(EncodingError):
15
+ """
16
+ Raised when trying to encode a python value whose type is not supported for
17
+ the output ABI type.
18
+ """
19
+
20
+ pass
21
+
22
+
23
+ class IllegalValue(EncodingError):
24
+ """
25
+ Raised when trying to encode a python value with the correct type but with
26
+ a value that is not considered legal for the output ABI type.
27
+
28
+ Example:
29
+
30
+ .. code-block:: python
31
+
32
+ fixed128x19_encoder(Decimal('NaN')) # cannot encode NaN
33
+
34
+ """
35
+
36
+ pass
37
+
38
+
39
+ class ValueOutOfBounds(IllegalValue):
40
+ """
41
+ Raised when trying to encode a python value with the correct type but with
42
+ a value that appears outside the range of valid values for the output ABI
43
+ type.
44
+
45
+ Example:
46
+
47
+ .. code-block:: python
48
+
49
+ ufixed8x1_encoder(Decimal('25.6')) # out of bounds
50
+
51
+ """
52
+
53
+ pass
54
+
55
+
56
+ class DecodingError(Exception):
57
+ """
58
+ Base exception for any error that occurs during decoding.
59
+ """
60
+
61
+ pass
62
+
63
+
64
+ class InsufficientDataBytes(DecodingError):
65
+ """
66
+ Raised when there are insufficient data to decode a value for a given ABI
67
+ type.
68
+ """
69
+
70
+ pass
71
+
72
+
73
+ class NonEmptyPaddingBytes(DecodingError):
74
+ """
75
+ Raised when the padding bytes of an ABI value are malformed.
76
+ """
77
+
78
+ pass
79
+
80
+
81
+ class ParseError(ParseError):
82
+ """
83
+ Raised when an ABI type string cannot be parsed.
84
+ """
85
+
86
+ def __str__(self):
87
+ return "Parse error at '{}' (column {}) in type string '{}'".format(
88
+ self.text[self.pos : self.pos + 5],
89
+ self.column(),
90
+ self.text,
91
+ )
92
+
93
+
94
+ class ABITypeError(ValueError):
95
+ """
96
+ Raised when a parsed ABI type has inconsistent properties; for example,
97
+ when trying to parse the type string ``'uint7'`` (which has a bit-width
98
+ that is not congruent with zero modulo eight).
99
+ """
100
+
101
+ pass
102
+
103
+
104
+ class PredicateMappingError(Exception):
105
+ """
106
+ Raised when an error occurs in a registry's internal mapping.
107
+ """
108
+
109
+ pass
110
+
111
+
112
+ class NoEntriesFound(ValueError, PredicateMappingError):
113
+ """
114
+ Raised when no registration is found for a type string in a registry's
115
+ internal mapping.
116
+
117
+ .. warning::
118
+
119
+ In a future version of ``eth-abi``, this error class will no longer
120
+ inherit from ``ValueError``.
121
+ """
122
+
123
+ pass
124
+
125
+
126
+ class MultipleEntriesFound(ValueError, PredicateMappingError):
127
+ """
128
+ Raised when multiple registrations are found for a type string in a
129
+ registry's internal mapping. This error is non-recoverable and indicates
130
+ that a registry was configured incorrectly. Registrations are expected to
131
+ cover completely distinct ranges of type strings.
132
+
133
+ .. warning::
134
+
135
+ In a future version of ``eth-abi``, this error class will no longer
136
+ inherit from ``ValueError``.
137
+ """
138
+
139
+ pass
@@ -0,0 +1,443 @@
1
+ import functools
2
+ import re
3
+
4
+ from ...parsimonious import (
5
+ expressions,
6
+ ParseError,
7
+ NodeVisitor,
8
+ Grammar
9
+ )
10
+
11
+ from .exceptions import (
12
+ ABITypeError,
13
+ ParseError,
14
+ )
15
+
16
+ grammar = Grammar(
17
+ r"""
18
+ type = tuple_type / basic_type
19
+
20
+ tuple_type = components arrlist?
21
+ components = non_zero_tuple / zero_tuple
22
+
23
+ non_zero_tuple = "(" type next_type* ")"
24
+ next_type = "," type
25
+
26
+ zero_tuple = "()"
27
+
28
+ basic_type = base sub? arrlist?
29
+
30
+ base = alphas
31
+
32
+ sub = two_size / digits
33
+ two_size = (digits "x" digits)
34
+
35
+ arrlist = (const_arr / dynam_arr)+
36
+ const_arr = "[" digits "]"
37
+ dynam_arr = "[]"
38
+
39
+ alphas = ~"[A-Za-z]+"
40
+ digits = ~"[1-9][0-9]*"
41
+ """
42
+ )
43
+
44
+
45
+ class NodeVisitor(NodeVisitor):
46
+ """
47
+ Parsimonious node visitor which performs both parsing of type strings and
48
+ post-processing of parse trees. Parsing operations are cached.
49
+ """
50
+
51
+ grammar = grammar
52
+
53
+ def visit_non_zero_tuple(self, node, visited_children):
54
+ # Ignore left and right parens
55
+ _, first, rest, _ = visited_children
56
+
57
+ return (first,) + rest
58
+
59
+ def visit_tuple_type(self, node, visited_children):
60
+ components, arrlist = visited_children
61
+
62
+ return TupleType(components, arrlist, node=node)
63
+
64
+ def visit_next_type(self, node, visited_children):
65
+ # Ignore comma
66
+ _, abi_type = visited_children
67
+
68
+ return abi_type
69
+
70
+ def visit_zero_tuple(self, node, visited_children):
71
+ return tuple()
72
+
73
+ def visit_basic_type(self, node, visited_children):
74
+ base, sub, arrlist = visited_children
75
+
76
+ return BasicType(base, sub, arrlist, node=node)
77
+
78
+ def visit_two_size(self, node, visited_children):
79
+ # Ignore "x"
80
+ first, _, second = visited_children
81
+
82
+ return first, second
83
+
84
+ def visit_const_arr(self, node, visited_children):
85
+ # Ignore left and right brackets
86
+ _, int_value, _ = visited_children
87
+
88
+ return (int_value,)
89
+
90
+ def visit_dynam_arr(self, node, visited_children):
91
+ return tuple()
92
+
93
+ def visit_alphas(self, node, visited_children):
94
+ return node.text
95
+
96
+ def visit_digits(self, node, visited_children):
97
+ return int(node.text)
98
+
99
+ def generic_visit(self, node, visited_children):
100
+ if isinstance(node.expr, expressions.OneOf):
101
+ # Unwrap value chosen from alternatives
102
+ return visited_children[0]
103
+ if isinstance(node.expr, expressions.Optional):
104
+ # Unwrap optional value or return `None`
105
+ if len(visited_children) != 0:
106
+ return visited_children[0]
107
+
108
+ return None
109
+
110
+ return tuple(visited_children)
111
+
112
+ @functools.lru_cache(maxsize=None)
113
+ def parse(self, type_str):
114
+ """
115
+ Parses a type string into an appropriate instance of
116
+ :class:`~eth_abi.grammar.ABIType`. If a type string cannot be parsed,
117
+ throws :class:`~eth_abi.exceptions.ParseError`.
118
+
119
+ :param type_str: The type string to be parsed.
120
+ :returns: An instance of :class:`~eth_abi.grammar.ABIType` containing
121
+ information about the parsed type string.
122
+ """
123
+ if not isinstance(type_str, str):
124
+ raise TypeError(
125
+ "Can only parse string values: got {}".format(type(type_str))
126
+ )
127
+
128
+ try:
129
+ return super().parse(type_str)
130
+ except ParseError as e:
131
+ raise ParseError(e.text, e.pos, e.expr)
132
+
133
+
134
+ visitor = NodeVisitor()
135
+
136
+
137
+ class ABIType:
138
+ """
139
+ Base class for results of type string parsing operations.
140
+ """
141
+
142
+ __slots__ = ("arrlist", "node")
143
+
144
+ def __init__(self, arrlist=None, node=None):
145
+ self.arrlist = arrlist
146
+ """
147
+ The list of array dimensions for a parsed type. Equal to ``None`` if
148
+ type string has no array dimensions.
149
+ """
150
+
151
+ self.node = node
152
+ """
153
+ The parsimonious ``Node`` instance associated with this parsed type.
154
+ Used to generate error messages for invalid types.
155
+ """
156
+
157
+ def __repr__(self): # pragma: no cover
158
+ return "<{} {}>".format(
159
+ type(self).__qualname__,
160
+ repr(self.to_type_str()),
161
+ )
162
+
163
+ def __eq__(self, other):
164
+ # Two ABI types are equal if their string representations are equal
165
+ return type(self) is type(other) and self.to_type_str() == other.to_type_str()
166
+
167
+ def to_type_str(self): # pragma: no cover
168
+ """
169
+ Returns the string representation of an ABI type. This will be equal to
170
+ the type string from which it was created.
171
+ """
172
+ raise NotImplementedError("Must implement `to_type_str`")
173
+
174
+ @property
175
+ def item_type(self):
176
+ """
177
+ If this type is an array type, equal to an appropriate
178
+ :class:`~eth_abi.grammar.ABIType` instance for the array's items.
179
+ """
180
+ raise NotImplementedError("Must implement `item_type`")
181
+
182
+ def validate(self): # pragma: no cover
183
+ """
184
+ Validates the properties of an ABI type against the solidity ABI spec:
185
+
186
+ https://solidity.readthedocs.io/en/develop/abi-spec.html
187
+
188
+ Raises :class:`~eth_abi.exceptions.ABITypeError` if validation fails.
189
+ """
190
+ raise NotImplementedError("Must implement `validate`")
191
+
192
+ def invalidate(self, error_msg):
193
+ # Invalidates an ABI type with the given error message. Expects that a
194
+ # parsimonious node was provided from the original parsing operation
195
+ # that yielded this type.
196
+ node = self.node
197
+
198
+ raise ABITypeError(
199
+ "For '{comp_str}' type at column {col} "
200
+ "in '{type_str}': {error_msg}".format(
201
+ comp_str=node.text,
202
+ col=node.start + 1,
203
+ type_str=node.full_text,
204
+ error_msg=error_msg,
205
+ ),
206
+ )
207
+
208
+ @property
209
+ def is_array(self):
210
+ """
211
+ Equal to ``True`` if a type is an array type (i.e. if it has an array
212
+ dimension list). Otherwise, equal to ``False``.
213
+ """
214
+ return self.arrlist is not None
215
+
216
+ @property
217
+ def is_dynamic(self):
218
+ """
219
+ Equal to ``True`` if a type has a dynamically sized encoding.
220
+ Otherwise, equal to ``False``.
221
+ """
222
+ raise NotImplementedError("Must implement `is_dynamic`")
223
+
224
+ @property
225
+ def _has_dynamic_arrlist(self):
226
+ return self.is_array and any(len(dim) == 0 for dim in self.arrlist)
227
+
228
+
229
+ class TupleType(ABIType):
230
+ """
231
+ Represents the result of parsing a tuple type string e.g. "(int,bool)".
232
+ """
233
+
234
+ __slots__ = ("components",)
235
+
236
+ def __init__(self, components, arrlist=None, *, node=None):
237
+ super().__init__(arrlist, node)
238
+
239
+ self.components = components
240
+ """
241
+ A tuple of :class:`~eth_abi.grammar.ABIType` instances for each of the
242
+ tuple type's components.
243
+ """
244
+
245
+ def to_type_str(self):
246
+ arrlist = self.arrlist
247
+
248
+ if isinstance(arrlist, tuple):
249
+ arrlist = "".join(repr(list(a)) for a in arrlist)
250
+ else:
251
+ arrlist = ""
252
+
253
+ return "({}){}".format(
254
+ ",".join(c.to_type_str() for c in self.components),
255
+ arrlist,
256
+ )
257
+
258
+ @property
259
+ def item_type(self):
260
+ if not self.is_array:
261
+ raise ValueError(
262
+ "Cannot determine item type for non-array type '{}'".format(
263
+ self.to_type_str(),
264
+ )
265
+ )
266
+
267
+ return type(self)(
268
+ self.components,
269
+ self.arrlist[:-1] or None,
270
+ node=self.node,
271
+ )
272
+
273
+ def validate(self):
274
+ for c in self.components:
275
+ c.validate()
276
+
277
+ @property
278
+ def is_dynamic(self):
279
+ if self._has_dynamic_arrlist:
280
+ return True
281
+
282
+ return any(c.is_dynamic for c in self.components)
283
+
284
+
285
+ class BasicType(ABIType):
286
+ """
287
+ Represents the result of parsing a basic type string e.g. "uint", "address",
288
+ "ufixed128x19[][2]".
289
+ """
290
+
291
+ __slots__ = ("base", "sub")
292
+
293
+ def __init__(self, base, sub=None, arrlist=None, *, node=None):
294
+ super().__init__(arrlist, node)
295
+
296
+ self.base = base
297
+ """The base of a basic type e.g. "uint" for "uint256" etc."""
298
+
299
+ self.sub = sub
300
+ """
301
+ The sub type of a basic type e.g. ``256`` for "uint256" or ``(128, 18)``
302
+ for "ufixed128x18" etc. Equal to ``None`` if type string has no sub
303
+ type.
304
+ """
305
+
306
+ def to_type_str(self):
307
+ sub, arrlist = self.sub, self.arrlist
308
+
309
+ if isinstance(sub, int):
310
+ sub = str(sub)
311
+ elif isinstance(sub, tuple):
312
+ sub = "x".join(str(s) for s in sub)
313
+ else:
314
+ sub = ""
315
+
316
+ if isinstance(arrlist, tuple):
317
+ arrlist = "".join(repr(list(a)) for a in arrlist)
318
+ else:
319
+ arrlist = ""
320
+
321
+ return self.base + sub + arrlist
322
+
323
+ @property
324
+ def item_type(self):
325
+ if not self.is_array:
326
+ raise ValueError(
327
+ "Cannot determine item type for non-array type '{}'".format(
328
+ self.to_type_str(),
329
+ )
330
+ )
331
+
332
+ return type(self)(
333
+ self.base,
334
+ self.sub,
335
+ self.arrlist[:-1] or None,
336
+ node=self.node,
337
+ )
338
+
339
+ @property
340
+ def is_dynamic(self):
341
+ if self._has_dynamic_arrlist:
342
+ return True
343
+
344
+ if self.base == "string":
345
+ return True
346
+
347
+ if self.base == "bytes" and self.sub is None:
348
+ return True
349
+
350
+ return False
351
+
352
+ def validate(self):
353
+ base, sub = self.base, self.sub
354
+
355
+ # Check validity of string type
356
+ if base == "string":
357
+ if sub is not None:
358
+ self.invalidate("string type cannot have suffix")
359
+
360
+ # Check validity of bytes type
361
+ elif base == "bytes":
362
+ if not (sub is None or isinstance(sub, int)):
363
+ self.invalidate(
364
+ "bytes type must have either no suffix or a numerical suffix"
365
+ )
366
+
367
+ if isinstance(sub, int) and sub > 32:
368
+ self.invalidate("maximum 32 bytes for fixed-length bytes")
369
+
370
+ # Check validity of integer type
371
+ elif base in ("int", "uint"):
372
+ if not isinstance(sub, int):
373
+ self.invalidate("integer type must have numerical suffix")
374
+
375
+ if sub < 8 or 256 < sub:
376
+ self.invalidate("integer size out of bounds (max 256 bits)")
377
+
378
+ if sub % 8 != 0:
379
+ self.invalidate("integer size must be multiple of 8")
380
+
381
+ # Check validity of fixed type
382
+ elif base in ("fixed", "ufixed"):
383
+ if not isinstance(sub, tuple):
384
+ self.invalidate(
385
+ "fixed type must have suffix of form <bits>x<exponent>, "
386
+ "e.g. 128x19",
387
+ )
388
+
389
+ bits, minus_e = sub
390
+
391
+ if bits < 8 or 256 < bits:
392
+ self.invalidate("fixed size out of bounds (max 256 bits)")
393
+
394
+ if bits % 8 != 0:
395
+ self.invalidate("fixed size must be multiple of 8")
396
+
397
+ if minus_e < 1 or 80 < minus_e:
398
+ self.invalidate(
399
+ "fixed exponent size out of bounds, {} must be in 1-80".format(
400
+ minus_e,
401
+ ),
402
+ )
403
+
404
+ # Check validity of hash type
405
+ elif base == "hash":
406
+ if not isinstance(sub, int):
407
+ self.invalidate("hash type must have numerical suffix")
408
+
409
+ # Check validity of address type
410
+ elif base == "address":
411
+ if sub is not None:
412
+ self.invalidate("address cannot have suffix")
413
+
414
+
415
+ TYPE_ALIASES = {
416
+ "int": "int256",
417
+ "uint": "uint256",
418
+ "fixed": "fixed128x18",
419
+ "ufixed": "ufixed128x18",
420
+ "function": "bytes24",
421
+ "byte": "bytes1",
422
+ }
423
+
424
+ TYPE_ALIAS_RE = re.compile(
425
+ r"\b({})\b".format("|".join(re.escape(a) for a in TYPE_ALIASES.keys()))
426
+ )
427
+
428
+
429
+ def normalize(type_str):
430
+ """
431
+ Normalizes a type string into its canonical version e.g. the type string
432
+ 'int' becomes 'int256', etc.
433
+
434
+ :param type_str: The type string to be normalized.
435
+ :returns: The canonical version of the input type string.
436
+ """
437
+ return TYPE_ALIAS_RE.sub(
438
+ lambda match: TYPE_ALIASES[match.group(0)],
439
+ type_str,
440
+ )
441
+
442
+
443
+ parse = visitor.parse
@@ -0,0 +1,13 @@
1
+ from .codec import (
2
+ ABIEncoder,
3
+ )
4
+ from .registry import (
5
+ registry_packed,
6
+ )
7
+
8
+ default_encoder_packed = ABIEncoder(registry_packed)
9
+
10
+ encode_packed = default_encoder_packed.encode
11
+ is_encodable_packed = default_encoder_packed.is_encodable
12
+ encode_single_packed = default_encoder_packed.encode_single # deprecated
13
+ encode_abi_packed = default_encoder_packed.encode_abi # deprecated
File without changes