coinex-api 0.0.7__py3-none-any.whl → 0.0.8__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_api-0.0.7.dist-info → coinex_api-0.0.8.dist-info}/METADATA +33 -14
  2. coinex_api-0.0.8.dist-info/RECORD +3 -0
  3. coinex_api/__init__.py +0 -7
  4. coinex_api/ccxt/__init__.py +0 -101
  5. coinex_api/ccxt/abstract/coinex.py +0 -237
  6. coinex_api/ccxt/async_support/__init__.py +0 -80
  7. coinex_api/ccxt/async_support/base/__init__.py +0 -1
  8. coinex_api/ccxt/async_support/base/exchange.py +0 -2100
  9. coinex_api/ccxt/async_support/base/throttler.py +0 -50
  10. coinex_api/ccxt/async_support/base/ws/__init__.py +0 -38
  11. coinex_api/ccxt/async_support/base/ws/aiohttp_client.py +0 -147
  12. coinex_api/ccxt/async_support/base/ws/cache.py +0 -213
  13. coinex_api/ccxt/async_support/base/ws/client.py +0 -214
  14. coinex_api/ccxt/async_support/base/ws/fast_client.py +0 -97
  15. coinex_api/ccxt/async_support/base/ws/functions.py +0 -59
  16. coinex_api/ccxt/async_support/base/ws/future.py +0 -69
  17. coinex_api/ccxt/async_support/base/ws/order_book.py +0 -78
  18. coinex_api/ccxt/async_support/base/ws/order_book_side.py +0 -174
  19. coinex_api/ccxt/async_support/coinex.py +0 -5833
  20. coinex_api/ccxt/base/__init__.py +0 -27
  21. coinex_api/ccxt/base/decimal_to_precision.py +0 -174
  22. coinex_api/ccxt/base/errors.py +0 -267
  23. coinex_api/ccxt/base/exchange.py +0 -6770
  24. coinex_api/ccxt/base/precise.py +0 -297
  25. coinex_api/ccxt/base/types.py +0 -577
  26. coinex_api/ccxt/coinex.py +0 -5832
  27. coinex_api/ccxt/pro/__init__.py +0 -21
  28. coinex_api/ccxt/pro/coinex.py +0 -1366
  29. coinex_api/ccxt/static_dependencies/README.md +0 -1
  30. coinex_api/ccxt/static_dependencies/__init__.py +0 -1
  31. coinex_api/ccxt/static_dependencies/ecdsa/__init__.py +0 -14
  32. coinex_api/ccxt/static_dependencies/ecdsa/_version.py +0 -520
  33. coinex_api/ccxt/static_dependencies/ecdsa/curves.py +0 -56
  34. coinex_api/ccxt/static_dependencies/ecdsa/der.py +0 -221
  35. coinex_api/ccxt/static_dependencies/ecdsa/ecdsa.py +0 -310
  36. coinex_api/ccxt/static_dependencies/ecdsa/ellipticcurve.py +0 -197
  37. coinex_api/ccxt/static_dependencies/ecdsa/keys.py +0 -332
  38. coinex_api/ccxt/static_dependencies/ecdsa/numbertheory.py +0 -531
  39. coinex_api/ccxt/static_dependencies/ecdsa/rfc6979.py +0 -100
  40. coinex_api/ccxt/static_dependencies/ecdsa/util.py +0 -266
  41. coinex_api/ccxt/static_dependencies/ethereum/__init__.py +0 -7
  42. coinex_api/ccxt/static_dependencies/ethereum/abi/__init__.py +0 -16
  43. coinex_api/ccxt/static_dependencies/ethereum/abi/abi.py +0 -19
  44. coinex_api/ccxt/static_dependencies/ethereum/abi/base.py +0 -152
  45. coinex_api/ccxt/static_dependencies/ethereum/abi/codec.py +0 -217
  46. coinex_api/ccxt/static_dependencies/ethereum/abi/constants.py +0 -3
  47. coinex_api/ccxt/static_dependencies/ethereum/abi/decoding.py +0 -565
  48. coinex_api/ccxt/static_dependencies/ethereum/abi/encoding.py +0 -720
  49. coinex_api/ccxt/static_dependencies/ethereum/abi/exceptions.py +0 -139
  50. coinex_api/ccxt/static_dependencies/ethereum/abi/grammar.py +0 -443
  51. coinex_api/ccxt/static_dependencies/ethereum/abi/packed.py +0 -13
  52. coinex_api/ccxt/static_dependencies/ethereum/abi/py.typed +0 -0
  53. coinex_api/ccxt/static_dependencies/ethereum/abi/registry.py +0 -643
  54. coinex_api/ccxt/static_dependencies/ethereum/abi/tools/__init__.py +0 -3
  55. coinex_api/ccxt/static_dependencies/ethereum/abi/tools/_strategies.py +0 -230
  56. coinex_api/ccxt/static_dependencies/ethereum/abi/utils/__init__.py +0 -0
  57. coinex_api/ccxt/static_dependencies/ethereum/abi/utils/numeric.py +0 -83
  58. coinex_api/ccxt/static_dependencies/ethereum/abi/utils/padding.py +0 -27
  59. coinex_api/ccxt/static_dependencies/ethereum/abi/utils/string.py +0 -19
  60. coinex_api/ccxt/static_dependencies/ethereum/account/__init__.py +0 -3
  61. coinex_api/ccxt/static_dependencies/ethereum/account/encode_typed_data/__init__.py +0 -4
  62. coinex_api/ccxt/static_dependencies/ethereum/account/encode_typed_data/encoding_and_hashing.py +0 -239
  63. coinex_api/ccxt/static_dependencies/ethereum/account/encode_typed_data/helpers.py +0 -40
  64. coinex_api/ccxt/static_dependencies/ethereum/account/messages.py +0 -263
  65. coinex_api/ccxt/static_dependencies/ethereum/account/py.typed +0 -0
  66. coinex_api/ccxt/static_dependencies/ethereum/hexbytes/__init__.py +0 -5
  67. coinex_api/ccxt/static_dependencies/ethereum/hexbytes/_utils.py +0 -54
  68. coinex_api/ccxt/static_dependencies/ethereum/hexbytes/main.py +0 -65
  69. coinex_api/ccxt/static_dependencies/ethereum/hexbytes/py.typed +0 -0
  70. coinex_api/ccxt/static_dependencies/ethereum/typing/__init__.py +0 -63
  71. coinex_api/ccxt/static_dependencies/ethereum/typing/abi.py +0 -6
  72. coinex_api/ccxt/static_dependencies/ethereum/typing/bls.py +0 -7
  73. coinex_api/ccxt/static_dependencies/ethereum/typing/discovery.py +0 -5
  74. coinex_api/ccxt/static_dependencies/ethereum/typing/encoding.py +0 -7
  75. coinex_api/ccxt/static_dependencies/ethereum/typing/enums.py +0 -17
  76. coinex_api/ccxt/static_dependencies/ethereum/typing/ethpm.py +0 -9
  77. coinex_api/ccxt/static_dependencies/ethereum/typing/evm.py +0 -20
  78. coinex_api/ccxt/static_dependencies/ethereum/typing/networks.py +0 -1122
  79. coinex_api/ccxt/static_dependencies/ethereum/typing/py.typed +0 -0
  80. coinex_api/ccxt/static_dependencies/ethereum/utils/__init__.py +0 -115
  81. coinex_api/ccxt/static_dependencies/ethereum/utils/abi.py +0 -72
  82. coinex_api/ccxt/static_dependencies/ethereum/utils/address.py +0 -171
  83. coinex_api/ccxt/static_dependencies/ethereum/utils/applicators.py +0 -151
  84. coinex_api/ccxt/static_dependencies/ethereum/utils/conversions.py +0 -190
  85. coinex_api/ccxt/static_dependencies/ethereum/utils/currency.py +0 -107
  86. coinex_api/ccxt/static_dependencies/ethereum/utils/curried/__init__.py +0 -269
  87. coinex_api/ccxt/static_dependencies/ethereum/utils/debug.py +0 -20
  88. coinex_api/ccxt/static_dependencies/ethereum/utils/decorators.py +0 -132
  89. coinex_api/ccxt/static_dependencies/ethereum/utils/encoding.py +0 -6
  90. coinex_api/ccxt/static_dependencies/ethereum/utils/exceptions.py +0 -4
  91. coinex_api/ccxt/static_dependencies/ethereum/utils/functional.py +0 -75
  92. coinex_api/ccxt/static_dependencies/ethereum/utils/hexadecimal.py +0 -74
  93. coinex_api/ccxt/static_dependencies/ethereum/utils/humanize.py +0 -188
  94. coinex_api/ccxt/static_dependencies/ethereum/utils/logging.py +0 -159
  95. coinex_api/ccxt/static_dependencies/ethereum/utils/module_loading.py +0 -31
  96. coinex_api/ccxt/static_dependencies/ethereum/utils/numeric.py +0 -43
  97. coinex_api/ccxt/static_dependencies/ethereum/utils/py.typed +0 -0
  98. coinex_api/ccxt/static_dependencies/ethereum/utils/toolz.py +0 -76
  99. coinex_api/ccxt/static_dependencies/ethereum/utils/types.py +0 -54
  100. coinex_api/ccxt/static_dependencies/ethereum/utils/typing/__init__.py +0 -18
  101. coinex_api/ccxt/static_dependencies/ethereum/utils/typing/misc.py +0 -14
  102. coinex_api/ccxt/static_dependencies/ethereum/utils/units.py +0 -31
  103. coinex_api/ccxt/static_dependencies/keccak/__init__.py +0 -3
  104. coinex_api/ccxt/static_dependencies/keccak/keccak.py +0 -197
  105. coinex_api/ccxt/static_dependencies/lark/__init__.py +0 -38
  106. coinex_api/ccxt/static_dependencies/lark/__pyinstaller/__init__.py +0 -6
  107. coinex_api/ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +0 -14
  108. coinex_api/ccxt/static_dependencies/lark/ast_utils.py +0 -59
  109. coinex_api/ccxt/static_dependencies/lark/common.py +0 -86
  110. coinex_api/ccxt/static_dependencies/lark/exceptions.py +0 -292
  111. coinex_api/ccxt/static_dependencies/lark/grammar.py +0 -130
  112. coinex_api/ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  113. coinex_api/ccxt/static_dependencies/lark/grammars/common.lark +0 -59
  114. coinex_api/ccxt/static_dependencies/lark/grammars/lark.lark +0 -62
  115. coinex_api/ccxt/static_dependencies/lark/grammars/python.lark +0 -302
  116. coinex_api/ccxt/static_dependencies/lark/grammars/unicode.lark +0 -7
  117. coinex_api/ccxt/static_dependencies/lark/indenter.py +0 -143
  118. coinex_api/ccxt/static_dependencies/lark/lark.py +0 -658
  119. coinex_api/ccxt/static_dependencies/lark/lexer.py +0 -678
  120. coinex_api/ccxt/static_dependencies/lark/load_grammar.py +0 -1428
  121. coinex_api/ccxt/static_dependencies/lark/parse_tree_builder.py +0 -391
  122. coinex_api/ccxt/static_dependencies/lark/parser_frontends.py +0 -257
  123. coinex_api/ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  124. coinex_api/ccxt/static_dependencies/lark/parsers/cyk.py +0 -340
  125. coinex_api/ccxt/static_dependencies/lark/parsers/earley.py +0 -314
  126. coinex_api/ccxt/static_dependencies/lark/parsers/earley_common.py +0 -42
  127. coinex_api/ccxt/static_dependencies/lark/parsers/earley_forest.py +0 -801
  128. coinex_api/ccxt/static_dependencies/lark/parsers/grammar_analysis.py +0 -203
  129. coinex_api/ccxt/static_dependencies/lark/parsers/lalr_analysis.py +0 -332
  130. coinex_api/ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +0 -158
  131. coinex_api/ccxt/static_dependencies/lark/parsers/lalr_parser.py +0 -122
  132. coinex_api/ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +0 -110
  133. coinex_api/ccxt/static_dependencies/lark/parsers/xearley.py +0 -165
  134. coinex_api/ccxt/static_dependencies/lark/py.typed +0 -0
  135. coinex_api/ccxt/static_dependencies/lark/reconstruct.py +0 -107
  136. coinex_api/ccxt/static_dependencies/lark/tools/__init__.py +0 -70
  137. coinex_api/ccxt/static_dependencies/lark/tools/nearley.py +0 -202
  138. coinex_api/ccxt/static_dependencies/lark/tools/serialize.py +0 -32
  139. coinex_api/ccxt/static_dependencies/lark/tools/standalone.py +0 -196
  140. coinex_api/ccxt/static_dependencies/lark/tree.py +0 -267
  141. coinex_api/ccxt/static_dependencies/lark/tree_matcher.py +0 -186
  142. coinex_api/ccxt/static_dependencies/lark/tree_templates.py +0 -180
  143. coinex_api/ccxt/static_dependencies/lark/utils.py +0 -343
  144. coinex_api/ccxt/static_dependencies/lark/visitors.py +0 -596
  145. coinex_api/ccxt/static_dependencies/marshmallow/__init__.py +0 -81
  146. coinex_api/ccxt/static_dependencies/marshmallow/base.py +0 -65
  147. coinex_api/ccxt/static_dependencies/marshmallow/class_registry.py +0 -94
  148. coinex_api/ccxt/static_dependencies/marshmallow/decorators.py +0 -231
  149. coinex_api/ccxt/static_dependencies/marshmallow/error_store.py +0 -60
  150. coinex_api/ccxt/static_dependencies/marshmallow/exceptions.py +0 -71
  151. coinex_api/ccxt/static_dependencies/marshmallow/fields.py +0 -2114
  152. coinex_api/ccxt/static_dependencies/marshmallow/orderedset.py +0 -89
  153. coinex_api/ccxt/static_dependencies/marshmallow/py.typed +0 -0
  154. coinex_api/ccxt/static_dependencies/marshmallow/schema.py +0 -1228
  155. coinex_api/ccxt/static_dependencies/marshmallow/types.py +0 -12
  156. coinex_api/ccxt/static_dependencies/marshmallow/utils.py +0 -378
  157. coinex_api/ccxt/static_dependencies/marshmallow/validate.py +0 -678
  158. coinex_api/ccxt/static_dependencies/marshmallow/warnings.py +0 -2
  159. coinex_api/ccxt/static_dependencies/marshmallow_dataclass/__init__.py +0 -1047
  160. coinex_api/ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +0 -51
  161. coinex_api/ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +0 -45
  162. coinex_api/ccxt/static_dependencies/marshmallow_dataclass/mypy.py +0 -71
  163. coinex_api/ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  164. coinex_api/ccxt/static_dependencies/marshmallow_dataclass/typing.py +0 -14
  165. coinex_api/ccxt/static_dependencies/marshmallow_dataclass/union_field.py +0 -82
  166. coinex_api/ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +0 -1
  167. coinex_api/ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +0 -193
  168. coinex_api/ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  169. coinex_api/ccxt/static_dependencies/msgpack/__init__.py +0 -55
  170. coinex_api/ccxt/static_dependencies/msgpack/_cmsgpack.pyx +0 -11
  171. coinex_api/ccxt/static_dependencies/msgpack/_packer.pyx +0 -374
  172. coinex_api/ccxt/static_dependencies/msgpack/_unpacker.pyx +0 -547
  173. coinex_api/ccxt/static_dependencies/msgpack/buff_converter.h +0 -8
  174. coinex_api/ccxt/static_dependencies/msgpack/exceptions.py +0 -48
  175. coinex_api/ccxt/static_dependencies/msgpack/ext.py +0 -168
  176. coinex_api/ccxt/static_dependencies/msgpack/fallback.py +0 -951
  177. coinex_api/ccxt/static_dependencies/msgpack/pack.h +0 -89
  178. coinex_api/ccxt/static_dependencies/msgpack/pack_template.h +0 -820
  179. coinex_api/ccxt/static_dependencies/msgpack/sysdep.h +0 -194
  180. coinex_api/ccxt/static_dependencies/msgpack/unpack.h +0 -391
  181. coinex_api/ccxt/static_dependencies/msgpack/unpack_define.h +0 -95
  182. coinex_api/ccxt/static_dependencies/msgpack/unpack_template.h +0 -464
  183. coinex_api/ccxt/static_dependencies/parsimonious/__init__.py +0 -10
  184. coinex_api/ccxt/static_dependencies/parsimonious/exceptions.py +0 -105
  185. coinex_api/ccxt/static_dependencies/parsimonious/expressions.py +0 -479
  186. coinex_api/ccxt/static_dependencies/parsimonious/grammar.py +0 -487
  187. coinex_api/ccxt/static_dependencies/parsimonious/nodes.py +0 -325
  188. coinex_api/ccxt/static_dependencies/parsimonious/utils.py +0 -40
  189. coinex_api/ccxt/static_dependencies/starknet/__init__.py +0 -0
  190. coinex_api/ccxt/static_dependencies/starknet/abi/v0/__init__.py +0 -2
  191. coinex_api/ccxt/static_dependencies/starknet/abi/v0/model.py +0 -44
  192. coinex_api/ccxt/static_dependencies/starknet/abi/v0/parser.py +0 -216
  193. coinex_api/ccxt/static_dependencies/starknet/abi/v0/schemas.py +0 -72
  194. coinex_api/ccxt/static_dependencies/starknet/abi/v0/shape.py +0 -63
  195. coinex_api/ccxt/static_dependencies/starknet/abi/v1/__init__.py +0 -2
  196. coinex_api/ccxt/static_dependencies/starknet/abi/v1/core_structures.json +0 -14
  197. coinex_api/ccxt/static_dependencies/starknet/abi/v1/model.py +0 -39
  198. coinex_api/ccxt/static_dependencies/starknet/abi/v1/parser.py +0 -220
  199. coinex_api/ccxt/static_dependencies/starknet/abi/v1/parser_transformer.py +0 -179
  200. coinex_api/ccxt/static_dependencies/starknet/abi/v1/schemas.py +0 -66
  201. coinex_api/ccxt/static_dependencies/starknet/abi/v1/shape.py +0 -47
  202. coinex_api/ccxt/static_dependencies/starknet/abi/v2/__init__.py +0 -2
  203. coinex_api/ccxt/static_dependencies/starknet/abi/v2/model.py +0 -89
  204. coinex_api/ccxt/static_dependencies/starknet/abi/v2/parser.py +0 -293
  205. coinex_api/ccxt/static_dependencies/starknet/abi/v2/parser_transformer.py +0 -192
  206. coinex_api/ccxt/static_dependencies/starknet/abi/v2/schemas.py +0 -132
  207. coinex_api/ccxt/static_dependencies/starknet/abi/v2/shape.py +0 -107
  208. coinex_api/ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  209. coinex_api/ccxt/static_dependencies/starknet/cairo/data_types.py +0 -123
  210. coinex_api/ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  211. coinex_api/ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +0 -77
  212. coinex_api/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +0 -46
  213. coinex_api/ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +0 -138
  214. coinex_api/ccxt/static_dependencies/starknet/cairo/felt.py +0 -64
  215. coinex_api/ccxt/static_dependencies/starknet/cairo/type_parser.py +0 -121
  216. coinex_api/ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  217. coinex_api/ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +0 -59
  218. coinex_api/ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  219. coinex_api/ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +0 -77
  220. coinex_api/ccxt/static_dependencies/starknet/ccxt_utils.py +0 -7
  221. coinex_api/ccxt/static_dependencies/starknet/common.py +0 -15
  222. coinex_api/ccxt/static_dependencies/starknet/constants.py +0 -39
  223. coinex_api/ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  224. coinex_api/ccxt/static_dependencies/starknet/hash/address.py +0 -79
  225. coinex_api/ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +0 -111
  226. coinex_api/ccxt/static_dependencies/starknet/hash/selector.py +0 -16
  227. coinex_api/ccxt/static_dependencies/starknet/hash/storage.py +0 -12
  228. coinex_api/ccxt/static_dependencies/starknet/hash/utils.py +0 -78
  229. coinex_api/ccxt/static_dependencies/starknet/models/__init__.py +0 -0
  230. coinex_api/ccxt/static_dependencies/starknet/models/typed_data.py +0 -45
  231. coinex_api/ccxt/static_dependencies/starknet/serialization/__init__.py +0 -24
  232. coinex_api/ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +0 -40
  233. coinex_api/ccxt/static_dependencies/starknet/serialization/_context.py +0 -142
  234. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +0 -10
  235. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +0 -82
  236. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +0 -43
  237. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +0 -37
  238. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +0 -66
  239. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +0 -71
  240. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +0 -71
  241. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +0 -50
  242. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +0 -58
  243. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +0 -43
  244. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +0 -40
  245. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +0 -72
  246. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +0 -36
  247. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +0 -36
  248. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +0 -76
  249. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +0 -100
  250. coinex_api/ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +0 -32
  251. coinex_api/ccxt/static_dependencies/starknet/serialization/errors.py +0 -10
  252. coinex_api/ccxt/static_dependencies/starknet/serialization/factory.py +0 -229
  253. coinex_api/ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +0 -110
  254. coinex_api/ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +0 -59
  255. coinex_api/ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  256. coinex_api/ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +0 -86
  257. coinex_api/ccxt/static_dependencies/starknet/utils/iterable.py +0 -13
  258. coinex_api/ccxt/static_dependencies/starknet/utils/schema.py +0 -13
  259. coinex_api/ccxt/static_dependencies/starknet/utils/typed_data.py +0 -182
  260. coinex_api/ccxt/static_dependencies/starkware/__init__.py +0 -0
  261. coinex_api/ccxt/static_dependencies/starkware/crypto/__init__.py +0 -0
  262. coinex_api/ccxt/static_dependencies/starkware/crypto/fast_pedersen_hash.py +0 -50
  263. coinex_api/ccxt/static_dependencies/starkware/crypto/math_utils.py +0 -78
  264. coinex_api/ccxt/static_dependencies/starkware/crypto/signature.py +0 -2344
  265. coinex_api/ccxt/static_dependencies/starkware/crypto/utils.py +0 -63
  266. coinex_api/ccxt/static_dependencies/sympy/__init__.py +0 -0
  267. coinex_api/ccxt/static_dependencies/sympy/core/__init__.py +0 -0
  268. coinex_api/ccxt/static_dependencies/sympy/core/intfunc.py +0 -35
  269. coinex_api/ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  270. coinex_api/ccxt/static_dependencies/sympy/external/gmpy.py +0 -345
  271. coinex_api/ccxt/static_dependencies/sympy/external/importtools.py +0 -187
  272. coinex_api/ccxt/static_dependencies/sympy/external/ntheory.py +0 -637
  273. coinex_api/ccxt/static_dependencies/sympy/external/pythonmpq.py +0 -341
  274. coinex_api/ccxt/static_dependencies/toolz/__init__.py +0 -26
  275. coinex_api/ccxt/static_dependencies/toolz/_signatures.py +0 -784
  276. coinex_api/ccxt/static_dependencies/toolz/_version.py +0 -520
  277. coinex_api/ccxt/static_dependencies/toolz/compatibility.py +0 -30
  278. coinex_api/ccxt/static_dependencies/toolz/curried/__init__.py +0 -101
  279. coinex_api/ccxt/static_dependencies/toolz/curried/exceptions.py +0 -22
  280. coinex_api/ccxt/static_dependencies/toolz/curried/operator.py +0 -22
  281. coinex_api/ccxt/static_dependencies/toolz/dicttoolz.py +0 -339
  282. coinex_api/ccxt/static_dependencies/toolz/functoolz.py +0 -1049
  283. coinex_api/ccxt/static_dependencies/toolz/itertoolz.py +0 -1057
  284. coinex_api/ccxt/static_dependencies/toolz/recipes.py +0 -46
  285. coinex_api/ccxt/static_dependencies/toolz/utils.py +0 -9
  286. coinex_api/ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  287. coinex_api/ccxt/static_dependencies/typing_inspect/typing_inspect.py +0 -851
  288. coinex_api-0.0.7.dist-info/RECORD +0 -288
  289. {coinex_api-0.0.7.dist-info → coinex_api-0.0.8.dist-info}/WHEEL +0 -0
