faster-eth-utils 5.3.21__cp310-cp310-musllinux_1_2_x86_64.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 (53) hide show
  1. faster_eth_utils/__init__.py +144 -0
  2. faster_eth_utils/__json/eth_networks.json +1 -0
  3. faster_eth_utils/__main__.py +5 -0
  4. faster_eth_utils/abi.cpython-310-x86_64-linux-gnu.so +0 -0
  5. faster_eth_utils/abi.py +868 -0
  6. faster_eth_utils/address.cpython-310-x86_64-linux-gnu.so +0 -0
  7. faster_eth_utils/address.py +138 -0
  8. faster_eth_utils/applicators.cpython-310-x86_64-linux-gnu.so +0 -0
  9. faster_eth_utils/applicators.py +196 -0
  10. faster_eth_utils/conversions.cpython-310-x86_64-linux-gnu.so +0 -0
  11. faster_eth_utils/conversions.py +189 -0
  12. faster_eth_utils/crypto.cpython-310-x86_64-linux-gnu.so +0 -0
  13. faster_eth_utils/crypto.py +16 -0
  14. faster_eth_utils/currency.cpython-310-x86_64-linux-gnu.so +0 -0
  15. faster_eth_utils/currency.py +144 -0
  16. faster_eth_utils/curried/__init__.py +297 -0
  17. faster_eth_utils/debug.cpython-310-x86_64-linux-gnu.so +0 -0
  18. faster_eth_utils/debug.py +20 -0
  19. faster_eth_utils/decorators.cpython-310-x86_64-linux-gnu.so +0 -0
  20. faster_eth_utils/decorators.py +115 -0
  21. faster_eth_utils/encoding.cpython-310-x86_64-linux-gnu.so +0 -0
  22. faster_eth_utils/encoding.py +6 -0
  23. faster_eth_utils/exceptions.cpython-310-x86_64-linux-gnu.so +0 -0
  24. faster_eth_utils/exceptions.py +11 -0
  25. faster_eth_utils/functional.cpython-310-x86_64-linux-gnu.so +0 -0
  26. faster_eth_utils/functional.py +87 -0
  27. faster_eth_utils/hexadecimal.cpython-310-x86_64-linux-gnu.so +0 -0
  28. faster_eth_utils/hexadecimal.py +76 -0
  29. faster_eth_utils/humanize.cpython-310-x86_64-linux-gnu.so +0 -0
  30. faster_eth_utils/humanize.py +201 -0
  31. faster_eth_utils/logging.py +152 -0
  32. faster_eth_utils/module_loading.cpython-310-x86_64-linux-gnu.so +0 -0
  33. faster_eth_utils/module_loading.py +31 -0
  34. faster_eth_utils/network.cpython-310-x86_64-linux-gnu.so +0 -0
  35. faster_eth_utils/network.py +91 -0
  36. faster_eth_utils/numeric.cpython-310-x86_64-linux-gnu.so +0 -0
  37. faster_eth_utils/numeric.py +43 -0
  38. faster_eth_utils/py.typed +0 -0
  39. faster_eth_utils/pydantic.py +103 -0
  40. faster_eth_utils/toolz.cpython-310-x86_64-linux-gnu.so +0 -0
  41. faster_eth_utils/toolz.py +84 -0
  42. faster_eth_utils/types.cpython-310-x86_64-linux-gnu.so +0 -0
  43. faster_eth_utils/types.py +65 -0
  44. faster_eth_utils/typing/__init__.py +18 -0
  45. faster_eth_utils/typing/misc.py +14 -0
  46. faster_eth_utils/units.cpython-310-x86_64-linux-gnu.so +0 -0
  47. faster_eth_utils/units.py +31 -0
  48. faster_eth_utils-5.3.21.dist-info/METADATA +192 -0
  49. faster_eth_utils-5.3.21.dist-info/RECORD +53 -0
  50. faster_eth_utils-5.3.21.dist-info/WHEEL +5 -0
  51. faster_eth_utils-5.3.21.dist-info/licenses/LICENSE +21 -0
  52. faster_eth_utils-5.3.21.dist-info/top_level.txt +3 -0
  53. faster_eth_utils__mypyc.cpython-310-x86_64-linux-gnu.so +0 -0
