faster-eth-abi 5.2.24__cp311-cp311-win_amd64.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 (49) hide show
  1. faster_eth_abi/__init__.py +17 -0
  2. faster_eth_abi/_codec.cp311-win_amd64.pyd +0 -0
  3. faster_eth_abi/_codec.py +83 -0
  4. faster_eth_abi/_decoding.cp311-win_amd64.pyd +0 -0
  5. faster_eth_abi/_decoding.py +372 -0
  6. faster_eth_abi/_encoding.cp311-win_amd64.pyd +0 -0
  7. faster_eth_abi/_encoding.py +514 -0
  8. faster_eth_abi/_grammar.cp311-win_amd64.pyd +0 -0
  9. faster_eth_abi/_grammar.py +375 -0
  10. faster_eth_abi/abi.cp311-win_amd64.pyd +0 -0
  11. faster_eth_abi/abi.py +17 -0
  12. faster_eth_abi/base.py +45 -0
  13. faster_eth_abi/codec.py +2809 -0
  14. faster_eth_abi/constants.cp311-win_amd64.pyd +0 -0
  15. faster_eth_abi/constants.py +7 -0
  16. faster_eth_abi/decoding.py +555 -0
  17. faster_eth_abi/encoding.py +738 -0
  18. faster_eth_abi/exceptions.cp311-win_amd64.pyd +0 -0
  19. faster_eth_abi/exceptions.py +127 -0
  20. faster_eth_abi/from_type_str.cp311-win_amd64.pyd +0 -0
  21. faster_eth_abi/from_type_str.py +141 -0
  22. faster_eth_abi/grammar.py +172 -0
  23. faster_eth_abi/io.py +107 -0
  24. faster_eth_abi/packed.cp311-win_amd64.pyd +0 -0
  25. faster_eth_abi/packed.py +19 -0
  26. faster_eth_abi/py.typed +0 -0
  27. faster_eth_abi/registry.py +758 -0
  28. faster_eth_abi/tools/__init__.cp311-win_amd64.pyd +0 -0
  29. faster_eth_abi/tools/__init__.py +3 -0
  30. faster_eth_abi/tools/_strategies.cp311-win_amd64.pyd +0 -0
  31. faster_eth_abi/tools/_strategies.py +246 -0
  32. faster_eth_abi/typing.py +4627 -0
  33. faster_eth_abi/utils/__init__.cp311-win_amd64.pyd +0 -0
  34. faster_eth_abi/utils/__init__.py +0 -0
  35. faster_eth_abi/utils/localcontext.cp311-win_amd64.pyd +0 -0
  36. faster_eth_abi/utils/localcontext.py +49 -0
  37. faster_eth_abi/utils/numeric.cp311-win_amd64.pyd +0 -0
  38. faster_eth_abi/utils/numeric.py +117 -0
  39. faster_eth_abi/utils/padding.cp311-win_amd64.pyd +0 -0
  40. faster_eth_abi/utils/padding.py +22 -0
  41. faster_eth_abi/utils/string.cp311-win_amd64.pyd +0 -0
  42. faster_eth_abi/utils/string.py +19 -0
  43. faster_eth_abi/utils/validation.cp311-win_amd64.pyd +0 -0
  44. faster_eth_abi/utils/validation.py +18 -0
  45. faster_eth_abi-5.2.24.dist-info/METADATA +134 -0
  46. faster_eth_abi-5.2.24.dist-info/RECORD +49 -0
  47. faster_eth_abi-5.2.24.dist-info/WHEEL +5 -0
  48. faster_eth_abi-5.2.24.dist-info/top_level.txt +2 -0
  49. faster_eth_abi__mypyc.cp311-win_amd64.pyd +0 -0