@@ -1,565 +0,0 @@
1
- import abc
2
- import decimal
3
- import io
4
- from typing import (
5
- Any,
6
- )
7
-
8
- from ..utils import (
9
- big_endian_to_int,
10
- to_normalized_address,
11
- to_tuple,
12
- )
13
-
14
- from .base import (
15
- BaseCoder,
16
- parse_tuple_type_str,
17
- parse_type_str,
18
- )
19
- from .exceptions import (
20
- DecodingError,
21
- InsufficientDataBytes,
22
- NonEmptyPaddingBytes,
23
- )
24
- from .utils.numeric import (
25
- TEN,
26
- abi_decimal_context,
27
- ceil32,
28
- )
29
-
30
-
31
- class ContextFramesBytesIO(io.BytesIO):
32
- """
33
- A byte stream which can track a series of contextual frames in a stack. This
34
- data structure is necessary to perform nested decodings using the
35
- :py:class:``HeadTailDecoder`` since offsets present in head sections are
36
- relative only to a particular encoded object. These offsets can only be
37
- used to locate a position in a decoding stream if they are paired with a
38
- contextual offset that establishes the position of the object in which they
39
- are found.
40
-
41
- For example, consider the encoding of a value for the following type::
42
-
43
- type: (int,(int,int[]))
44
- value: (1,(2,[3,3]))
45
-
46
- There are two tuples in this type: one inner and one outer. The inner tuple
47
- type contains a dynamic type ``int[]`` and, therefore, is itself dynamic.
48
- This means that its value encoding will be placed in the tail section of the
49
- outer tuple's encoding. Furthermore, the inner tuple's encoding will,
50
- itself, contain a tail section with the encoding for ``[3,3]``. All
51
- together, the encoded value of ``(1,(2,[3,3]))`` would look like this (the
52
- data values are normally 32 bytes wide but have been truncated to remove the
53
- redundant zeros at the beginnings of their encodings)::
54
-
55
- offset data
56
- --------------------------
57
- ^ 0 0x01
58
- | 32 0x40 <-- Offset of object A in global frame (64)
59
- -----|--------------------
60
- Global frame ^ 64 0x02 <-- Beginning of object A (64 w/offset 0 = 64)
61
- | | 96 0x40 <-- Offset of object B in frame of object A (64)
62
- -----|-Object A's frame---
63
- | | 128 0x02 <-- Beginning of object B (64 w/offset 64 = 128)
64
- | | 160 0x03
65
- v v 192 0x03
66
- --------------------------
67
-
68
- Note that the offset of object B is encoded as 64 which only specifies the
69
- beginning of its encoded value relative to the beginning of object A's
70
- encoding. Globally, object B is located at offset 128. In order to make
71
- sense out of object B's offset, it needs to be positioned in the context of
72
- its enclosing object's frame (object A).
73
- """
74
-
75
- def __init__(self, *args, **kwargs):
76
- super().__init__(*args, **kwargs)
77
-
78
- self._frames = []
79
- self._total_offset = 0
80
-
81
- def seek_in_frame(self, pos, *args, **kwargs):
82
- """
83
- Seeks relative to the total offset of the current contextual frames.
84
- """
85
- self.seek(self._total_offset + pos, *args, **kwargs)
86
-
87
- def push_frame(self, offset):
88
- """
89
- Pushes a new contextual frame onto the stack with the given offset and a
90
- return position at the current cursor position then seeks to the new
91
- total offset.
92
- """
93
- self._frames.append((offset, self.tell()))
94
- self._total_offset += offset
95
-
96
- self.seek_in_frame(0)
97
-
98
- def pop_frame(self):
99
- """
100
- Pops the current contextual frame off of the stack and returns the
101
- cursor to the frame's return position.
102
- """
103
- try:
104
- offset, return_pos = self._frames.pop()
105
- except IndexError:
106
- raise IndexError("no frames to pop")
107
- self._total_offset -= offset
108
-
109
- self.seek(return_pos)
110
-
111
-
112
- class BaseDecoder(BaseCoder, metaclass=abc.ABCMeta):
113
- """
114
- Base class for all decoder classes. Subclass this if you want to define a
115
- custom decoder class. Subclasses must also implement
116
- :any:`BaseCoder.from_type_str`.
117
- """
118
-
119
- @abc.abstractmethod
120
- def decode(self, stream: ContextFramesBytesIO) -> Any: # pragma: no cover
121
- """
122
- Decodes the given stream of bytes into a python value. Should raise
123
- :any:`exceptions.DecodingError` if a python value cannot be decoded
124
- from the given byte stream.
125
- """
126
- pass
127
-
128
- def __call__(self, stream: ContextFramesBytesIO) -> Any:
129
- return self.decode(stream)
130
-
131
-
132
- class HeadTailDecoder(BaseDecoder):
133
- is_dynamic = True
134
-
135
- tail_decoder = None
136
-
137
- def validate(self):
138
- super().validate()
139
-
140
- if self.tail_decoder is None:
141
- raise ValueError("No `tail_decoder` set")
142
-
143
- def decode(self, stream):
144
- start_pos = decode_uint_256(stream)
145
-
146
- stream.push_frame(start_pos)
147
- value = self.tail_decoder(stream)
148
- stream.pop_frame()
149
-
150
- return value
151
-
152
-
153
- class TupleDecoder(BaseDecoder):
154
- decoders = None
155
-
156
- def __init__(self, **kwargs):
157
- super().__init__(**kwargs)
158
-
159
- self.decoders = tuple(
160
- HeadTailDecoder(tail_decoder=d) if getattr(d, "is_dynamic", False) else d
161
- for d in self.decoders
162
- )
163
-
164
- self.is_dynamic = any(getattr(d, "is_dynamic", False) for d in self.decoders)
165
-
166
- def validate(self):
167
- super().validate()
168
-
169
- if self.decoders is None:
170
- raise ValueError("No `decoders` set")
171
-
172
- @to_tuple
173
- def decode(self, stream):
174
- for decoder in self.decoders:
175
- yield decoder(stream)
176
-
177
- @parse_tuple_type_str
178
- def from_type_str(cls, abi_type, registry):
179
- decoders = tuple(
180
- registry.get_decoder(c.to_type_str()) for c in abi_type.components
181
- )
182
-
183
- return cls(decoders=decoders)
184
-
185
-
186
- class SingleDecoder(BaseDecoder):
187
- decoder_fn = None
188
-
189
- def validate(self):
190
- super().validate()
191
-
192
- if self.decoder_fn is None:
193
- raise ValueError("No `decoder_fn` set")
194
-
195
- def validate_padding_bytes(self, value, padding_bytes):
196
- raise NotImplementedError("Must be implemented by subclasses")
197
-
198
- def decode(self, stream):
199
- raw_data = self.read_data_from_stream(stream)
200
- data, padding_bytes = self.split_data_and_padding(raw_data)
201
- value = self.decoder_fn(data)
202
- self.validate_padding_bytes(value, padding_bytes)
203
-
204
- return value
205
-
206
- def read_data_from_stream(self, stream):
207
- raise NotImplementedError("Must be implemented by subclasses")
208
-
209
- def split_data_and_padding(self, raw_data):
210
- return raw_data, b""
211
-
212
-
213
- class BaseArrayDecoder(BaseDecoder):
214
- item_decoder = None
215
-
216
- def __init__(self, **kwargs):
217
- super().__init__(**kwargs)
218
-
219
- # Use a head-tail decoder to decode dynamic elements
220
- if self.item_decoder.is_dynamic:
221
- self.item_decoder = HeadTailDecoder(
222
- tail_decoder=self.item_decoder,
223
- )
224
-
225
- def validate(self):
226
- super().validate()
227
-
228
- if self.item_decoder is None:
229
- raise ValueError("No `item_decoder` set")
230
-
231
- @parse_type_str(with_arrlist=True)
232
- def from_type_str(cls, abi_type, registry):
233
- item_decoder = registry.get_decoder(abi_type.item_type.to_type_str())
234
-
235
- array_spec = abi_type.arrlist[-1]
236
- if len(array_spec) == 1:
237
- # If array dimension is fixed
238
- return SizedArrayDecoder(
239
- array_size=array_spec[0],
240
- item_decoder=item_decoder,
241
- )
242
- else:
243
- # If array dimension is dynamic
244
- return DynamicArrayDecoder(item_decoder=item_decoder)
245
-
246
-
247
- class SizedArrayDecoder(BaseArrayDecoder):
248
- array_size = None
249
-
250
- def __init__(self, **kwargs):
251
- super().__init__(**kwargs)
252
-
253
- self.is_dynamic = self.item_decoder.is_dynamic
254
-
255
- @to_tuple
256
- def decode(self, stream):
257
- for _ in range(self.array_size):
258
- yield self.item_decoder(stream)
259
-
260
-
261
- class DynamicArrayDecoder(BaseArrayDecoder):
262
- # Dynamic arrays are always dynamic, regardless of their elements
263
- is_dynamic = True
264
-
265
- @to_tuple
266
- def decode(self, stream):
267
- array_size = decode_uint_256(stream)
268
- stream.push_frame(32)
269
- for _ in range(array_size):
270
- yield self.item_decoder(stream)
271
- stream.pop_frame()
272
-
273
-
274
- class FixedByteSizeDecoder(SingleDecoder):
275
- decoder_fn = None
276
- value_bit_size = None
277
- data_byte_size = None
278
- is_big_endian = None
279
-
280
- def validate(self):
281
- super().validate()
282
-
283
- if self.value_bit_size is None:
284
- raise ValueError("`value_bit_size` may not be None")
285
- if self.data_byte_size is None:
286
- raise ValueError("`data_byte_size` may not be None")
287
- if self.decoder_fn is None:
288
- raise ValueError("`decoder_fn` may not be None")
289
- if self.is_big_endian is None:
290
- raise ValueError("`is_big_endian` may not be None")
291
-
292
- if self.value_bit_size % 8 != 0:
293
- raise ValueError(
294
- "Invalid value bit size: {0}. Must be a multiple of 8".format(
295
- self.value_bit_size,
296
- )
297
- )
298
-
299
- if self.value_bit_size > self.data_byte_size * 8:
300
- raise ValueError("Value byte size exceeds data size")
301
-
302
- def read_data_from_stream(self, stream):
303
- data = stream.read(self.data_byte_size)
304
-
305
- if len(data) != self.data_byte_size:
306
- raise InsufficientDataBytes(
307
- "Tried to read {0} bytes. Only got {1} bytes".format(
308
- self.data_byte_size,
309
- len(data),
310
- )
311
- )
312
-
313
- return data
314
-
315
- def split_data_and_padding(self, raw_data):
316
- value_byte_size = self._get_value_byte_size()
317
- padding_size = self.data_byte_size - value_byte_size
318
-
319
- if self.is_big_endian:
320
- padding_bytes = raw_data[:padding_size]
321
- data = raw_data[padding_size:]
322
- else:
323
- data = raw_data[:value_byte_size]
324
- padding_bytes = raw_data[value_byte_size:]
325
-
326
- return data, padding_bytes
327
-
328
- def validate_padding_bytes(self, value, padding_bytes):
329
- value_byte_size = self._get_value_byte_size()
330
- padding_size = self.data_byte_size - value_byte_size
331
-
332
- if padding_bytes != b"\x00" * padding_size:
333
- raise NonEmptyPaddingBytes(
334
- "Padding bytes were not empty: {0}".format(repr(padding_bytes))
335
- )
336
-
337
- def _get_value_byte_size(self):
338
- value_byte_size = self.value_bit_size // 8
339
- return value_byte_size
340
-
341
-
342
- class Fixed32ByteSizeDecoder(FixedByteSizeDecoder):
343
- data_byte_size = 32
344
-
345
-
346
- class BooleanDecoder(Fixed32ByteSizeDecoder):
347
- value_bit_size = 8
348
- is_big_endian = True
349
-
350
- @staticmethod
351
- def decoder_fn(data):
352
- if data == b"\x00":
353
- return False
354
- elif data == b"\x01":
355
- return True
356
- else:
357
- raise NonEmptyPaddingBytes(
358
- "Boolean must be either 0x0 or 0x1. Got: {0}".format(repr(data))
359
- )
360
-
361
- @parse_type_str("bool")
362
- def from_type_str(cls, abi_type, registry):
363
- return cls()
364
-
365
-
366
- class AddressDecoder(Fixed32ByteSizeDecoder):
367
- value_bit_size = 20 * 8
368
- is_big_endian = True
369
- decoder_fn = staticmethod(to_normalized_address)
370
-
371
- @parse_type_str("address")
372
- def from_type_str(cls, abi_type, registry):
373
- return cls()
374
-
375
-
376
- #
377
- # Unsigned Integer Decoders
378
- #
379
- class UnsignedIntegerDecoder(Fixed32ByteSizeDecoder):
380
- decoder_fn = staticmethod(big_endian_to_int)
381
- is_big_endian = True
382
-
383
- @parse_type_str("uint")
384
- def from_type_str(cls, abi_type, registry):
385
- return cls(value_bit_size=abi_type.sub)
386
-
387
-
388
- decode_uint_256 = UnsignedIntegerDecoder(value_bit_size=256)
389
-
390
-
391
- #
392
- # Signed Integer Decoders
393
- #
394
- class SignedIntegerDecoder(Fixed32ByteSizeDecoder):
395
- is_big_endian = True
396
-
397
- def decoder_fn(self, data):
398
- value = big_endian_to_int(data)
399
- if value >= 2 ** (self.value_bit_size - 1):
400
- return value - 2**self.value_bit_size
401
- else:
402
- return value
403
-
404
- def validate_padding_bytes(self, value, padding_bytes):
405
- value_byte_size = self._get_value_byte_size()
406
- padding_size = self.data_byte_size - value_byte_size
407
-
408
- if value >= 0:
409
- expected_padding_bytes = b"\x00" * padding_size
410
- else:
411
- expected_padding_bytes = b"\xff" * padding_size
412
-
413
- if padding_bytes != expected_padding_bytes:
414
- raise NonEmptyPaddingBytes(
415
- "Padding bytes were not empty: {0}".format(repr(padding_bytes))
416
- )
417
-
418
- @parse_type_str("int")
419
- def from_type_str(cls, abi_type, registry):
420
- return cls(value_bit_size=abi_type.sub)
421
-
422
-
423
- #
424
- # Bytes1..32
425
- #
426
- class BytesDecoder(Fixed32ByteSizeDecoder):
427
- is_big_endian = False
428
-
429
- @staticmethod
430
- def decoder_fn(data):
431
- return data
432
-
433
- @parse_type_str("bytes")
434
- def from_type_str(cls, abi_type, registry):
435
- return cls(value_bit_size=abi_type.sub * 8)
436
-
437
-
438
- class BaseFixedDecoder(Fixed32ByteSizeDecoder):
439
- frac_places = None
440
- is_big_endian = True
441
-
442
- def validate(self):
443
- super().validate()
444
-
445
- if self.frac_places is None:
446
- raise ValueError("must specify `frac_places`")
447
-
448
- if self.frac_places <= 0 or self.frac_places > 80:
449
- raise ValueError("`frac_places` must be in range (0, 80]")
450
-
451
-
452
- class UnsignedFixedDecoder(BaseFixedDecoder):
453
- def decoder_fn(self, data):
454
- value = big_endian_to_int(data)
455
-
456
- with decimal.localcontext(abi_decimal_context):
457
- decimal_value = decimal.Decimal(value) / TEN**self.frac_places
458
-
459
- return decimal_value
460
-
461
- @parse_type_str("ufixed")
462
- def from_type_str(cls, abi_type, registry):
463
- value_bit_size, frac_places = abi_type.sub
464
-
465
- return cls(value_bit_size=value_bit_size, frac_places=frac_places)
466
-
467
-
468
- class SignedFixedDecoder(BaseFixedDecoder):
469
- def decoder_fn(self, data):
470
- value = big_endian_to_int(data)
471
- if value >= 2 ** (self.value_bit_size - 1):
472
- signed_value = value - 2**self.value_bit_size
473
- else:
474
- signed_value = value
475
-
476
- with decimal.localcontext(abi_decimal_context):
477
- decimal_value = decimal.Decimal(signed_value) / TEN**self.frac_places
478
-
479
- return decimal_value
480
-
481
- def validate_padding_bytes(self, value, padding_bytes):
482
- value_byte_size = self._get_value_byte_size()
483
- padding_size = self.data_byte_size - value_byte_size
484
-
485
- if value >= 0:
486
- expected_padding_bytes = b"\x00" * padding_size
487
- else:
488
- expected_padding_bytes = b"\xff" * padding_size
489
-
490
- if padding_bytes != expected_padding_bytes:
491
- raise NonEmptyPaddingBytes(
492
- "Padding bytes were not empty: {0}".format(repr(padding_bytes))
493
- )
494
-
495
- @parse_type_str("fixed")
496
- def from_type_str(cls, abi_type, registry):
497
- value_bit_size, frac_places = abi_type.sub
498
-
499
- return cls(value_bit_size=value_bit_size, frac_places=frac_places)
500
-
501
-
502
- #
503
- # String and Bytes
504
- #
505
- class ByteStringDecoder(SingleDecoder):
506
- is_dynamic = True
507
-
508
- @staticmethod
509
- def decoder_fn(data):
510
- return data
511
-
512
- @staticmethod
513
- def read_data_from_stream(stream):
514
- data_length = decode_uint_256(stream)
515
- padded_length = ceil32(data_length)
516
-
517
- data = stream.read(padded_length)
518
-
519
- if len(data) < padded_length:
520
- raise InsufficientDataBytes(
521
- "Tried to read {0} bytes. Only got {1} bytes".format(
522
- padded_length,
523
- len(data),
524
- )
525
- )
526
-
527
- padding_bytes = data[data_length:]
528
-
529
- if padding_bytes != b"\x00" * (padded_length - data_length):
530
- raise NonEmptyPaddingBytes(
531
- "Padding bytes were not empty: {0}".format(repr(padding_bytes))
532
- )
533
-
534
- return data[:data_length]
535
-
536
- def validate_padding_bytes(self, value, padding_bytes):
537
- pass
538
-
539
- @parse_type_str("bytes")
540
- def from_type_str(cls, abi_type, registry):
541
- return cls()
542
-
543
-
544
- class StringDecoder(ByteStringDecoder):
545
- @parse_type_str("string")
546
- def from_type_str(cls, abi_type, registry):
547
- return cls()
548
-
549
- @staticmethod
550
- def decoder_fn(data):
551
- try:
552
- value = data.decode("utf-8")
553
- except UnicodeDecodeError as e:
554
- raise DecodingError(
555
- e.encoding,
556
- e.object,
557
- e.start,
558
- e.end,
559
- "The returned type for this function is string which is "
560
- "expected to be a UTF8 encoded string of text. The returned "
561
- "value could not be decoded as valid UTF8. This is indicative "
562
- "of a broken application which is using incorrect return types for "
563
- "binary data.",
564
- ) from e
565
- return value