@@ -0,0 +1,84 @@
1
+ from typing import Final
2
+
3
+ try:
4
+ import cytoolz
5
+ cy = True
6
+ except ImportError:
7
+ import toolz
8
+ cy = False
9
+
10
+
11
+ accumulate: Final = cytoolz.accumulate if cy else toolz.accumulate
12
+ assoc: Final = cytoolz.assoc if cy else toolz.assoc
13
+ assoc_in: Final = cytoolz.assoc_in if cy else toolz.assoc_in
14
+ comp: Final = cytoolz.comp if cy else toolz.comp
15
+ complement: Final = cytoolz.complement if cy else toolz.complement
16
+ compose: Final = cytoolz.compose if cy else toolz.compose
17
+ concat: Final = cytoolz.concat if cy else toolz.concat
18
+ concatv: Final = cytoolz.concatv if cy else toolz.concatv
19
+ cons: Final = cytoolz.cons if cy else toolz.cons
20
+ count: Final = cytoolz.count if cy else toolz.count
21
+ countby: Final = cytoolz.countby if cy else toolz.countby
22
+ curried: Final = cytoolz.curried if cy else toolz.curried
23
+ curry: Final = cytoolz.curry if cy else toolz.curry
24
+ dicttoolz: Final = cytoolz.dicttoolz if cy else toolz.dicttoolz
25
+ diff: Final = cytoolz.diff if cy else toolz.diff
26
+ dissoc: Final = cytoolz.dissoc if cy else toolz.dissoc
27
+ do: Final = cytoolz.do if cy else toolz.do
28
+ drop: Final = cytoolz.drop if cy else toolz.drop
29
+ excepts: Final = cytoolz.excepts if cy else toolz.excepts
30
+ filter: Final = cytoolz.filter if cy else toolz.filter
31
+ first: Final = cytoolz.first if cy else toolz.first
32
+ flip: Final = cytoolz.flip if cy else toolz.flip
33
+ frequencies: Final = cytoolz.frequencies if cy else toolz.frequencies
34
+ functoolz: Final = cytoolz.functoolz if cy else toolz.functoolz
35
+ get: Final = cytoolz.get if cy else toolz.get
36
+ get_in: Final = cytoolz.get_in if cy else toolz.get_in
37
+ groupby: Final = cytoolz.groupby if cy else toolz.groupby
38
+ identity: Final = cytoolz.identity if cy else toolz.identity
39
+ interleave: Final = cytoolz.interleave if cy else toolz.interleave
40
+ interpose: Final = cytoolz.interpose if cy else toolz.interpose
41
+ isdistinct: Final = cytoolz.isdistinct if cy else toolz.isdistinct
42
+ isiterable: Final = cytoolz.isiterable if cy else toolz.isiterable
43
+ itemfilter: Final = cytoolz.itemfilter if cy else toolz.itemfilter
44
+ itemmap: Final = cytoolz.itemmap if cy else toolz.itemmap
45
+ iterate: Final = cytoolz.iterate if cy else toolz.iterate
46
+ itertoolz: Final = cytoolz.itertoolz if cy else toolz.itertoolz
47
+ join: Final = cytoolz.join if cy else toolz.join
48
+ juxt: Final = cytoolz.juxt if cy else toolz.juxt
49
+ keyfilter: Final = cytoolz.keyfilter if cy else toolz.keyfilter
50
+ keymap: Final = cytoolz.keymap if cy else toolz.keymap
51
+ last: Final = cytoolz.last if cy else toolz.last
52
+ map: Final = cytoolz.map if cy else toolz.map
53
+ mapcat: Final = cytoolz.mapcat if cy else toolz.mapcat
54
+ memoize: Final = cytoolz.memoize if cy else toolz.memoize
55
+ merge: Final = cytoolz.merge if cy else toolz.merge
56
+ merge_sorted: Final = cytoolz.merge_sorted if cy else toolz.merge_sorted
57
+ merge_with: Final = cytoolz.merge_with if cy else toolz.merge_with
58
+ nth: Final = cytoolz.nth if cy else toolz.nth
59
+ partial: Final = cytoolz.partial if cy else toolz.partial
60
+ partition: Final = cytoolz.partition if cy else toolz.partition
61
+ partition_all: Final = cytoolz.partition_all if cy else toolz.partition_all
62
+ partitionby: Final = cytoolz.partitionby if cy else toolz.partitionby
63
+ peek: Final = cytoolz.peek if cy else toolz.peek
64
+ pipe: Final = cytoolz.pipe if cy else toolz.pipe
65
+ pluck: Final = cytoolz.pluck if cy else toolz.pluck
66
+ random_sample: Final = cytoolz.random_sample if cy else toolz.random_sample
67
+ recipes: Final = cytoolz.recipes if cy else toolz.recipes
68
+ reduce: Final = cytoolz.reduce if cy else toolz.reduce
69
+ reduceby: Final = cytoolz.reduceby if cy else toolz.reduceby
70
+ remove: Final = cytoolz.remove if cy else toolz.remove
71
+ second: Final = cytoolz.second if cy else toolz.second
72
+ sliding_window: Final = cytoolz.sliding_window if cy else toolz.sliding_window
73
+ sorted: Final = cytoolz.sorted if cy else toolz.sorted
74
+ tail: Final = cytoolz.tail if cy else toolz.tail
75
+ take: Final = cytoolz.take if cy else toolz.take
76
+ take_nth: Final = cytoolz.take_nth if cy else toolz.take_nth
77
+ thread_first: Final = cytoolz.thread_first if cy else toolz.thread_first
78
+ thread_last: Final = cytoolz.thread_last if cy else toolz.thread_last
79
+ topk: Final = cytoolz.topk if cy else toolz.topk
80
+ unique: Final = cytoolz.unique if cy else toolz.unique
81
+ update_in: Final = cytoolz.update_in if cy else toolz.update_in
82
+ utils: Final = cytoolz.utils if cy else toolz.utils
83
+ valfilter: Final = cytoolz.valfilter if cy else toolz.valfilter
84
+ valmap: Final = cytoolz.valmap if cy else toolz.valmap
@@ -0,0 +1,65 @@
1
+ import collections.abc
2
+ import numbers
3
+ from typing import (
4
+ Any,
5
+ Final,
6
+ Literal,
7
+ )
8
+
9
+ from typing import (
10
+ TypeGuard,
11
+ )
12
+
13
+ Mapping: Final = collections.abc.Mapping
14
+ Sequence: Final = collections.abc.Sequence
15
+
16
+ Number: Final = numbers.Number
17
+
18
+ bytes_types: Final = (bytes, bytearray)
19
+ integer_types: Final = (int,)
20
+ text_types: Final = (str,)
21
+ string_types: Final = (bytes, str, bytearray)
22
+
23
+
24
+ def is_integer(value: Any) -> TypeGuard[int]:
25
+ return isinstance(value, int) and not isinstance(value, bool)
26
+
27
+
28
+ def is_bytes(value: Any) -> TypeGuard[bytes | bytearray]:
29
+ return isinstance(value, bytes_types)
30
+
31
+
32
+ def is_text(value: Any) -> TypeGuard[str]:
33
+ return isinstance(value, str)
34
+
35
+
36
+ def is_string(value: Any) -> TypeGuard[bytes | str | bytearray]:
37
+ return isinstance(value, string_types)
38
+
39
+
40
+ def is_boolean(value: Any) -> TypeGuard[bool]:
41
+ return isinstance(value, bool)
42
+
43
+
44
+ def is_dict(obj: Any) -> TypeGuard[collections.abc.Mapping[Any, Any]]:
45
+ return isinstance(obj, dict) or isinstance(obj, Mapping)
46
+
47
+
48
+ def is_list_like(obj: Any) -> TypeGuard[collections.abc.Sequence[Any]]:
49
+ return isinstance(obj, (list, tuple)) or not is_string(obj) and isinstance(obj, Sequence)
50
+
51
+
52
+ def is_list(obj: Any) -> TypeGuard[list[Any]]:
53
+ return isinstance(obj, list)
54
+
55
+
56
+ def is_tuple(obj: Any) -> TypeGuard[tuple[Any, ...]]:
57
+ return isinstance(obj, tuple)
58
+
59
+
60
+ def is_null(obj: Any) -> TypeGuard[Literal[None]]:
61
+ return obj is None
62
+
63
+
64
+ def is_number(obj: Any) -> TypeGuard[numbers.Number]:
65
+ return isinstance(obj, Number)
@@ -0,0 +1,18 @@
1
+ import warnings
2
+
3
+ from .misc import (
4
+ Address,
5
+ AnyAddress,
6
+ ChecksumAddress,
7
+ HexAddress,
8
+ HexStr,
9
+ Primitives,
10
+ T,
11
+ )
12
+
13
+ warnings.warn(
14
+ "The eth_utils.typing module will be deprecated in favor "
15
+ "of eth-typing in the next major version bump.",
16
+ category=DeprecationWarning,
17
+ stacklevel=2,
18
+ )
@@ -0,0 +1,14 @@
1
+ from typing import (
2
+ TypeVar,
3
+ )
4
+
5
+ from eth_typing import ( # noqa: F401
6
+ Address,
7
+ AnyAddress,
8
+ ChecksumAddress,
9
+ HexAddress,
10
+ HexStr,
11
+ Primitives,
12
+ )
13
+
14
+ T = TypeVar("T")
@@ -0,0 +1,31 @@
1
+ import decimal
2
+
3
+ # Units are in their own module here, so that they can keep this
4
+ # formatting, as this module is excluded from black in pyproject.toml
5
+ # fmt: off
6
+ units = {
7
+ 'wei': decimal.Decimal('1'), # noqa: E241
8
+ 'kwei': decimal.Decimal('1000'), # noqa: E241
9
+ 'babbage': decimal.Decimal('1000'), # noqa: E241
10
+ 'femtoether': decimal.Decimal('1000'), # noqa: E241
11
+ 'mwei': decimal.Decimal('1000000'), # noqa: E241
12
+ 'lovelace': decimal.Decimal('1000000'), # noqa: E241
13
+ 'picoether': decimal.Decimal('1000000'), # noqa: E241
14
+ 'gwei': decimal.Decimal('1000000000'), # noqa: E241
15
+ 'shannon': decimal.Decimal('1000000000'), # noqa: E241
16
+ 'nanoether': decimal.Decimal('1000000000'), # noqa: E241
17
+ 'nano': decimal.Decimal('1000000000'), # noqa: E241
18
+ 'szabo': decimal.Decimal('1000000000000'), # noqa: E241
19
+ 'microether': decimal.Decimal('1000000000000'), # noqa: E241
20
+ 'micro': decimal.Decimal('1000000000000'), # noqa: E241
21
+ 'finney': decimal.Decimal('1000000000000000'), # noqa: E241
22
+ 'milliether': decimal.Decimal('1000000000000000'), # noqa: E241
23
+ 'milli': decimal.Decimal('1000000000000000'), # noqa: E241
24
+ 'ether': decimal.Decimal('1000000000000000000'), # noqa: E241
25
+ 'kether': decimal.Decimal('1000000000000000000000'), # noqa: E241
26
+ 'grand': decimal.Decimal('1000000000000000000000'), # noqa: E241
27
+ 'mether': decimal.Decimal('1000000000000000000000000'), # noqa: E241
28
+ 'gether': decimal.Decimal('1000000000000000000000000000'), # noqa: E241
29
+ 'tether': decimal.Decimal('1000000000000000000000000000000'), # noqa: E241
30
+ }
31
+ # fmt: on
@@ -0,0 +1,192 @@
1
+ Metadata-Version: 2.4
2
+ Name: faster-eth-utils
3
+ Version: 5.3.21
4
+ Summary: A faster fork of eth-utils: Common utility functions for python code that interacts with Ethereum. Implemented in C
5
+ Home-page: https://github.com/BobTheBuidler/faster-eth-utils
6
+ Author: The Ethereum Foundation
7
+ Author-email: snakecharmers@ethereum.org
8
+ License: MIT
9
+ Project-URL: Documentation, https://eth-utils.readthedocs.io/en/stable/
10
+ Project-URL: Release Notes, https://github.com/BobTheBuidler/faster-eth-utils/releases
11
+ Project-URL: Issues, https://github.com/BobTheBuidler/faster-eth-utils/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-utils
17
+ Keywords: ethereum
18
+ Classifier: Intended Audience :: Developers
19
+ Classifier: Natural Language :: English
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Programming Language :: Python :: 3.13
25
+ Classifier: Programming Language :: Python :: 3.14
26
+ Classifier: Programming Language :: Python :: Implementation :: CPython
27
+ Requires-Python: >=3.10, <4
28
+ Description-Content-Type: text/markdown
29
+ License-File: LICENSE
30
+ Requires-Dist: cchecksum==0.3.9
31
+ Requires-Dist: eth-hash>=0.3.1
32
+ Requires-Dist: eth-typing==5.2.1
33
+ Requires-Dist: eth-utils==5.3.1
34
+ Requires-Dist: toolz>0.8.2; implementation_name == "pypy"
35
+ Requires-Dist: cytoolz>=0.10.1; implementation_name == "cpython"
36
+ Requires-Dist: pydantic<3,>=2.0.0
37
+ Provides-Extra: dev
38
+ Requires-Dist: build>=0.9.0; extra == "dev"
39
+ Requires-Dist: bump_my_version>=0.19.0; extra == "dev"
40
+ Requires-Dist: eth-hash[pycryptodome]; extra == "dev"
41
+ Requires-Dist: ipython; extra == "dev"
42
+ Requires-Dist: mypy[mypyc]<1.20,>=1.14.1; extra == "dev"
43
+ Requires-Dist: pre-commit>=3.4.0; extra == "dev"
44
+ Requires-Dist: tox>=4.0.0; extra == "dev"
45
+ Requires-Dist: twine; extra == "dev"
46
+ Requires-Dist: wheel; extra == "dev"
47
+ Requires-Dist: sphinx>=6.0.0; extra == "dev"
48
+ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
49
+ Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
50
+ Requires-Dist: towncrier<26,>=24; extra == "dev"
51
+ Requires-Dist: hypothesis>=4.43.0; extra == "dev"
52
+ Requires-Dist: mypy[mypyc]<1.20,>=1.14.1; extra == "dev"
53
+ Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
54
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
55
+ Provides-Extra: docs
56
+ Requires-Dist: sphinx>=6.0.0; extra == "docs"
57
+ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
58
+ Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
59
+ Requires-Dist: towncrier<26,>=24; extra == "docs"
60
+ Provides-Extra: test
61
+ Requires-Dist: hypothesis>=4.43.0; extra == "test"
62
+ Requires-Dist: mypy[mypyc]<1.20,>=1.14.1; extra == "test"
63
+ Requires-Dist: pytest-xdist>=2.4.0; extra == "test"
64
+ Requires-Dist: pytest>=7.0.0; extra == "test"
65
+ Provides-Extra: codspeed
66
+ Requires-Dist: pytest-codspeed<4.3,>=4.2; extra == "codspeed"
67
+ Requires-Dist: pytest-test-groups; extra == "codspeed"
68
+ Requires-Dist: pytest>=7.0.0; extra == "codspeed"
69
+ Provides-Extra: benchmark
70
+ Requires-Dist: eth-utils==5.3.1; extra == "benchmark"
71
+ Requires-Dist: pytest-benchmark<5.3,>=5.2; extra == "benchmark"
72
+ Requires-Dist: pytest-codspeed<4.3,>=4.2; extra == "benchmark"
73
+ Requires-Dist: pytest-test-groups; extra == "benchmark"
74
+ Requires-Dist: pytest>=7.0.0; extra == "benchmark"
75
+ Dynamic: author
76
+ Dynamic: author-email
77
+ Dynamic: classifier
78
+ Dynamic: description
79
+ Dynamic: description-content-type
80
+ Dynamic: home-page
81
+ Dynamic: keywords
82
+ Dynamic: license
83
+ Dynamic: license-file
84
+ Dynamic: project-url
85
+ Dynamic: provides-extra
86
+ Dynamic: requires-dist
87
+ Dynamic: requires-python
88
+ Dynamic: summary
89
+
90
+ ### I forked eth-utils and compiled it to C. It does the same stuff, now faster
91
+
92
+ [![PyPI](https://img.shields.io/pypi/v/faster-eth-utils.svg?logo=Python&logoColor=white)](https://pypi.org/project/faster-eth-utils)
93
+ [![Monthly Downloads](https://img.shields.io/pypi/dm/faster-eth-utils)](https://pypistats.org/packages/faster-eth-utils)
94
+ [![Codspeed.io Status](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/BobTheBuidler/faster-eth-utils)
95
+
96
+ ##### This fork will be kept up-to-date with [eth-utils](https://github.com/ethereum/eth-utils). I will pull updates as they are released and push new [faster-eth-utils](https://github.com/BobTheBuidler/faster-eth-utils) releases to [PyPI](https://pypi.org/project/faster-eth-utils/).
97
+
98
+ ##### Starting in [v5.3.11](https://github.com/BobTheBuidler/faster-eth-utils/releases/tag/v5.3.11), all `faster-eth-utils` Exception classes inherit from the matching Exception class in `eth-utils`, so porting to `faster-eth-utils` 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.
99
+
100
+ ##### We benchmark `faster-eth-utils` against the original `eth-utils` for your convenience. [See results](https://github.com/BobTheBuidler/faster-eth-utils/tree/master/benchmarks/results).
101
+
102
+ ##### You can find the compiled C code and header files in the [build](https://github.com/BobTheBuidler/eth-utils/tree/master/build) directory.
103
+
104
+ ###### You may also be interested in: [faster-web3.py](https://github.com/BobTheBuidler/faster-web3.py/), [faster-eth-abi](https://github.com/BobTheBuidler/faster-eth-abi/), and [faster-hexbytes](https://github.com/BobTheBuidler/faster-hexbytes/)
105
+
106
+ ##### The original eth-utils readme is below:
107
+
108
+ # Ethereum Utilities
109
+
110
+ [![Join the conversation on Discord](https://img.shields.io/discord/809793915578089484?color=blue&label=chat&logo=discord&logoColor=white)](https://discord.gg/GHryRvPB84)
111
+ [![Build Status](https://circleci.com/gh/ethereum/eth-utils.svg?style=shield)](https://circleci.com/gh/ethereum/eth-utils)
112
+ [![PyPI version](https://badge.fury.io/py/eth-utils.svg)](https://badge.fury.io/py/eth-utils)
113
+ [![Python versions](https://img.shields.io/pypi/pyversions/eth-utils.svg)](https://pypi.python.org/pypi/eth-utils)
114
+ [![Docs build](https://readthedocs.org/projects/eth-utils/badge/?version=latest)](https://eth-utils.readthedocs.io/en/latest/?badge=latest)
115
+
116
+ Common utility functions for python code that interacts with Ethereum
117
+
118
+ Read the [documentation](https://eth-utils.readthedocs.io/).
119
+
120
+ View the [change log](https://eth-utils.readthedocs.io/en/latest/release_notes.html).
121
+
122
+ ## Installation
123
+
124
+ ```sh
125
+ python -m pip install eth-utils
126
+ ```
127
+
128
+ ## Developer Setup
129
+
130
+ If you would like to hack on eth-utils, please check out the [Snake Charmers
131
+ Tactical Manual](https://github.com/ethereum/snake-charmers-tactical-manual)
132
+ for information on how we do:
133
+
134
+ - Testing
135
+ - Pull Requests
136
+ - Documentation
137
+
138
+ We use [pre-commit](https://pre-commit.com/) to maintain consistent code style. Once
139
+ installed, it will run automatically with every commit. You can also run it manually
140
+ with `make lint`. If you need to make a commit that skips the `pre-commit` checks, you
141
+ can do so with `git commit --no-verify`.
142
+
143
+ ### Development Environment Setup
144
+
145
+ You can set up your dev environment with:
146
+
147
+ ```sh
148
+ git clone git@github.com:ethereum/eth-utils.git
149
+ cd eth-utils
150
+ virtualenv -p python3 venv
151
+ . venv/bin/activate
152
+ python -m pip install -e ".[dev]"
153
+ pre-commit install
154
+ ```
155
+
156
+ ### Update Networks
157
+
158
+ The list of networks resides in the JSON file under eth_utils/\_\_json/eth_networks.json.
159
+ This file is used to initialize Networks, which can be used to obtain network
160
+ information with a chain ID.
161
+
162
+ Run the script to update the JSON file with the response from the remote list.
163
+
164
+ ```sh
165
+ python update_networks.py
166
+ ```
167
+
168
+ If there are new networks they will appear in the JSON file. After checking the updates,
169
+ open a PR to make them available in a new release.
170
+
171
+ ### Release setup
172
+
173
+ To release a new version:
174
+
175
+ ```sh
176
+ make release bump=$$VERSION_PART_TO_BUMP$$
177
+ ```
178
+
179
+ #### How to bumpversion
180
+
181
+ The version format for this repo is `{major}.{minor}.{patch}` for stable, and
182
+ `{major}.{minor}.{patch}-{stage}.{devnum}` for unstable (`stage` can be alpha or beta).
183
+
184
+ To issue the next version in line, specify which part to bump,
185
+ like `make release bump=minor` or `make release bump=devnum`. This is typically done from the
186
+ main branch, except when releasing a beta (in which case the beta is released from main,
187
+ and the previous stable branch is released from said branch).
188
+
189
+ If you are in a beta version, `make release bump=stage` will switch to a stable.
190
+
191
+ To issue an unstable version when the current version is stable, specify the
192
+ new version explicitly, like `make release bump="--new-version 4.0.0-alpha.1 devnum"`
@@ -0,0 +1,53 @@
1
+ faster_eth_utils__mypyc.cpython-310-x86_64-linux-gnu.so,sha256=V2z9bW1izd8hwp8-OUsIZ5Muw8AKuFyha0KZkidGLG4,1431360
2
+ faster_eth_utils/__init__.py,sha256=hW-A_fjyQ76crTKwuxxSbvNzvPfW27dSlzhtOkseymg,2762
3
+ faster_eth_utils/__main__.py,sha256=mH37e49q7_A0-q1ymqkq1QyYABbQHVmXeuSKIBSahO8,86
4
+ faster_eth_utils/abi.cpython-310-x86_64-linux-gnu.so,sha256=hlq9hx_4QzilPA_oJW1icYOCa599bFw_jLSyNziXDjg,17616
5
+ faster_eth_utils/abi.py,sha256=3y0USCQ_HhRCCPP5GEe8vrw4V6fcaIfm2yZR0C3KDLY,27021
6
+ faster_eth_utils/address.cpython-310-x86_64-linux-gnu.so,sha256=Svv5-PV2ZZcrZD-sPBWtTbPwAyq6vpLWzJj-_74ZV3E,17632
7
+ faster_eth_utils/address.py,sha256=iFtnchlDMwFjvvStfxzPuf_Y104ecGLArOzuH5KV8U8,3572
8
+ faster_eth_utils/applicators.cpython-310-x86_64-linux-gnu.so,sha256=2MqB_saYIE_0eEyFZAOgQdBwWxruN98bE3xoZ3diLlo,17648
9
+ faster_eth_utils/applicators.py,sha256=WTbBiD1GqEdnUKYCCuqMOpQgcv_xr0pqO8JsbErs-uA,5844
10
+ faster_eth_utils/conversions.cpython-310-x86_64-linux-gnu.so,sha256=SogO7foHN9VWw-WS9NAAaXL1oBFGZA9aZBImR6K8agQ,17648
11
+ faster_eth_utils/conversions.py,sha256=1yeJ7xyPw1aJ95Ja12ilW0lEF3lLUrlux0NbmN38kR0,5576
12
+ faster_eth_utils/crypto.cpython-310-x86_64-linux-gnu.so,sha256=q4TMIMM-7_08wFBQVDY2uobZUSHTche8TJTQpMh2MoI,17624
13
+ faster_eth_utils/crypto.py,sha256=XTLxW0M1dPYRcbEzdBs0HsDmLtq6DWi9EhW0wiiuOfg,332
14
+ faster_eth_utils/currency.cpython-310-x86_64-linux-gnu.so,sha256=linqdItL1CWuQySYEChvdLPDTiBTthZMxbqkrEA28Fg,17632
15
+ faster_eth_utils/currency.py,sha256=3Fo86byOoB_LHVyQx-sBvGWWLTGRw3ZRMNkhUBGCbkw,4207
16
+ faster_eth_utils/debug.cpython-310-x86_64-linux-gnu.so,sha256=g7jnXAXeUkH4bC_i8q0fvrqZCme5fCsKFKwKtQ44kvY,17616
17
+ faster_eth_utils/debug.py,sha256=0Z-tNOqgQJunS4uHeSCCH1LWLoijlH34MBh6NRrrDrk,499
18
+ faster_eth_utils/decorators.cpython-310-x86_64-linux-gnu.so,sha256=6l8X0WGp4vXoUi0fXW68RjTaJQQGxhfW7cay93S7tnU,17640
19
+ faster_eth_utils/decorators.py,sha256=2OhR0LMuUwuXtKebONbC-chpHi-myjX98MF3nReNIiE,3194
20
+ faster_eth_utils/encoding.cpython-310-x86_64-linux-gnu.so,sha256=1NuSFo3B0mw9M4_6R54pSAKAO-2Rr3sbvFKiTwyMneE,17632
21
+ faster_eth_utils/encoding.py,sha256=U_eV_sF4NrJUP8Azj0JB6IEH_p926YzrgOONGJ6-vr0,211
22
+ faster_eth_utils/exceptions.cpython-310-x86_64-linux-gnu.so,sha256=v1SvlglHE_mjR0KNeFew-t9yTfhzfxt4OVEKgfuEjTI,17640
23
+ faster_eth_utils/exceptions.py,sha256=mOS-AZzx7m84AgpZdnvXa5mFY-5mMP1MOPAlbbhxvHI,391
24
+ faster_eth_utils/functional.cpython-310-x86_64-linux-gnu.so,sha256=OCBn7l1XZnX6PGH3x4KEMXJI_VxINvWiTQRvGsv4qnM,17640
25
+ faster_eth_utils/functional.py,sha256=WkPEFM3SAFdfOJtqDJG3EvKtrAMwI2qw-m8dtgzee9Q,2458
26
+ faster_eth_utils/hexadecimal.cpython-310-x86_64-linux-gnu.so,sha256=_uCClMZn1E0FB_pncCvYHmdhN80OTS2jhG9ZlgUbtRY,17648
27
+ faster_eth_utils/hexadecimal.py,sha256=YSOqpbJW05jb0BLYTumq5ymBho-E5r4kY20H3Ael-cU,2040
28
+ faster_eth_utils/humanize.cpython-310-x86_64-linux-gnu.so,sha256=NS2JuKw-NtF4ZHsIWx6mH4UNHeL-BDwkYeTIOHgryII,17632
29
+ faster_eth_utils/humanize.py,sha256=RQiJ2IBeRbyVK942-Q7w9zy2bKVvBkvpCjM9NtMdMwA,4703
30
+ faster_eth_utils/logging.py,sha256=BDfmXJg4Wucb5lASCApxWKVSsVvO6SZMz1N3jys4t9k,4758
31
+ faster_eth_utils/module_loading.cpython-310-x86_64-linux-gnu.so,sha256=lY2MnmKPFRHu2NXiIJxK9s2HDrtmm8JXZM6cTIkjmhY,17656
32
+ faster_eth_utils/module_loading.py,sha256=DCLM4dEh1gqr8Ny-FWwD-_pINqeHzbLSupz4ZIpCCAw,842
33
+ faster_eth_utils/network.cpython-310-x86_64-linux-gnu.so,sha256=6mJlIvIqWmjfMtjX6_Gc_Nl4Ixb3Wb85QUvoHv9h9B4,17632
34
+ faster_eth_utils/network.py,sha256=hNNjuHyk--R3IZc18sg5CkDhfb_4EVGTp2ol897EPes,2279
35
+ faster_eth_utils/numeric.cpython-310-x86_64-linux-gnu.so,sha256=JfaQLK3bzdiE6kWCjieqxbXqTsHrnW_HmKed2b1Ftxk,17632
36
+ faster_eth_utils/numeric.py,sha256=RrXdXI-bhhkEsz3aBtxHuGlc_2ZJvUGpvMc47wx408Y,1190
37
+ faster_eth_utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ faster_eth_utils/pydantic.py,sha256=uAm57nCoaCt7-MO_50Df1iGwIKXqrkelGupWPX0AnTU,3516
39
+ faster_eth_utils/toolz.cpython-310-x86_64-linux-gnu.so,sha256=ELu1oNxOPGk46BY_2jy8fzbgXMY9rFgCOQia6w3U-Ok,17616
40
+ faster_eth_utils/toolz.py,sha256=1QQY-aMbZrEgJsuqR0Ajsa32C_cXrQquzViw7OkxNLU,4410
41
+ faster_eth_utils/types.cpython-310-x86_64-linux-gnu.so,sha256=dsK-chPJzhIm43xNZLxzUysHWeXlyUlMtineOJLxxks,17616
42
+ faster_eth_utils/types.py,sha256=4NDkKDAqYrVTeWMCfzMr061qK58Hj06xspsDfrHFL64,1524
43
+ faster_eth_utils/units.cpython-310-x86_64-linux-gnu.so,sha256=FIDFD-czGsA-0G3IJ2WpRvL8U-nLG7mGDOppndgce00,17616
44
+ faster_eth_utils/units.py,sha256=jRo8p6trxwuISBnT8kfxTNVyd_TSd5vVY5aiKDefB1U,1757
45
+ faster_eth_utils/__json/eth_networks.json,sha256=0S8HoWD6RTR6Hc0uQdQl2VHtopytIYl5NiDAzpuskBs,414773
46
+ faster_eth_utils/curried/__init__.py,sha256=EGV4ClNphP0MlsP5Ag0mw4G5vBBli_2dKrOzcLMjWJ0,7805
47
+ faster_eth_utils/typing/__init__.py,sha256=84PxIxCvEHtBb-Ik6qnGvXH4alaWbamr_zDbtlbJh3A,325
48
+ faster_eth_utils/typing/misc.py,sha256=4N5raYXFAeRGpmch6qgHrtYNCDxCJM5XtAAsJ1FSzzU,190
49
+ faster_eth_utils-5.3.21.dist-info/METADATA,sha256=_TMKT9wUbCiaYzz4HcqJMCg19GXdvgVLP_q3NcMKPZM,8906
50
+ faster_eth_utils-5.3.21.dist-info/WHEEL,sha256=YJPq7zroHSsdctrb_KymZ4ss41PkmaA9SD9TZzqKSX8,112
51
+ faster_eth_utils-5.3.21.dist-info/top_level.txt,sha256=wTH6UCItCCvEEiJ9EiOrm0Kn4p4xhB7VdmmTHktoo9Y,51
52
+ faster_eth_utils-5.3.21.dist-info/RECORD,,
53
+ faster_eth_utils-5.3.21.dist-info/licenses/LICENSE,sha256=STqznQ6A8OeJylPrTA7dlsMtH0isQQybRlnDZOKGVrM,1095
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp310-cp310-musllinux_1_2_x86_64
5
+
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2017-2025 The Ethereum Foundation
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,3 @@
1
+ eth_utils
2
+ faster_eth_utils
3
+ faster_eth_utils__mypyc