faster-eth-abi 5.2.15__cp310-cp310-win32.whl → 5.2.16__cp310-cp310-win32.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.
Potentially problematic release.
This version of faster-eth-abi might be problematic. Click here for more details.
- faster_eth_abi/_codec.cp310-win32.pyd +0 -0
- faster_eth_abi/_codec.py +6 -0
- faster_eth_abi/_decoding.cp310-win32.pyd +0 -0
- faster_eth_abi/_decoding.py +28 -15
- faster_eth_abi/_encoding.cp310-win32.pyd +0 -0
- faster_eth_abi/_encoding.py +7 -1
- faster_eth_abi/_grammar.cp310-win32.pyd +0 -0
- faster_eth_abi/_grammar.py +5 -0
- faster_eth_abi/abi.cp310-win32.pyd +0 -0
- faster_eth_abi/base.py +4 -0
- faster_eth_abi/codec.py +1261 -144
- faster_eth_abi/constants.cp310-win32.pyd +0 -0
- faster_eth_abi/decoding.py +91 -47
- faster_eth_abi/encoding.py +51 -3
- faster_eth_abi/exceptions.py +5 -2
- faster_eth_abi/from_type_str.cp310-win32.pyd +0 -0
- faster_eth_abi/from_type_str.py +4 -0
- faster_eth_abi/grammar.py +17 -19
- faster_eth_abi/io.py +4 -0
- faster_eth_abi/packed.cp310-win32.pyd +0 -0
- faster_eth_abi/packed.py +4 -0
- faster_eth_abi/registry.py +98 -33
- faster_eth_abi/tools/__init__.cp310-win32.pyd +0 -0
- faster_eth_abi/tools/_strategies.cp310-win32.pyd +0 -0
- faster_eth_abi/typing.py +94 -10
- faster_eth_abi/utils/__init__.cp310-win32.pyd +0 -0
- faster_eth_abi/utils/numeric.cp310-win32.pyd +0 -0
- faster_eth_abi/utils/padding.cp310-win32.pyd +0 -0
- faster_eth_abi/utils/string.cp310-win32.pyd +0 -0
- faster_eth_abi/utils/validation.cp310-win32.pyd +0 -0
- {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/METADATA +13 -8
- faster_eth_abi-5.2.16.dist-info/RECORD +47 -0
- {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/top_level.txt +0 -1
- faster_eth_abi__mypyc.cp310-win32.pyd +0 -0
- benchmarks/__init__.py +0 -1
- benchmarks/batch.py +0 -9
- benchmarks/data.py +0 -313
- benchmarks/test_abi_benchmarks.py +0 -82
- benchmarks/test_decoding_benchmarks.py +0 -109
- benchmarks/test_encoding_benchmarks.py +0 -99
- benchmarks/test_grammar_benchmarks.py +0 -38
- benchmarks/test_io_benchmarks.py +0 -99
- benchmarks/test_packed_benchmarks.py +0 -41
- benchmarks/test_registry_benchmarks.py +0 -45
- benchmarks/type_strings.py +0 -26
- faster_eth_abi-5.2.15.dist-info/RECORD +0 -58
- {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/WHEEL +0 -0
- {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/licenses/LICENSE +0 -0
faster_eth_abi/registry.py
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
"""Registry and predicate logic for ABI encoders and decoders.
|
|
2
|
+
|
|
3
|
+
Implements registration, lookup, and matching of encoders and decoders for ABI type strings.
|
|
4
|
+
"""
|
|
1
5
|
import abc
|
|
2
6
|
from copy import (
|
|
3
7
|
copy,
|
|
@@ -14,6 +18,7 @@ from typing import (
|
|
|
14
18
|
Type,
|
|
15
19
|
TypeVar,
|
|
16
20
|
Union,
|
|
21
|
+
final,
|
|
17
22
|
)
|
|
18
23
|
|
|
19
24
|
from eth_typing import (
|
|
@@ -177,15 +182,21 @@ class PredicateMapping(Copyable, Generic[T]):
|
|
|
177
182
|
return cpy
|
|
178
183
|
|
|
179
184
|
|
|
180
|
-
class Predicate:
|
|
185
|
+
class Predicate(Generic[T]):
|
|
181
186
|
"""
|
|
182
187
|
Represents a predicate function to be used for type matching in
|
|
183
188
|
``ABIRegistry``.
|
|
184
189
|
"""
|
|
185
190
|
|
|
186
|
-
__slots__ = ()
|
|
191
|
+
__slots__ = ("_string", "__hash")
|
|
192
|
+
|
|
193
|
+
_string: Optional[str]
|
|
187
194
|
|
|
188
|
-
def
|
|
195
|
+
def __init__(self) -> None:
|
|
196
|
+
self._string = None
|
|
197
|
+
self.__hash = None
|
|
198
|
+
|
|
199
|
+
def __call__(self, arg: TypeStr) -> None:
|
|
189
200
|
raise NotImplementedError("Must implement `__call__`")
|
|
190
201
|
|
|
191
202
|
def __str__(self) -> str:
|
|
@@ -194,35 +205,47 @@ class Predicate:
|
|
|
194
205
|
def __repr__(self) -> str:
|
|
195
206
|
return f"<{type(self).__name__} {self}>"
|
|
196
207
|
|
|
197
|
-
def __iter__(self) -> Iterator[
|
|
198
|
-
|
|
199
|
-
yield getattr(self, attr)
|
|
208
|
+
def __iter__(self) -> Iterator[T]:
|
|
209
|
+
raise NotImplementedError("must be implemented by subclass")
|
|
200
210
|
|
|
201
211
|
def __hash__(self) -> int:
|
|
202
|
-
|
|
212
|
+
hashval = self.__hash
|
|
213
|
+
if hashval is None:
|
|
214
|
+
self.__hash = hashval = hash(tuple(self))
|
|
215
|
+
return hashval
|
|
203
216
|
|
|
204
|
-
def __eq__(self, other:
|
|
217
|
+
def __eq__(self, other: "Predicate") -> bool:
|
|
205
218
|
return type(self) is type(other) and tuple(self) == tuple(other)
|
|
206
219
|
|
|
207
220
|
|
|
208
|
-
|
|
221
|
+
@final
|
|
222
|
+
class Equals(Predicate[str]):
|
|
209
223
|
"""
|
|
210
224
|
A predicate that matches any input equal to `value`.
|
|
211
225
|
"""
|
|
212
226
|
|
|
213
227
|
__slots__ = ("value",)
|
|
214
228
|
|
|
215
|
-
def __init__(self, value):
|
|
216
|
-
|
|
229
|
+
def __init__(self, value: str) -> None:
|
|
230
|
+
super().__init__()
|
|
231
|
+
self.value: Final = value
|
|
217
232
|
|
|
218
|
-
def __call__(self, other:
|
|
233
|
+
def __call__(self, other: TypeStr) -> bool:
|
|
219
234
|
return self.value == other
|
|
220
235
|
|
|
221
236
|
def __str__(self) -> str:
|
|
222
|
-
|
|
237
|
+
# NOTE should this just be done at init time? is it always called?
|
|
238
|
+
string = self._string
|
|
239
|
+
if string is None:
|
|
240
|
+
self._string = string = f"(== {self.value!r})"
|
|
241
|
+
return string
|
|
242
|
+
|
|
243
|
+
def __iter__(self) -> Iterator[str]:
|
|
244
|
+
yield self.value
|
|
223
245
|
|
|
224
246
|
|
|
225
|
-
|
|
247
|
+
@final
|
|
248
|
+
class BaseEquals(Predicate[Union[str, bool, None]]):
|
|
226
249
|
"""
|
|
227
250
|
A predicate that matches a basic type string with a base component equal to
|
|
228
251
|
`value` and no array component. If `with_sub` is `True`, the type string
|
|
@@ -233,9 +256,10 @@ class BaseEquals(Predicate):
|
|
|
233
256
|
|
|
234
257
|
__slots__ = ("base", "with_sub")
|
|
235
258
|
|
|
236
|
-
def __init__(self, base, *, with_sub=None):
|
|
237
|
-
|
|
238
|
-
self.
|
|
259
|
+
def __init__(self, base: TypeStr, *, with_sub: Optional[bool] = None):
|
|
260
|
+
super().__init__()
|
|
261
|
+
self.base: Final = base
|
|
262
|
+
self.with_sub: Final = with_sub
|
|
239
263
|
|
|
240
264
|
def __call__(self, type_str: TypeStr) -> bool:
|
|
241
265
|
try:
|
|
@@ -247,10 +271,12 @@ class BaseEquals(Predicate):
|
|
|
247
271
|
if abi_type.arrlist is not None:
|
|
248
272
|
return False
|
|
249
273
|
|
|
250
|
-
|
|
251
|
-
|
|
274
|
+
with_sub = self.with_sub
|
|
275
|
+
if with_sub is not None:
|
|
276
|
+
abi_subtype = abi_type.sub
|
|
277
|
+
if with_sub and abi_subtype is None:
|
|
252
278
|
return False
|
|
253
|
-
if not
|
|
279
|
+
if not with_sub and abi_subtype is not None:
|
|
254
280
|
return False
|
|
255
281
|
|
|
256
282
|
return abi_type.base == self.base
|
|
@@ -260,15 +286,21 @@ class BaseEquals(Predicate):
|
|
|
260
286
|
return False
|
|
261
287
|
|
|
262
288
|
def __str__(self) -> str:
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
289
|
+
# NOTE should this just be done at init time? is it always called?
|
|
290
|
+
string = self._string
|
|
291
|
+
if string is None:
|
|
292
|
+
if self.with_sub is None:
|
|
293
|
+
string = f"(base == {self.base!r})"
|
|
294
|
+
elif self.with_sub:
|
|
295
|
+
string = f"(base == {self.base!r} and sub is not None)"
|
|
296
|
+
else:
|
|
297
|
+
string = f"(base == {self.base!r} and sub is None)"
|
|
298
|
+
self._string = string
|
|
299
|
+
return string
|
|
300
|
+
|
|
301
|
+
def __iter__(self) -> Iterator[Union[str, bool, None]]:
|
|
302
|
+
yield self.base
|
|
303
|
+
yield self.with_sub
|
|
272
304
|
|
|
273
305
|
|
|
274
306
|
def has_arrlist(type_str: TypeStr) -> bool:
|
|
@@ -555,14 +587,35 @@ class ABIRegistry(Copyable, BaseRegistry):
|
|
|
555
587
|
|
|
556
588
|
registry = ABIRegistry()
|
|
557
589
|
|
|
590
|
+
is_int = BaseEquals("int")
|
|
591
|
+
is_int8 = Equals("int8")
|
|
592
|
+
is_int16 = Equals("int16")
|
|
593
|
+
is_uint = BaseEquals("uint")
|
|
594
|
+
is_uint8 = Equals("uint8")
|
|
595
|
+
is_uint16 = Equals("uint16")
|
|
596
|
+
|
|
597
|
+
for size in (8, 16):
|
|
598
|
+
registry.register(
|
|
599
|
+
Equals(f"uint{size}"),
|
|
600
|
+
encoding.UnsignedIntegerEncoder,
|
|
601
|
+
decoding.UnsignedIntegerDecoder,
|
|
602
|
+
label=f"uint{size}",
|
|
603
|
+
)
|
|
604
|
+
registry.register(
|
|
605
|
+
Equals(f"int{size}"),
|
|
606
|
+
encoding.SignedIntegerEncoder,
|
|
607
|
+
decoding.SignedIntegerDecoder,
|
|
608
|
+
label=f"int{size}",
|
|
609
|
+
)
|
|
610
|
+
|
|
558
611
|
registry.register(
|
|
559
|
-
|
|
612
|
+
lambda s: is_uint(s) and not is_uint8(s) and not is_uint16(s),
|
|
560
613
|
encoding.UnsignedIntegerEncoder,
|
|
561
614
|
decoding.UnsignedIntegerDecoder,
|
|
562
615
|
label="uint",
|
|
563
616
|
)
|
|
564
617
|
registry.register(
|
|
565
|
-
|
|
618
|
+
lambda s: is_int(s) and not is_int8(s) and not is_int16(s),
|
|
566
619
|
encoding.SignedIntegerEncoder,
|
|
567
620
|
decoding.SignedIntegerDecoder,
|
|
568
621
|
label="int",
|
|
@@ -630,13 +683,25 @@ registry.register(
|
|
|
630
683
|
|
|
631
684
|
registry_packed = ABIRegistry()
|
|
632
685
|
|
|
686
|
+
for size in (8, 16):
|
|
687
|
+
registry_packed.register_encoder(
|
|
688
|
+
Equals(f"uint{size}"),
|
|
689
|
+
encoding.PackedUnsignedIntegerEncoderCached,
|
|
690
|
+
label=f"uint{size}",
|
|
691
|
+
)
|
|
692
|
+
registry_packed.register_encoder(
|
|
693
|
+
Equals(f"int{size}"),
|
|
694
|
+
encoding.PackedSignedIntegerEncoderCached,
|
|
695
|
+
label=f"int{size}",
|
|
696
|
+
)
|
|
697
|
+
|
|
633
698
|
registry_packed.register_encoder(
|
|
634
|
-
|
|
699
|
+
lambda s: is_uint(s) and not is_uint8(s) and not is_uint16(s),
|
|
635
700
|
encoding.PackedUnsignedIntegerEncoder,
|
|
636
701
|
label="uint",
|
|
637
702
|
)
|
|
638
703
|
registry_packed.register_encoder(
|
|
639
|
-
|
|
704
|
+
lambda s: is_int(s) and not is_int8(s) and not is_int16(s),
|
|
640
705
|
encoding.PackedSignedIntegerEncoder,
|
|
641
706
|
label="int",
|
|
642
707
|
)
|
|
Binary file
|
|
Binary file
|
faster_eth_abi/typing.py
CHANGED
|
@@ -1,11 +1,22 @@
|
|
|
1
1
|
# AUTOGENERATED FILE. DO NOT EDIT DIRECTLY.
|
|
2
2
|
from typing import (
|
|
3
3
|
Literal,
|
|
4
|
+
TypeVar,
|
|
4
5
|
Union,
|
|
5
6
|
)
|
|
6
7
|
|
|
8
|
+
T = TypeVar("T")
|
|
9
|
+
|
|
7
10
|
IntegerTypeStr = Union["IntTypeStr", "UintTypeStr"]
|
|
8
11
|
|
|
12
|
+
AddressTypeStr = Literal["address"]
|
|
13
|
+
BoolTypeStr = Literal["bool"]
|
|
14
|
+
StringTypeStr = Literal["string"]
|
|
15
|
+
|
|
16
|
+
AddressArrayTypeStr = Literal["address[]"]
|
|
17
|
+
StringArrayTypeStr = Literal["string[]"]
|
|
18
|
+
BoolArrayTypeStr = Literal["bool[]"]
|
|
19
|
+
|
|
9
20
|
ArrayTypeStr = Union[
|
|
10
21
|
"AddressArrayTypeStr",
|
|
11
22
|
"BoolArrayTypeStr",
|
|
@@ -93,20 +104,42 @@ UintTypeStr = Literal[
|
|
|
93
104
|
"uint256",
|
|
94
105
|
]
|
|
95
106
|
|
|
96
|
-
BoolTypeStr = Literal["bool"]
|
|
97
|
-
|
|
98
107
|
BytesTypeStr = Literal[
|
|
99
108
|
"bytes",
|
|
100
|
-
|
|
109
|
+
"bytes1",
|
|
110
|
+
"bytes2",
|
|
111
|
+
"bytes3",
|
|
112
|
+
"bytes4",
|
|
113
|
+
"bytes5",
|
|
114
|
+
"bytes6",
|
|
115
|
+
"bytes7",
|
|
116
|
+
"bytes8",
|
|
117
|
+
"bytes9",
|
|
118
|
+
"bytes10",
|
|
119
|
+
"bytes11",
|
|
120
|
+
"bytes12",
|
|
121
|
+
"bytes13",
|
|
122
|
+
"bytes14",
|
|
123
|
+
"bytes15",
|
|
124
|
+
"bytes16",
|
|
125
|
+
"bytes17",
|
|
126
|
+
"bytes18",
|
|
127
|
+
"bytes19",
|
|
128
|
+
"bytes20",
|
|
129
|
+
"bytes21",
|
|
130
|
+
"bytes22",
|
|
131
|
+
"bytes23",
|
|
132
|
+
"bytes24",
|
|
133
|
+
"bytes25",
|
|
134
|
+
"bytes26",
|
|
135
|
+
"bytes27",
|
|
136
|
+
"bytes28",
|
|
137
|
+
"bytes29",
|
|
138
|
+
"bytes30",
|
|
139
|
+
"bytes31",
|
|
140
|
+
"bytes32",
|
|
101
141
|
]
|
|
102
142
|
|
|
103
|
-
StringTypeStr = Literal["string"]
|
|
104
|
-
|
|
105
|
-
AddressArrayTypeStr = Literal["address[]"]
|
|
106
|
-
BytesArrayTypeStr = Literal["bytes[]"]
|
|
107
|
-
StringArrayTypeStr = Literal["string[]"]
|
|
108
|
-
BoolArrayTypeStr = Literal["bool[]"]
|
|
109
|
-
|
|
110
143
|
IntArrayTypeStr = Literal[
|
|
111
144
|
"int8[]",
|
|
112
145
|
"int16[]",
|
|
@@ -174,6 +207,42 @@ IntArrayTypeStr = Literal[
|
|
|
174
207
|
"uint256[]",
|
|
175
208
|
]
|
|
176
209
|
|
|
210
|
+
BytesArrayTypeStr = Literal[
|
|
211
|
+
"bytes[]",
|
|
212
|
+
"bytes1[]",
|
|
213
|
+
"bytes2[]",
|
|
214
|
+
"bytes3[]",
|
|
215
|
+
"bytes4[]",
|
|
216
|
+
"bytes5[]",
|
|
217
|
+
"bytes6[]",
|
|
218
|
+
"bytes7[]",
|
|
219
|
+
"bytes8[]",
|
|
220
|
+
"bytes9[]",
|
|
221
|
+
"bytes10[]",
|
|
222
|
+
"bytes11[]",
|
|
223
|
+
"bytes12[]",
|
|
224
|
+
"bytes13[]",
|
|
225
|
+
"bytes14[]",
|
|
226
|
+
"bytes15[]",
|
|
227
|
+
"bytes16[]",
|
|
228
|
+
"bytes17[]",
|
|
229
|
+
"bytes18[]",
|
|
230
|
+
"bytes19[]",
|
|
231
|
+
"bytes20[]",
|
|
232
|
+
"bytes21[]",
|
|
233
|
+
"bytes22[]",
|
|
234
|
+
"bytes23[]",
|
|
235
|
+
"bytes24[]",
|
|
236
|
+
"bytes25[]",
|
|
237
|
+
"bytes26[]",
|
|
238
|
+
"bytes27[]",
|
|
239
|
+
"bytes28[]",
|
|
240
|
+
"bytes29[]",
|
|
241
|
+
"bytes30[]",
|
|
242
|
+
"bytes31[]",
|
|
243
|
+
"bytes32[]",
|
|
244
|
+
]
|
|
245
|
+
|
|
177
246
|
# New tuple type strings
|
|
178
247
|
TupleAddressIntTypeStr = Literal[
|
|
179
248
|
"(address,int8)",
|
|
@@ -4541,3 +4610,18 @@ TupleStrIntTypeStr = Literal[
|
|
|
4541
4610
|
"(string,uint248)",
|
|
4542
4611
|
"(string,uint256)",
|
|
4543
4612
|
]
|
|
4613
|
+
|
|
4614
|
+
AnyTypeStr = Union[
|
|
4615
|
+
AddressTypeStr,
|
|
4616
|
+
BoolTypeStr,
|
|
4617
|
+
StringTypeStr,
|
|
4618
|
+
AddressArrayTypeStr,
|
|
4619
|
+
StringArrayTypeStr,
|
|
4620
|
+
BoolArrayTypeStr,
|
|
4621
|
+
ArrayTypeStr,
|
|
4622
|
+
TupleTypeStr,
|
|
4623
|
+
BytesTypeStr,
|
|
4624
|
+
IntTypeStr,
|
|
4625
|
+
UintTypeStr,
|
|
4626
|
+
str,
|
|
4627
|
+
]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: faster_eth_abi
|
|
3
|
-
Version: 5.2.
|
|
3
|
+
Version: 5.2.16
|
|
4
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
5
|
Home-page: https://github.com/BobTheBuidler/faster-eth-abi
|
|
6
6
|
Author: The Ethereum Foundation
|
|
@@ -32,16 +32,18 @@ Requires-Python: >=3.8, <4
|
|
|
32
32
|
Description-Content-Type: text/markdown
|
|
33
33
|
License-File: LICENSE
|
|
34
34
|
Requires-Dist: cchecksum<0.4,>=0.2.6
|
|
35
|
-
Requires-Dist: faster-eth-utils
|
|
36
|
-
Requires-Dist: eth-abi
|
|
37
|
-
Requires-Dist: eth-typing
|
|
35
|
+
Requires-Dist: faster-eth-utils==5.3.16
|
|
36
|
+
Requires-Dist: eth-abi==5.2.0
|
|
37
|
+
Requires-Dist: eth-typing==5.2.1
|
|
38
38
|
Requires-Dist: mypy_extensions
|
|
39
39
|
Requires-Dist: parsimonious<0.11.0,>=0.10.0
|
|
40
40
|
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: mypy<1.18.3,>=1.14.1; extra == "dev"
|
|
42
|
+
Requires-Dist: tqdm; extra == "dev"
|
|
41
43
|
Requires-Dist: build>=0.9.0; extra == "dev"
|
|
42
44
|
Requires-Dist: bump_my_version>=0.19.0; extra == "dev"
|
|
43
45
|
Requires-Dist: ipython; extra == "dev"
|
|
44
|
-
Requires-Dist: mypy
|
|
46
|
+
Requires-Dist: mypy<1.18.3,>=1.14.1; extra == "dev"
|
|
45
47
|
Requires-Dist: pre-commit>=3.4.0; extra == "dev"
|
|
46
48
|
Requires-Dist: tox>=4.0.0; extra == "dev"
|
|
47
49
|
Requires-Dist: twine; extra == "dev"
|
|
@@ -50,7 +52,7 @@ Requires-Dist: pytest-benchmark; extra == "dev"
|
|
|
50
52
|
Requires-Dist: sphinx>=6.0.0; extra == "dev"
|
|
51
53
|
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
|
|
52
54
|
Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
|
|
53
|
-
Requires-Dist: towncrier<26,>=
|
|
55
|
+
Requires-Dist: towncrier<26,>=24; extra == "dev"
|
|
54
56
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
55
57
|
Requires-Dist: pytest-timeout>=2.0.0; extra == "dev"
|
|
56
58
|
Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
|
|
@@ -61,7 +63,7 @@ Provides-Extra: docs
|
|
|
61
63
|
Requires-Dist: sphinx>=6.0.0; extra == "docs"
|
|
62
64
|
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
|
|
63
65
|
Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
|
|
64
|
-
Requires-Dist: towncrier<26,>=
|
|
66
|
+
Requires-Dist: towncrier<26,>=24; extra == "docs"
|
|
65
67
|
Provides-Extra: test
|
|
66
68
|
Requires-Dist: pytest>=7.0.0; extra == "test"
|
|
67
69
|
Requires-Dist: pytest-timeout>=2.0.0; extra == "test"
|
|
@@ -75,6 +77,9 @@ Provides-Extra: codspeed
|
|
|
75
77
|
Requires-Dist: pytest>=7.0.0; extra == "codspeed"
|
|
76
78
|
Requires-Dist: pytest-codspeed<4.3,>=4.2; extra == "codspeed"
|
|
77
79
|
Requires-Dist: pytest-test-groups; extra == "codspeed"
|
|
80
|
+
Provides-Extra: mypy
|
|
81
|
+
Requires-Dist: mypy<1.18.3,>=1.14.1; extra == "mypy"
|
|
82
|
+
Requires-Dist: tqdm; extra == "mypy"
|
|
78
83
|
Dynamic: author
|
|
79
84
|
Dynamic: author-email
|
|
80
85
|
Dynamic: classifier
|
|
@@ -90,7 +95,7 @@ Dynamic: requires-dist
|
|
|
90
95
|
Dynamic: requires-python
|
|
91
96
|
Dynamic: summary
|
|
92
97
|
|
|
93
|
-
### I forked eth-abi and compiled it to C. It does the same stuff, now ~2-6x faster
|
|
98
|
+
### I forked eth-abi, added comprehensive type annotations, and compiled it to C. It does the same stuff, now ~2-6x faster.
|
|
94
99
|
|
|
95
100
|
[](https://pypi.org/project/faster-eth-abi/)
|
|
96
101
|
[](https://pypistats.org/packages/faster-eth-abi)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
faster_eth_abi__mypyc.cp310-win32.pyd,sha256=BDMftwgGGNls5jQT_HtY3l_fiqP-XhNNRh6gW4-ango,208896
|
|
2
|
+
faster_eth_abi/__init__.py,sha256=JpTfPTiusUGMmX8sEsGAxvILxFbvhh3MEyfiKOd5o9g,217
|
|
3
|
+
faster_eth_abi/_codec.cp310-win32.pyd,sha256=V0PVJXB5pMS7o--PQVx3LJYSSP5rV8qflUCdtFCF3XA,9216
|
|
4
|
+
faster_eth_abi/_codec.py,sha256=hmNYkM1dRFyF97x6cA0Pg26EndRVX7KdwauK67IcUh8,2597
|
|
5
|
+
faster_eth_abi/_decoding.cp310-win32.pyd,sha256=tK2b-zy9KIP9riXAEPyIESDSzzHzmoopMYZqvjSULHY,9216
|
|
6
|
+
faster_eth_abi/_decoding.py,sha256=zkwnU76AimlbztaJZSewSMJZQld6Si9qAJtssdjYLsM,10244
|
|
7
|
+
faster_eth_abi/_encoding.cp310-win32.pyd,sha256=cGOrhMjvlgngwOQhFq_EvxJldTsnmIOgpnG_JjBDieI,9216
|
|
8
|
+
faster_eth_abi/_encoding.py,sha256=hAgf9ZUaD05dKpMbUifjWeaE-EXsbuXWOxdrtyoJgUU,9019
|
|
9
|
+
faster_eth_abi/_grammar.cp310-win32.pyd,sha256=OW4J_plQpEZ5oD3aOqKzRVvGVtg7djY-MuzVcjV0xR4,9216
|
|
10
|
+
faster_eth_abi/_grammar.py,sha256=Gpjf_v5W21JYL0dPfds9XYtzRbftVAkdVeKVV08q2Hs,10926
|
|
11
|
+
faster_eth_abi/abi.cp310-win32.pyd,sha256=Bw0bST3Q41Cf9uQn35ii-myEym0_jAtguFT4VmS8qkk,9216
|
|
12
|
+
faster_eth_abi/abi.py,sha256=-t9OVBSCxy6SuWpCu3cxHrCqkx8_svPIRb0MSFXEl5Q,383
|
|
13
|
+
faster_eth_abi/base.py,sha256=AuuTt9u3OQf8H5_KsCUYIKu5OJyuKw5EbbzxqJ1gyIk,1374
|
|
14
|
+
faster_eth_abi/codec.py,sha256=K5PQ1XpSuhT3VzEoEsdHDpsv7NEcY1u_EdT2XFF9EW0,69433
|
|
15
|
+
faster_eth_abi/constants.cp310-win32.pyd,sha256=rZR8SVSU9SkaOGhf2ZoaTrUYmcu2m6-4lOJ3yrvcDIg,9216
|
|
16
|
+
faster_eth_abi/constants.py,sha256=q3FGynS-Eb78cnrL6mBoAvTDz16PF3tW2OylTMd6ajs,114
|
|
17
|
+
faster_eth_abi/decoding.py,sha256=tMqQ-jLrX75Y4CJTqCI5dQ8TFj7JCYOfzFJt3zIsJKo,18178
|
|
18
|
+
faster_eth_abi/encoding.py,sha256=3nLAVBC0MRR0Dmno3CjaygZG-T_ah3-xc0SuJUSNBDc,21998
|
|
19
|
+
faster_eth_abi/exceptions.py,sha256=wWsJJc_ip62fUVI_7CPlR-o37JWfv__ubYprEW0ZcYI,3773
|
|
20
|
+
faster_eth_abi/from_type_str.cp310-win32.pyd,sha256=8Q2oJcvHdFquL7DnUKj_6EAnwJ56MkjbVGKzOXQzrPQ,9216
|
|
21
|
+
faster_eth_abi/from_type_str.py,sha256=qHJtLNNHF2BHtRtdemC6hU4eP5jAuorY8qunC7illJI,4631
|
|
22
|
+
faster_eth_abi/grammar.py,sha256=Pd4YmZnQ79tOCrhNDr9eqB5wF2hkBnCJ79kiGGpyv-E,4623
|
|
23
|
+
faster_eth_abi/io.py,sha256=2mnBAYXtiCg1eN-mPkw03z_0rJ_EoB9Bl_XssydAZXM,3984
|
|
24
|
+
faster_eth_abi/packed.cp310-win32.pyd,sha256=klTPamwFucRxzQvRPn85CaZV4qdmwQ-fQNzhQRrgNmY,9216
|
|
25
|
+
faster_eth_abi/packed.py,sha256=STlAhJQSm04B3keAOFGRh8jzk-aCCYAm61_9O9JUn68,437
|
|
26
|
+
faster_eth_abi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
+
faster_eth_abi/registry.py,sha256=PN2lJ4B0DcOZpUsr148mihbXITTTOamOPG1sn2KgjIk,24529
|
|
28
|
+
faster_eth_abi/typing.py,sha256=8npqU_Nvs-xRTnczC43eJSdaEbrsfERhNJhY9SwNEIg,109647
|
|
29
|
+
faster_eth_abi/tools/__init__.cp310-win32.pyd,sha256=pHwqWA_jnVSYHd9OsjJtwbCbo-EvUjMvRGIsmNPOSos,9216
|
|
30
|
+
faster_eth_abi/tools/__init__.py,sha256=jxyQnb34ldRjCTYi3Ajb5h5QlFQ6ODfKQNhOCVwR7Ao,54
|
|
31
|
+
faster_eth_abi/tools/_strategies.cp310-win32.pyd,sha256=yZhXzNISvyrsNGo7JbDvpF6gESRYaFZgZ432UldDkVA,9216
|
|
32
|
+
faster_eth_abi/tools/_strategies.py,sha256=02wmJpj336nOFu7pBVaH4ucj3FORweKkiGqlaRgy-8c,6330
|
|
33
|
+
faster_eth_abi/utils/__init__.cp310-win32.pyd,sha256=dURidIc6rKLhe6NYkdZABsLK0xZawGbATA8DS7kETNI,9216
|
|
34
|
+
faster_eth_abi/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
+
faster_eth_abi/utils/numeric.cp310-win32.pyd,sha256=XeO8YDxRIJGM5MM8iNQR7_Ul250WfilEo7cVbfEcwH8,9216
|
|
36
|
+
faster_eth_abi/utils/numeric.py,sha256=saAVL12dfDrMXZeao3u2jar-U2y57YKVUqF6VOzoLxs,3395
|
|
37
|
+
faster_eth_abi/utils/padding.cp310-win32.pyd,sha256=cI0pmc75UwBKnl95tHpsDXcD-gPPwt8rnDdiL1zAPU8,9216
|
|
38
|
+
faster_eth_abi/utils/padding.py,sha256=k6dkOiQ3k0OhQUZ6blCiL1VOQVYGyynucafbySjcFfY,515
|
|
39
|
+
faster_eth_abi/utils/string.cp310-win32.pyd,sha256=EvfCxr2Tpv7K7D9wi87ZLp7KsLXLg7QYrY3cLXE99ts,9216
|
|
40
|
+
faster_eth_abi/utils/string.py,sha256=wYcvWof4kuitrGGSe_NOduQaxE4HHYmpraCPXKcZxMs,455
|
|
41
|
+
faster_eth_abi/utils/validation.cp310-win32.pyd,sha256=T_FuBpfsmU5Y6mvTfPiiWxuH5C3UPnADkF0ahtIWqzM,9216
|
|
42
|
+
faster_eth_abi/utils/validation.py,sha256=9veO7wyQsmcFgeaGrsKdSifjV1gaXfTDDKAt1EbKHYY,539
|
|
43
|
+
faster_eth_abi-5.2.16.dist-info/licenses/LICENSE,sha256=Q1lDDWXR057JL2Y7HTAwclCF32_LCloN4sGUkXO1YeI,1127
|
|
44
|
+
faster_eth_abi-5.2.16.dist-info/METADATA,sha256=c5UqBxKv4gg1z7Axb-wKm2ezp53sPIk2I5uRv1ve4Wg,7379
|
|
45
|
+
faster_eth_abi-5.2.16.dist-info/WHEEL,sha256=GWZF0cboiU4MhsG0baPl8rrtCaXFSLW25384gp3vddM,97
|
|
46
|
+
faster_eth_abi-5.2.16.dist-info/top_level.txt,sha256=Y0kTTMPnPpssaR0jlmJwQ2XbkYXMEj_80Ewd7quo1Cg,37
|
|
47
|
+
faster_eth_abi-5.2.16.dist-info/RECORD,,
|
|
Binary file
|
benchmarks/__init__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|