File without changes
@@ -0,0 +1,49 @@
1
+ import decimal
2
+ from decimal import (
3
+ Context,
4
+ )
5
+ from types import (
6
+ TracebackType,
7
+ )
8
+ from typing import (
9
+ Final,
10
+ Optional,
11
+ Type,
12
+ TypeVar,
13
+ final,
14
+ )
15
+
16
+ from faster_eth_abi.utils.numeric import (
17
+ abi_decimal_context,
18
+ )
19
+
20
+
21
+ _TExc = TypeVar("_TExc", bound=BaseException)
22
+
23
+ getcontext: Final = decimal.getcontext
24
+ setcontext: Final = decimal.setcontext
25
+
26
+
27
+ @final
28
+ class _DecimalContextManager:
29
+ """Context manager class to support decimal.localcontext().
30
+
31
+ Sets a copy of the supplied context in __enter__() and restores
32
+ the previous decimal context in __exit__()
33
+ """
34
+ saved_context: Context
35
+ def __init__(self, new_context: Context) -> None:
36
+ self.new_context: Final = new_context.copy()
37
+ def __enter__(self) -> Context:
38
+ self.saved_context = getcontext()
39
+ setcontext(self.new_context)
40
+ return self.new_context
41
+ def __exit__(
42
+ self,
43
+ t: Optional[Type[_TExc]],
44
+ v: Optional[_TExc],
45
+ tb: Optional[TracebackType],
46
+ ) -> None:
47
+ setcontext(self.saved_context)
48
+
49
+ DECIMAL_CONTEXT: Final = _DecimalContextManager(abi_decimal_context)
@@ -0,0 +1,117 @@
1
+ import decimal
2
+ from typing import (
3
+ Callable,
4
+ Dict,
5
+ Final,
6
+ Tuple,
7
+ )
8
+
9
+ ABI_DECIMAL_PREC: Final = 999
10
+
11
+ abi_decimal_context: Final = decimal.Context(prec=ABI_DECIMAL_PREC)
12
+ decimal_localcontext: Final = decimal.localcontext
13
+
14
+ ZERO: Final = decimal.Decimal(0)
15
+ TEN: Final = decimal.Decimal(10)
16
+
17
+ Decimal: Final = decimal.Decimal
18
+
19
+
20
+ def ceil32(x: int) -> int:
21
+ remainder = x % 32
22
+ return x if remainder == 0 else x + 32 - remainder
23
+
24
+
25
+ _unsigned_integer_bounds_cache: Final[Dict[int, Tuple[int, int]]] = {}
26
+
27
+
28
+ def compute_unsigned_integer_bounds(num_bits: int) -> Tuple[int, int]:
29
+ bounds = _unsigned_integer_bounds_cache.get(num_bits)
30
+ if bounds is None:
31
+ bounds = 0, 2**num_bits - 1
32
+ _unsigned_integer_bounds_cache[num_bits] = bounds
33
+ return bounds
34
+
35
+
36
+ _signed_integer_bounds_cache: Final[Dict[int, Tuple[int, int]]] = {}
37
+
38
+
39
+ def compute_signed_integer_bounds(num_bits: int) -> Tuple[int, int]:
40
+ bounds = _signed_integer_bounds_cache.get(num_bits)
41
+ if bounds is None:
42
+ overflow_at = 2 ** (num_bits - 1)
43
+ min_value = -overflow_at
44
+ max_value = overflow_at - 1
45
+ bounds = min_value, max_value
46
+ _signed_integer_bounds_cache[num_bits] = bounds
47
+ return bounds
48
+
49
+
50
+ _unsigned_fixed_bounds_cache: Final[Dict[Tuple[int, int], decimal.Decimal]] = {}
51
+
52
+
53
+ def compute_unsigned_fixed_bounds(
54
+ num_bits: int,
55
+ frac_places: int,
56
+ ) -> Tuple[decimal.Decimal, decimal.Decimal]:
57
+ upper = _unsigned_fixed_bounds_cache.get((num_bits, frac_places))
58
+ if upper is None:
59
+ int_upper = 2**num_bits - 1
60
+
61
+ with decimal_localcontext(abi_decimal_context):
62
+ upper = Decimal(int_upper) * TEN**-frac_places
63
+
64
+ _unsigned_fixed_bounds_cache[(num_bits, frac_places)] = upper
65
+
66
+ return ZERO, upper
67
+
68
+
69
+ _signed_fixed_bounds_cache: Final[
70
+ Dict[Tuple[int, int], Tuple[decimal.Decimal, decimal.Decimal]]
71
+ ] = {}
72
+
73
+
74
+ def compute_signed_fixed_bounds(
75
+ num_bits: int,
76
+ frac_places: int,
77
+ ) -> Tuple[decimal.Decimal, decimal.Decimal]:
78
+ bounds = _signed_fixed_bounds_cache.get((num_bits, frac_places))
79
+ if bounds is None:
80
+ int_lower, int_upper = compute_signed_integer_bounds(num_bits)
81
+
82
+ with decimal_localcontext(abi_decimal_context):
83
+ exp = TEN**-frac_places
84
+ lower = Decimal(int_lower) * exp
85
+ upper = Decimal(int_upper) * exp
86
+
87
+ bounds = lower, upper
88
+ _signed_fixed_bounds_cache[(num_bits, frac_places)] = bounds
89
+
90
+ return bounds
91
+
92
+
93
+ def scale_places(places: int) -> Callable[[decimal.Decimal], decimal.Decimal]:
94
+ """
95
+ Returns a function that shifts the decimal point of decimal values to the
96
+ right by ``places`` places.
97
+ """
98
+ if not isinstance(places, int):
99
+ raise ValueError(
100
+ f"Argument `places` must be int. Got value {places} "
101
+ f"of type {type(places)}.",
102
+ )
103
+
104
+ with decimal_localcontext(abi_decimal_context):
105
+ scaling_factor = TEN**-places
106
+
107
+ def f(x: decimal.Decimal) -> decimal.Decimal:
108
+ with decimal_localcontext(abi_decimal_context):
109
+ return x * scaling_factor
110
+
111
+ places_repr = f"Eneg{places}" if places > 0 else f"Epos{-places}"
112
+ func_name = f"scale_by_{places_repr}"
113
+
114
+ f.__name__ = func_name
115
+ f.__qualname__ = func_name
116
+
117
+ return f
@@ -0,0 +1,22 @@
1
+ def zpad(value: bytes, length: int) -> bytes:
2
+ return value.rjust(length, b"\x00")
3
+
4
+
5
+ def zpad32(value: bytes) -> bytes:
6
+ return zpad(value, length=32)
7
+
8
+
9
+ def zpad_right(value: bytes, length: int) -> bytes:
10
+ return value.ljust(length, b"\x00")
11
+
12
+
13
+ def zpad32_right(value: bytes) -> bytes:
14
+ return zpad_right(value, length=32)
15
+
16
+
17
+ def fpad(value: bytes, length: int) -> bytes:
18
+ return value.rjust(length, b"\xff")
19
+
20
+
21
+ def fpad32(value: bytes) -> bytes:
22
+ return fpad(value, length=32)
@@ -0,0 +1,19 @@
1
+ from typing import (
2
+ Any,
3
+ )
4
+
5
+
6
+ def abbr(value: Any, limit: int = 79) -> str:
7
+ """
8
+ Converts a value into its string representation and abbreviates that
9
+ representation based on the given length `limit` if necessary.
10
+ """
11
+ rep = repr(value)
12
+
13
+ if len(rep) > limit:
14
+ if limit < 3:
15
+ raise ValueError("Abbreviation limit may not be less than 3")
16
+
17
+ rep = rep[: limit - 3] + "..."
18
+
19
+ return rep
@@ -0,0 +1,18 @@
1
+ from typing import (
2
+ Any,
3
+ )
4
+
5
+
6
+ def validate_bytes_param(param: Any, param_name: str) -> None:
7
+ if not isinstance(param, (bytes, bytearray)):
8
+ raise TypeError(
9
+ f"The `{param_name}` value must be of bytes type. Got {type(param)}"
10
+ )
11
+
12
+
13
+ def validate_list_like_param(param: Any, param_name: str) -> None:
14
+ if not isinstance(param, (list, tuple)):
15
+ raise TypeError(
16
+ f"The `{param_name}` value type must be one of list or tuple. "
17
+ f"Got {type(param)}"
18
+ )
@@ -0,0 +1,134 @@
1
+ Metadata-Version: 2.4
2
+ Name: faster_eth_abi
3
+ Version: 5.2.24
4
+ Summary: A ~2-6x faster fork of eth_abi: Python utilities for working with Ethereum ABI definitions, especially encoding and decoding. Implemented in C.
5
+ Home-page: https://github.com/BobTheBuidler/faster-eth-abi
6
+ Author: The Ethereum Foundation
7
+ Author-email: snakecharmers@ethereum.org
8
+ License: MIT
9
+ Project-URL: Documentation, https://eth-abi.readthedocs.io/en/stable/
10
+ Project-URL: Release Notes, https://github.com/BobTheBuidler/faster-eth-abi/releases
11
+ Project-URL: Issues, https://github.com/BobTheBuidler/faster-eth-abi/issues
12
+ Project-URL: Source - Precompiled (.py), https://github.com/BobTheBuidler/faster-eth-utils/tree/master/faster_eth_utils
13
+ Project-URL: Source - Compiled (.c), https://github.com/BobTheBuidler/faster-eth-utils/tree/master/build
14
+ Project-URL: Benchmarks, https://github.com/BobTheBuidler/faster-eth-utils/tree/master/benchmarks
15
+ Project-URL: Benchmarks - Results, https://github.com/BobTheBuidler/faster-eth-utils/tree/master/benchmarks/results
16
+ Project-URL: Original, https://github.com/ethereum/eth-abi
17
+ Keywords: ethereum
18
+ Classifier: Development Status :: 5 - Production/Stable
19
+ Classifier: Intended Audience :: Developers
20
+ Classifier: License :: OSI Approved :: MIT License
21
+ Classifier: Natural Language :: English
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3.10
24
+ Classifier: Programming Language :: Python :: 3.11
25
+ Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
27
+ Classifier: Programming Language :: Python :: 3.14
28
+ Classifier: Programming Language :: Python :: Implementation :: CPython
29
+ Requires-Python: >=3.10, <4
30
+ Description-Content-Type: text/markdown
31
+ Requires-Dist: cchecksum<0.4,>=0.3.9
32
+ Requires-Dist: faster-eth-utils==5.3.21
33
+ Requires-Dist: eth-abi==5.2.0
34
+ Requires-Dist: eth-typing==5.2.1
35
+ Requires-Dist: mypy_extensions
36
+ Requires-Dist: parsimonious<0.11.0,>=0.10.0
37
+ Provides-Extra: dev
38
+ Requires-Dist: mypy==1.19.1; extra == "dev"
39
+ Requires-Dist: tqdm; extra == "dev"
40
+ Requires-Dist: build>=0.9.0; extra == "dev"
41
+ Requires-Dist: bump_my_version>=0.19.0; extra == "dev"
42
+ Requires-Dist: ipython; extra == "dev"
43
+ Requires-Dist: mypy==1.19.1; extra == "dev"
44
+ Requires-Dist: pre-commit>=3.4.0; extra == "dev"
45
+ Requires-Dist: tox>=4.0.0; extra == "dev"
46
+ Requires-Dist: twine; extra == "dev"
47
+ Requires-Dist: wheel; extra == "dev"
48
+ Requires-Dist: pytest-benchmark; extra == "dev"
49
+ Requires-Dist: sphinx>=6.0.0; extra == "dev"
50
+ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
51
+ Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
52
+ Requires-Dist: towncrier<26,>=24; extra == "dev"
53
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
54
+ Requires-Dist: hypothesis<6.108.7,>=6.22.0; extra == "dev"
55
+ Requires-Dist: pytest-timeout>=2.0.0; extra == "dev"
56
+ Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
57
+ Requires-Dist: pytest-pythonpath>=0.7.1; extra == "dev"
58
+ Requires-Dist: eth-hash[pycryptodome]; extra == "dev"
59
+ Provides-Extra: docs
60
+ Requires-Dist: sphinx>=6.0.0; extra == "docs"
61
+ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
62
+ Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
63
+ Requires-Dist: towncrier<26,>=24; extra == "docs"
64
+ Provides-Extra: test
65
+ Requires-Dist: pytest>=7.0.0; extra == "test"
66
+ Requires-Dist: hypothesis<6.108.7,>=6.22.0; extra == "test"
67
+ Requires-Dist: pytest-timeout>=2.0.0; extra == "test"
68
+ Requires-Dist: pytest-xdist>=2.4.0; extra == "test"
69
+ Requires-Dist: pytest-pythonpath>=0.7.1; extra == "test"
70
+ Requires-Dist: eth-hash[pycryptodome]; extra == "test"
71
+ Provides-Extra: tools
72
+ Requires-Dist: hypothesis<6.108.7,>=6.22.0; extra == "tools"
73
+ Provides-Extra: codspeed
74
+ Requires-Dist: pytest>=7.0.0; extra == "codspeed"
75
+ Requires-Dist: pytest-codspeed<4.3,>=4.2; extra == "codspeed"
76
+ Requires-Dist: pytest-test-groups; extra == "codspeed"
77
+ Provides-Extra: benchmark
78
+ Requires-Dist: pytest>=7.0.0; extra == "benchmark"
79
+ Requires-Dist: pytest-codspeed<4.3,>=4.2; extra == "benchmark"
80
+ Requires-Dist: pytest-test-groups; extra == "benchmark"
81
+ Provides-Extra: mypy
82
+ Requires-Dist: mypy==1.19.1; extra == "mypy"
83
+ Requires-Dist: tqdm; extra == "mypy"
84
+ Dynamic: author
85
+ Dynamic: author-email
86
+ Dynamic: classifier
87
+ Dynamic: description
88
+ Dynamic: description-content-type
89
+ Dynamic: home-page
90
+ Dynamic: keywords
91
+ Dynamic: license
92
+ Dynamic: project-url
93
+ Dynamic: provides-extra
94
+ Dynamic: requires-dist
95
+ Dynamic: requires-python
96
+ Dynamic: summary
97
+
98
+ ### I forked eth-abi, added comprehensive type annotations, and compiled it to C. It does the same stuff, now ~2-6x faster.
99
+
100
+ [![PyPI](https://img.shields.io/pypi/v/faster-eth-abi.svg?logo=Python&logoColor=white)](https://pypi.org/project/faster-eth-abi/)
101
+ [![Monthly Downloads](https://img.shields.io/pypi/dm/faster-eth-abi)](https://pypistats.org/packages/faster-eth-abi)
102
+ [![Codspeed.io Status](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/BobTheBuidler/faster-eth-abi)
103
+
104
+ ##### This fork will be kept up-to-date with [eth-abi](https://github.com/ethereum/eth-abi). I will pull updates as they are released and push new [faster-eth-abi](https://github.com/BobTheBuidler/faster-eth-abi) releases to [PyPI](https://pypi.org/project/faster-eth-abi/).
105
+
106
+ ##### Starting in [v5.2.12](https://github.com/BobTheBuidler/faster-eth-abi/releases/tag/v5.2.12), all `faster-eth-abi` Exception classes inherit from the matching Exception class in `eth-abi`, so porting to `faster-eth-abi` does not require any change to your existing exception handlers. All existing exception handling in your codebase will continue to work as it did when originaly implemented.
107
+
108
+ ##### We benchmark `faster-eth-abi` against the original `eth-abi` for your convenience. [See results](https://github.com/BobTheBuidler/faster-eth-abi/tree/master/benchmarks/results).
109
+
110
+ ##### You can find the compiled C code and header files in the [build](https://github.com/BobTheBuidler/faster-eth-abi/tree/master/build) directory.
111
+
112
+ ###### You may also be interested in: [faster-web3.py](https://github.com/BobTheBuidler/faster-web3.py/), [faster-hexbytes](https://github.com/BobTheBuidler/faster-hexbytes/), and [faster-eth-utils](https://github.com/BobTheBuidler/faster-eth-utils/)
113
+
114
+ ##### The original eth-abi readme is below:
115
+
116
+ # Ethereum Contract Interface (ABI) Utility
117
+
118
+ [![Join the conversation on Discord](https://img.shields.io/discord/809793915578089484?color=blue&label=chat&logo=discord&logoColor=white)](https://discord.gg/GHryRvPB84)
119
+ [![Build Status](https://circleci.com/gh/ethereum/faster-eth-abi.svg?style=shield)](https://circleci.com/gh/ethereum/faster-eth-abi)
120
+ [![PyPI version](https://badge.fury.io/py/faster-eth-abi.svg)](https://badge.fury.io/py/faster-eth-abi)
121
+ [![Python versions](https://img.shields.io/pypi/pyversions/faster-eth-abi.svg)](https://pypi.python.org/pypi/faster-eth-abi)
122
+ [![Docs build](https://readthedocs.org/projects/faster-eth-abi/badge/?version=latest)](https://faster-eth-abi.readthedocs.io/en/latest/?badge=latest)
123
+
124
+ Python utilities for working with Ethereum ABI definitions, especially encoding and decoding
125
+
126
+ Read the [documentation](https://faster-eth-abi.readthedocs.io/).
127
+
128
+ View the [change log](https://faster-eth-abi.readthedocs.io/en/latest/release_notes.html).
129
+
130
+ ## Installation
131
+
132
+ ```sh
133
+ python -m pip install faster-eth-abi
134
+ ```
@@ -0,0 +1,49 @@
1
+ faster_eth_abi__mypyc.cp311-win_amd64.pyd,sha256=A34HzmuoCiidGeG_xjfvDfR6MksiZv4dCOqp8InLr1U,307200
2
+ faster_eth_abi/__init__.py,sha256=Jds4FKT2nATwbzIITnmGZyPGjqvwP-tQGlMUCHsq-B0,332
3
+ faster_eth_abi/_codec.cp311-win_amd64.pyd,sha256=HyMNIdjzIEjbsi4NSHeucjszS9ixFoXEY8vMPfcFEBQ,10752
4
+ faster_eth_abi/_codec.py,sha256=hmNYkM1dRFyF97x6cA0Pg26EndRVX7KdwauK67IcUh8,2597
5
+ faster_eth_abi/_decoding.cp311-win_amd64.pyd,sha256=Ovg2rMTKjhQYlqauTVzy_l0A4Dwb9xtYAanMvbc8L-M,10752
6
+ faster_eth_abi/_decoding.py,sha256=JQc6W85vYOchpN3STf-dWcLAFybA65yTDCUqaTNa3H8,12256
7
+ faster_eth_abi/_encoding.cp311-win_amd64.pyd,sha256=bbp1kcCOOyQRm5yMKuR4e6KMZfuyDqT9bVjYPtTlyWI,10752
8
+ faster_eth_abi/_encoding.py,sha256=yT9alE3fLx9RNlYrLMbnN1YEYNfnKLvjM-s0kZhWHso,18360
9
+ faster_eth_abi/_grammar.cp311-win_amd64.pyd,sha256=mO6xQlsbc7Y0n_QdKNE5D2ikU6N_L8-2VI9C2KI-EPk,10752
10
+ faster_eth_abi/_grammar.py,sha256=tYDcVa9tsGzyfETpczvyPbAFZotCj29h_5WFW8sdqjI,11287
11
+ faster_eth_abi/abi.cp311-win_amd64.pyd,sha256=81_P_b8euot74mXzcURWRtMW56IefhUMlUQMfWPecmI,10752
12
+ faster_eth_abi/abi.py,sha256=-t9OVBSCxy6SuWpCu3cxHrCqkx8_svPIRb0MSFXEl5Q,383
13
+ faster_eth_abi/base.py,sha256=F8crTGdxqazfuXbm9KjDzB7mJcb_Nv9Z_fpUZcxYOfQ,1382
14
+ faster_eth_abi/codec.py,sha256=K5PQ1XpSuhT3VzEoEsdHDpsv7NEcY1u_EdT2XFF9EW0,69433
15
+ faster_eth_abi/constants.cp311-win_amd64.pyd,sha256=LcT_1Wh2gNImafwKsGbWVokWRuKmXCkGPusaLBYdzQ0,10752
16
+ faster_eth_abi/constants.py,sha256=q3FGynS-Eb78cnrL6mBoAvTDz16PF3tW2OylTMd6ajs,114
17
+ faster_eth_abi/decoding.py,sha256=Mbe1bXRKjzzekFFz1CcElvOmusFReZ7lhZHGe2eKtKY,17079
18
+ faster_eth_abi/encoding.py,sha256=T7SX55Tn_u8WL7pHaYT8jtujTdq21RvxFAHXOQY0ECU,22065
19
+ faster_eth_abi/exceptions.cp311-win_amd64.pyd,sha256=ltlNK92h1BqogH7C368oOhia56ghA2CjrOIY3SAgGB4,10752
20
+ faster_eth_abi/exceptions.py,sha256=wWsJJc_ip62fUVI_7CPlR-o37JWfv__ubYprEW0ZcYI,3773
21
+ faster_eth_abi/from_type_str.cp311-win_amd64.pyd,sha256=TsKZjA_qFMCoJ7yglU47qjHBepUFMhH7moDnemNY2lM,10752
22
+ faster_eth_abi/from_type_str.py,sha256=qHJtLNNHF2BHtRtdemC6hU4eP5jAuorY8qunC7illJI,4631
23
+ faster_eth_abi/grammar.py,sha256=zroPKUmn76fw4CzopBUQqd2q5-aikM0QkGly_8corcU,4693
24
+ faster_eth_abi/io.py,sha256=qF6BPw4hOi_Xu-nyT4XAFhEL-5EQ83fUsQuqqNXqE7w,3992
25
+ faster_eth_abi/packed.cp311-win_amd64.pyd,sha256=fFOpK9AQJzDOgSi7n-p-fy3Lp7VcV4-JSbbYgwhP83w,10752
26
+ faster_eth_abi/packed.py,sha256=STlAhJQSm04B3keAOFGRh8jzk-aCCYAm61_9O9JUn68,437
27
+ faster_eth_abi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ faster_eth_abi/registry.py,sha256=LSPMD194RYLLZman_SjgdaBMOHnSUOnlCz5jOAYORXM,24677
29
+ faster_eth_abi/typing.py,sha256=8npqU_Nvs-xRTnczC43eJSdaEbrsfERhNJhY9SwNEIg,109647
30
+ faster_eth_abi/tools/__init__.cp311-win_amd64.pyd,sha256=uW4Bjq3ioHhMMlaU_ndZfO8mDyaHeE1aNLuQSitj05s,10752
31
+ faster_eth_abi/tools/__init__.py,sha256=jxyQnb34ldRjCTYi3Ajb5h5QlFQ6ODfKQNhOCVwR7Ao,54
32
+ faster_eth_abi/tools/_strategies.cp311-win_amd64.pyd,sha256=zPP7I21uTiOZstPDbDAYOJKegANgUof_UbE_Kdo3gAA,10752
33
+ faster_eth_abi/tools/_strategies.py,sha256=2JLpKuiu8kVMFrwX2m-zVNret-7yLn0h5uZPcjaJNfY,6545
34
+ faster_eth_abi/utils/__init__.cp311-win_amd64.pyd,sha256=PxL_Txqh8Tfl2LhmC1SpRHFKOoAPsqlvN_4JpEWr3R8,10752
35
+ faster_eth_abi/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ faster_eth_abi/utils/localcontext.cp311-win_amd64.pyd,sha256=KBurDYODi7tBPzP9gz_OI9a-8oynYdZPWS9dcT1pQt0,10752
37
+ faster_eth_abi/utils/localcontext.py,sha256=L_sfe11MqBqWp5jwmLJeEhi8yr90iqlmw2SAuAyj9WU,1189
38
+ faster_eth_abi/utils/numeric.cp311-win_amd64.pyd,sha256=5ecjYJx-HqItGljdqifRAR8_fuF9qO73PcxhTVWm8no,10752
39
+ faster_eth_abi/utils/numeric.py,sha256=saAVL12dfDrMXZeao3u2jar-U2y57YKVUqF6VOzoLxs,3395
40
+ faster_eth_abi/utils/padding.cp311-win_amd64.pyd,sha256=OV59Ft-d1_TzSKyKcbUGEe_WEiwFtyTPacz_2E7t-n0,10752
41
+ faster_eth_abi/utils/padding.py,sha256=k6dkOiQ3k0OhQUZ6blCiL1VOQVYGyynucafbySjcFfY,515
42
+ faster_eth_abi/utils/string.cp311-win_amd64.pyd,sha256=hxzCPtDbcsCTeYZGIb925mTzgBgTDvtv6xih6Oz7PWU,10752
43
+ faster_eth_abi/utils/string.py,sha256=wYcvWof4kuitrGGSe_NOduQaxE4HHYmpraCPXKcZxMs,455
44
+ faster_eth_abi/utils/validation.cp311-win_amd64.pyd,sha256=tx3b_PCIRKmPwy7GDTGoYtV828XpwdKoqLgqbLR_v5Q,10752
45
+ faster_eth_abi/utils/validation.py,sha256=9veO7wyQsmcFgeaGrsKdSifjV1gaXfTDDKAt1EbKHYY,539
46
+ faster_eth_abi-5.2.24.dist-info/METADATA,sha256=nINAtRYJTm9ttdSvJRpFm9A0wRnbLxKrjiGDYoR4a0I,7408
47
+ faster_eth_abi-5.2.24.dist-info/WHEEL,sha256=JLOMsP7F5qtkAkINx5UnzbFguf8CqZeraV8o04b0I8I,101
48
+ faster_eth_abi-5.2.24.dist-info/top_level.txt,sha256=Y0kTTMPnPpssaR0jlmJwQ2XbkYXMEj_80Ewd7quo1Cg,37
49
+ faster_eth_abi-5.2.24.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp311-cp311-win_amd64
5
+
@@ -0,0 +1,2 @@
1
+ faster_eth_abi
2
+ faster_eth_abi__mypyc