faster-eth-abi 5.2.9__cp313-cp313-win_amd64.whl → 5.2.10__cp313-cp313-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.
Potentially problematic release.
This version of faster-eth-abi might be problematic. Click here for more details.
- 76f9a3652d4d2667c55c__mypyc.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/_codec.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/_decoding.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/_decoding.py +46 -0
- faster_eth_abi/_encoding.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/_encoding.py +12 -5
- faster_eth_abi/abi.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/constants.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/decoding.py +11 -31
- faster_eth_abi/from_type_str.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/packed.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/tools/__init__.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/tools/_strategies.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/utils/__init__.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/utils/numeric.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/utils/numeric.py +51 -20
- faster_eth_abi/utils/padding.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/utils/string.cp313-win_amd64.pyd +0 -0
- faster_eth_abi/utils/validation.cp313-win_amd64.pyd +0 -0
- {faster_eth_abi-5.2.9.dist-info → faster_eth_abi-5.2.10.dist-info}/METADATA +1 -1
- faster_eth_abi-5.2.10.dist-info/RECORD +44 -0
- faster_eth_abi-5.2.9.dist-info/RECORD +0 -44
- {faster_eth_abi-5.2.9.dist-info → faster_eth_abi-5.2.10.dist-info}/WHEEL +0 -0
- {faster_eth_abi-5.2.9.dist-info → faster_eth_abi-5.2.10.dist-info}/licenses/LICENSE +0 -0
- {faster_eth_abi-5.2.9.dist-info → faster_eth_abi-5.2.10.dist-info}/top_level.txt +0 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
faster_eth_abi/_decoding.py
CHANGED
|
@@ -10,6 +10,7 @@ from faster_eth_utils import (
|
|
|
10
10
|
|
|
11
11
|
from faster_eth_abi.exceptions import (
|
|
12
12
|
InsufficientDataBytes,
|
|
13
|
+
NonEmptyPaddingBytes,
|
|
13
14
|
)
|
|
14
15
|
from faster_eth_abi.io import (
|
|
15
16
|
BytesIO,
|
|
@@ -26,6 +27,7 @@ if TYPE_CHECKING:
|
|
|
26
27
|
)
|
|
27
28
|
|
|
28
29
|
|
|
30
|
+
# Helpers
|
|
29
31
|
def decode_uint_256(stream: ContextFramesBytesIO) -> int:
|
|
30
32
|
"""
|
|
31
33
|
This function is a faster version of decode_uint_256 in decoding.py.
|
|
@@ -39,6 +41,10 @@ def decode_uint_256(stream: ContextFramesBytesIO) -> int:
|
|
|
39
41
|
raise InsufficientDataBytes(f"Tried to read 32 bytes, only got {len(data)} bytes.")
|
|
40
42
|
|
|
41
43
|
|
|
44
|
+
def get_value_byte_size(decoder: "FixedByteSizeDecoder") -> int:
|
|
45
|
+
return decoder.value_bit_size // 8
|
|
46
|
+
|
|
47
|
+
|
|
42
48
|
# HeadTailDecoder
|
|
43
49
|
def decode_head_tail(self: "HeadTailDecoder", stream: ContextFramesBytesIO) -> Any:
|
|
44
50
|
# Decode the offset and move the stream cursor forward 32 bytes
|
|
@@ -107,3 +113,43 @@ def read_fixed_byte_size_data_from_stream(
|
|
|
107
113
|
raise InsufficientDataBytes(
|
|
108
114
|
f"Tried to read {data_byte_size} bytes, only got {len(data)} bytes."
|
|
109
115
|
)
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def split_data_and_padding_fixed_byte_size(
|
|
119
|
+
self: "FixedByteSizeDecoder",
|
|
120
|
+
raw_data: bytes,
|
|
121
|
+
) -> Tuple[bytes, bytes]:
|
|
122
|
+
value_byte_size = get_value_byte_size(self)
|
|
123
|
+
padding_size = self.data_byte_size - value_byte_size
|
|
124
|
+
|
|
125
|
+
if self.is_big_endian:
|
|
126
|
+
if padding_size == 0:
|
|
127
|
+
return raw_data, b""
|
|
128
|
+
padding_bytes = raw_data[:padding_size]
|
|
129
|
+
data = raw_data[padding_size:]
|
|
130
|
+
else:
|
|
131
|
+
data = raw_data[:value_byte_size]
|
|
132
|
+
padding_bytes = raw_data[value_byte_size:]
|
|
133
|
+
|
|
134
|
+
return data, padding_bytes
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
def validate_padding_bytes_fixed_byte_size(
|
|
138
|
+
self: "FixedByteSizeDecoder",
|
|
139
|
+
value: Any,
|
|
140
|
+
padding_bytes: bytes,
|
|
141
|
+
) -> None:
|
|
142
|
+
value_byte_size = get_value_byte_size(self)
|
|
143
|
+
padding_size = self.data_byte_size - value_byte_size
|
|
144
|
+
|
|
145
|
+
if padding_bytes != b"\x00" * padding_size:
|
|
146
|
+
raise NonEmptyPaddingBytes(f"Padding bytes were not empty: {padding_bytes!r}")
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
# BooleanDecoder
|
|
150
|
+
def decoder_fn_boolean(data: bytes) -> bool:
|
|
151
|
+
if data == b"\x00":
|
|
152
|
+
return False
|
|
153
|
+
elif data == b"\x01":
|
|
154
|
+
return True
|
|
155
|
+
raise NonEmptyPaddingBytes(f"Boolean must be either 0x0 or 0x1. Got: {data!r}")
|
|
Binary file
|
faster_eth_abi/_encoding.py
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
from itertools import (
|
|
2
|
-
accumulate,
|
|
3
|
-
)
|
|
4
1
|
from typing import (
|
|
5
2
|
TYPE_CHECKING,
|
|
6
3
|
Any,
|
|
@@ -35,7 +32,12 @@ def encode_tuple(
|
|
|
35
32
|
tail_chunks.append(b"")
|
|
36
33
|
|
|
37
34
|
head_length = sum(32 if item is None else len(item) for item in raw_head_chunks)
|
|
38
|
-
tail_offsets =
|
|
35
|
+
tail_offsets = [0]
|
|
36
|
+
total_offset = 0
|
|
37
|
+
for item in tail_chunks[:-1]:
|
|
38
|
+
total_offset += len(item)
|
|
39
|
+
tail_offsets.append(total_offset)
|
|
40
|
+
|
|
39
41
|
head_chunks = tuple(
|
|
40
42
|
encode_uint_256(head_length + offset) if chunk is None else chunk
|
|
41
43
|
for chunk, offset in zip(raw_head_chunks, tail_offsets)
|
|
@@ -77,7 +79,12 @@ def encode_elements(item_encoder: "BaseEncoder", value: Sequence[Any]) -> bytes:
|
|
|
77
79
|
return b"".join(tail_chunks)
|
|
78
80
|
|
|
79
81
|
head_length = 32 * len(value)
|
|
80
|
-
tail_offsets =
|
|
82
|
+
tail_offsets = [0]
|
|
83
|
+
total_offset = 0
|
|
84
|
+
for item in tail_chunks[:-1]:
|
|
85
|
+
total_offset += len(item)
|
|
86
|
+
tail_offsets.append(total_offset)
|
|
87
|
+
|
|
81
88
|
head_chunks = tuple(
|
|
82
89
|
encode_uint_256(head_length + offset) for offset in tail_offsets
|
|
83
90
|
)
|
|
Binary file
|
|
Binary file
|
faster_eth_abi/decoding.py
CHANGED
|
@@ -19,7 +19,11 @@ from faster_eth_abi._decoding import (
|
|
|
19
19
|
decode_head_tail,
|
|
20
20
|
decode_sized_array,
|
|
21
21
|
decode_tuple,
|
|
22
|
+
decoder_fn_boolean,
|
|
23
|
+
get_value_byte_size,
|
|
22
24
|
read_fixed_byte_size_data_from_stream,
|
|
25
|
+
split_data_and_padding_fixed_byte_size,
|
|
26
|
+
validate_padding_bytes_fixed_byte_size,
|
|
23
27
|
)
|
|
24
28
|
from faster_eth_abi.base import (
|
|
25
29
|
BaseCoder,
|
|
@@ -303,29 +307,14 @@ class FixedByteSizeDecoder(SingleDecoder):
|
|
|
303
307
|
return read_fixed_byte_size_data_from_stream(self, stream)
|
|
304
308
|
|
|
305
309
|
def split_data_and_padding(self, raw_data: bytes) -> Tuple[bytes, bytes]:
|
|
306
|
-
|
|
307
|
-
padding_size = self.data_byte_size - value_byte_size
|
|
308
|
-
|
|
309
|
-
if self.is_big_endian:
|
|
310
|
-
padding_bytes = raw_data[:padding_size]
|
|
311
|
-
data = raw_data[padding_size:]
|
|
312
|
-
else:
|
|
313
|
-
data = raw_data[:value_byte_size]
|
|
314
|
-
padding_bytes = raw_data[value_byte_size:]
|
|
315
|
-
|
|
316
|
-
return data, padding_bytes
|
|
310
|
+
return split_data_and_padding_fixed_byte_size(self, raw_data)
|
|
317
311
|
|
|
318
312
|
def validate_padding_bytes(self, value: Any, padding_bytes: bytes) -> None:
|
|
319
|
-
|
|
320
|
-
padding_size = self.data_byte_size - value_byte_size
|
|
321
|
-
|
|
322
|
-
if padding_bytes != b"\x00" * padding_size:
|
|
323
|
-
raise NonEmptyPaddingBytes(
|
|
324
|
-
f"Padding bytes were not empty: {padding_bytes!r}"
|
|
325
|
-
)
|
|
313
|
+
validate_padding_bytes_fixed_byte_size(self, value, padding_bytes)
|
|
326
314
|
|
|
327
315
|
def _get_value_byte_size(self) -> int:
|
|
328
|
-
|
|
316
|
+
# This is unused, but it is kept in to preserve the eth-abi api
|
|
317
|
+
return get_value_byte_size(self)
|
|
329
318
|
|
|
330
319
|
|
|
331
320
|
class Fixed32ByteSizeDecoder(FixedByteSizeDecoder):
|
|
@@ -336,16 +325,7 @@ class BooleanDecoder(Fixed32ByteSizeDecoder):
|
|
|
336
325
|
value_bit_size = 8
|
|
337
326
|
is_big_endian = True
|
|
338
327
|
|
|
339
|
-
|
|
340
|
-
def decoder_fn(data: bytes) -> bool:
|
|
341
|
-
if data == b"\x00":
|
|
342
|
-
return False
|
|
343
|
-
elif data == b"\x01":
|
|
344
|
-
return True
|
|
345
|
-
else:
|
|
346
|
-
raise NonEmptyPaddingBytes(
|
|
347
|
-
f"Boolean must be either 0x0 or 0x1. Got: {data!r}"
|
|
348
|
-
)
|
|
328
|
+
decoder_fn = staticmethod(decoder_fn_boolean)
|
|
349
329
|
|
|
350
330
|
@parse_type_str("bool")
|
|
351
331
|
def from_type_str(cls, abi_type, registry):
|
|
@@ -392,7 +372,7 @@ class SignedIntegerDecoder(Fixed32ByteSizeDecoder):
|
|
|
392
372
|
return value
|
|
393
373
|
|
|
394
374
|
def validate_padding_bytes(self, value: Any, padding_bytes: bytes) -> None:
|
|
395
|
-
value_byte_size = self
|
|
375
|
+
value_byte_size = get_value_byte_size(self)
|
|
396
376
|
padding_size = self.data_byte_size - value_byte_size
|
|
397
377
|
|
|
398
378
|
if value >= 0:
|
|
@@ -471,7 +451,7 @@ class SignedFixedDecoder(BaseFixedDecoder):
|
|
|
471
451
|
return decimal_value
|
|
472
452
|
|
|
473
453
|
def validate_padding_bytes(self, value: Any, padding_bytes: bytes) -> None:
|
|
474
|
-
value_byte_size = self
|
|
454
|
+
value_byte_size = get_value_byte_size(self)
|
|
475
455
|
padding_size = self.data_byte_size - value_byte_size
|
|
476
456
|
|
|
477
457
|
if value >= 0:
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
faster_eth_abi/utils/numeric.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import decimal
|
|
2
2
|
from typing import (
|
|
3
3
|
Callable,
|
|
4
|
+
Dict,
|
|
4
5
|
Final,
|
|
5
6
|
Tuple,
|
|
6
7
|
)
|
|
@@ -8,6 +9,7 @@ from typing import (
|
|
|
8
9
|
ABI_DECIMAL_PREC: Final = 999
|
|
9
10
|
|
|
10
11
|
abi_decimal_context: Final = decimal.Context(prec=ABI_DECIMAL_PREC)
|
|
12
|
+
decimal_localcontext: Final = decimal.localcontext
|
|
11
13
|
|
|
12
14
|
ZERO: Final = decimal.Decimal(0)
|
|
13
15
|
TEN: Final = decimal.Decimal(10)
|
|
@@ -16,47 +18,76 @@ Decimal: Final = decimal.Decimal
|
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
def ceil32(x: int) -> int:
|
|
19
|
-
|
|
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]]] = {}
|
|
20
26
|
|
|
21
27
|
|
|
22
28
|
def compute_unsigned_integer_bounds(num_bits: int) -> Tuple[int, int]:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
2**num_bits - 1
|
|
26
|
-
|
|
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]]] = {}
|
|
27
37
|
|
|
28
38
|
|
|
29
39
|
def compute_signed_integer_bounds(num_bits: int) -> Tuple[int, int]:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
2 ** (num_bits - 1)
|
|
33
|
-
|
|
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]] = {}
|
|
34
51
|
|
|
35
52
|
|
|
36
53
|
def compute_unsigned_fixed_bounds(
|
|
37
54
|
num_bits: int,
|
|
38
55
|
frac_places: int,
|
|
39
56
|
) -> Tuple[decimal.Decimal, decimal.Decimal]:
|
|
40
|
-
|
|
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
|
|
41
63
|
|
|
42
|
-
|
|
43
|
-
upper = Decimal(int_upper) * TEN**-frac_places
|
|
64
|
+
_unsigned_fixed_bounds_cache[(num_bits, frac_places)] = upper
|
|
44
65
|
|
|
45
66
|
return ZERO, upper
|
|
46
67
|
|
|
47
68
|
|
|
69
|
+
_signed_fixed_bounds_cache: Final[
|
|
70
|
+
Dict[Tuple[int, int], Tuple[decimal.Decimal, decimal.Decimal]]
|
|
71
|
+
] = {}
|
|
72
|
+
|
|
73
|
+
|
|
48
74
|
def compute_signed_fixed_bounds(
|
|
49
75
|
num_bits: int,
|
|
50
76
|
frac_places: int,
|
|
51
77
|
) -> Tuple[decimal.Decimal, decimal.Decimal]:
|
|
52
|
-
|
|
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
|
|
53
86
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
lower = Decimal(int_lower) * exp
|
|
57
|
-
upper = Decimal(int_upper) * exp
|
|
87
|
+
bounds = lower, upper
|
|
88
|
+
_signed_fixed_bounds_cache[(num_bits, frac_places)] = bounds
|
|
58
89
|
|
|
59
|
-
return
|
|
90
|
+
return bounds
|
|
60
91
|
|
|
61
92
|
|
|
62
93
|
def scale_places(places: int) -> Callable[[decimal.Decimal], decimal.Decimal]:
|
|
@@ -70,11 +101,11 @@ def scale_places(places: int) -> Callable[[decimal.Decimal], decimal.Decimal]:
|
|
|
70
101
|
f"of type {type(places)}.",
|
|
71
102
|
)
|
|
72
103
|
|
|
73
|
-
with
|
|
104
|
+
with decimal_localcontext(abi_decimal_context):
|
|
74
105
|
scaling_factor = TEN**-places
|
|
75
106
|
|
|
76
107
|
def f(x: decimal.Decimal) -> decimal.Decimal:
|
|
77
|
-
with
|
|
108
|
+
with decimal_localcontext(abi_decimal_context):
|
|
78
109
|
return x * scaling_factor
|
|
79
110
|
|
|
80
111
|
places_repr = f"Eneg{places}" if places > 0 else f"Epos{-places}"
|
|
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.10
|
|
4
4
|
Summary: A 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
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
76f9a3652d4d2667c55c__mypyc.cp313-win_amd64.pyd,sha256=yMh0fJpWzog7Z4QaBq-uoBtqU1pqrsU39K4wgX5Wq6w,168960
|
|
2
|
+
faster_eth_abi/__init__.py,sha256=JpTfPTiusUGMmX8sEsGAxvILxFbvhh3MEyfiKOd5o9g,217
|
|
3
|
+
faster_eth_abi/_codec.cp313-win_amd64.pyd,sha256=pO2X9Nm2Bq9V2B3zP6imPC2veBLQopk5qJMuStC_jBg,10752
|
|
4
|
+
faster_eth_abi/_codec.py,sha256=fLRvqvrD8F38U4m1wZztvx-7JJbZaPikwXS5u9BzY14,2509
|
|
5
|
+
faster_eth_abi/_decoding.cp313-win_amd64.pyd,sha256=7VA1RKp8TYByJTsIHRfapymHDa31d9Mfr4-9rxAw4NA,10752
|
|
6
|
+
faster_eth_abi/_decoding.py,sha256=06ddzblp834cZ_6SA5Q3J3_XnQTa0gmWeM4gYRxrcSk,4555
|
|
7
|
+
faster_eth_abi/_encoding.cp313-win_amd64.pyd,sha256=GJVKOIbn4nQfKfvrn5YQfXGgjNnLIHe2d6-saUQdhFM,10752
|
|
8
|
+
faster_eth_abi/_encoding.py,sha256=rsZihtFUqYu80ANOsxP9QwpFJDH73VBVJSzOrllBm2k,3340
|
|
9
|
+
faster_eth_abi/abi.cp313-win_amd64.pyd,sha256=XnmgBeteN9uc9TBBMwtH_-SLeizNvgAu9mCbHlg5xVQ,10752
|
|
10
|
+
faster_eth_abi/abi.py,sha256=-t9OVBSCxy6SuWpCu3cxHrCqkx8_svPIRb0MSFXEl5Q,383
|
|
11
|
+
faster_eth_abi/base.py,sha256=y4IXpQJWGfUISl3xjCO420Grxido3tE2ebPV2rK-DvM,1229
|
|
12
|
+
faster_eth_abi/codec.py,sha256=e1uO8BJrXRn0Ih70eUa5qipD2wcg2aZSR4fyVuGpFoY,4580
|
|
13
|
+
faster_eth_abi/constants.cp313-win_amd64.pyd,sha256=24Rx6DNdu2QXlnjuLKd1AJpYEUOI-Ra9MIleB2drJF8,10752
|
|
14
|
+
faster_eth_abi/constants.py,sha256=q3FGynS-Eb78cnrL6mBoAvTDz16PF3tW2OylTMd6ajs,114
|
|
15
|
+
faster_eth_abi/decoding.py,sha256=7zOcSLdiQhAJWnCOSAdFg2AtSMoj8ZdN2IYE_aZKHQU,17028
|
|
16
|
+
faster_eth_abi/encoding.py,sha256=P1svhYylcZa55cQ9LPj6jV8iJVLSL_c5SIZT1Umol58,19679
|
|
17
|
+
faster_eth_abi/exceptions.py,sha256=KzNYRc9t0CvlkveozWvLeo1WC_GarcBkwzV67aY_5yI,3067
|
|
18
|
+
faster_eth_abi/from_type_str.cp313-win_amd64.pyd,sha256=atIKnXXLMiq2dutGtnRTIetdnWfs9cfhNYiIAUMyjrQ,10752
|
|
19
|
+
faster_eth_abi/from_type_str.py,sha256=WLRP3OIyrJORgloX-7V0x2KdrZj0kLay-J9I8f-H36s,4446
|
|
20
|
+
faster_eth_abi/grammar.py,sha256=lhEmp3ZwMTzm1-jJiMUVD4zrBgU4MEZCRiND4WxfOes,13839
|
|
21
|
+
faster_eth_abi/io.py,sha256=E_QX7aYAjGYnkNAZmJMmSmx1lqvl_FDNmMFruTi9UX4,3831
|
|
22
|
+
faster_eth_abi/packed.cp313-win_amd64.pyd,sha256=VyWSimvvMiD5jkaxKpKpqjCRxGvFidVeXLNCEDjgIpU,10752
|
|
23
|
+
faster_eth_abi/packed.py,sha256=RZ2chvsx9_AL9OxY1ixHTsaUJHaR_tmrNdViOIp-xSg,316
|
|
24
|
+
faster_eth_abi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
+
faster_eth_abi/registry.py,sha256=gU5-k_1eYUjs7-NAKoH9nncCJ36tZZHM5ZXvwmXt0cw,21192
|
|
26
|
+
faster_eth_abi/tools/__init__.cp313-win_amd64.pyd,sha256=bnNvGWgqtwUEbJHq7NTmvhlhjTq0ASMCbZlbg2c-F6k,10752
|
|
27
|
+
faster_eth_abi/tools/__init__.py,sha256=jxyQnb34ldRjCTYi3Ajb5h5QlFQ6ODfKQNhOCVwR7Ao,54
|
|
28
|
+
faster_eth_abi/tools/_strategies.cp313-win_amd64.pyd,sha256=UwTkA4iCVMHM5_UYz664RtVUjXgulGfthq68nFap7XI,10752
|
|
29
|
+
faster_eth_abi/tools/_strategies.py,sha256=HCFdQFLa84SMf7Deui2-szTH34hxTfc0Rog_kmpTg_w,6197
|
|
30
|
+
faster_eth_abi/utils/__init__.cp313-win_amd64.pyd,sha256=Sb2wSWQpCkeE7Lj4Gt5x0Jw00jTQNKUAr_9CmkeP75Y,10752
|
|
31
|
+
faster_eth_abi/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
+
faster_eth_abi/utils/numeric.cp313-win_amd64.pyd,sha256=H5Dltc4yTUr8CM97BLAY0evfX59LY4w2oz_DyneQhLw,10752
|
|
33
|
+
faster_eth_abi/utils/numeric.py,sha256=saAVL12dfDrMXZeao3u2jar-U2y57YKVUqF6VOzoLxs,3395
|
|
34
|
+
faster_eth_abi/utils/padding.cp313-win_amd64.pyd,sha256=91jFw6whLMkElaHamo26Tre1XT65Z2asYr4nCNvuULg,10752
|
|
35
|
+
faster_eth_abi/utils/padding.py,sha256=k6dkOiQ3k0OhQUZ6blCiL1VOQVYGyynucafbySjcFfY,515
|
|
36
|
+
faster_eth_abi/utils/string.cp313-win_amd64.pyd,sha256=NWbTd1dw-LUFfvgBI_4nrU2tRfnTfEZ8BKk7TYOQZ40,10752
|
|
37
|
+
faster_eth_abi/utils/string.py,sha256=wYcvWof4kuitrGGSe_NOduQaxE4HHYmpraCPXKcZxMs,455
|
|
38
|
+
faster_eth_abi/utils/validation.cp313-win_amd64.pyd,sha256=qb2HVEXnfpA4Q2XF-CdKyiWdi8rvzWlIfBwyuyBYDos,10752
|
|
39
|
+
faster_eth_abi/utils/validation.py,sha256=9veO7wyQsmcFgeaGrsKdSifjV1gaXfTDDKAt1EbKHYY,539
|
|
40
|
+
faster_eth_abi-5.2.10.dist-info/licenses/LICENSE,sha256=Q1lDDWXR057JL2Y7HTAwclCF32_LCloN4sGUkXO1YeI,1127
|
|
41
|
+
faster_eth_abi-5.2.10.dist-info/METADATA,sha256=3Fa7x64NATEJZqCSbkEInZ9LqpR2h52CZKVSQoIcdsc,5499
|
|
42
|
+
faster_eth_abi-5.2.10.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
|
|
43
|
+
faster_eth_abi-5.2.10.dist-info/top_level.txt,sha256=CO2FQwf61aFzjYze7Wywa5KQdJ6bbLkzDoGEjDF2g9o,43
|
|
44
|
+
faster_eth_abi-5.2.10.dist-info/RECORD,,
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
76f9a3652d4d2667c55c__mypyc.cp313-win_amd64.pyd,sha256=xPq6HqXNJXfabKXom80bbjvg8_vSVtskYcbd3AVYtEs,159232
|
|
2
|
-
faster_eth_abi/__init__.py,sha256=JpTfPTiusUGMmX8sEsGAxvILxFbvhh3MEyfiKOd5o9g,217
|
|
3
|
-
faster_eth_abi/_codec.cp313-win_amd64.pyd,sha256=0OiphKEao1LaBk2W-Qh6lGZahVBCUsAcOXtVXiWLynE,10752
|
|
4
|
-
faster_eth_abi/_codec.py,sha256=fLRvqvrD8F38U4m1wZztvx-7JJbZaPikwXS5u9BzY14,2509
|
|
5
|
-
faster_eth_abi/_decoding.cp313-win_amd64.pyd,sha256=VqxOj_5JVBAqhYysTcSJuxunX-FBNMuNYE_KLSsDRXg,10752
|
|
6
|
-
faster_eth_abi/_decoding.py,sha256=GeXe2OaAmojlnGbw3CmSzKK9k5g0QLLn_Qesz7y98X0,3208
|
|
7
|
-
faster_eth_abi/_encoding.cp313-win_amd64.pyd,sha256=-5xdDBK5wZrOjGQVC1QQSNEGBiyimryqjNTs70c43ps,10752
|
|
8
|
-
faster_eth_abi/_encoding.py,sha256=157A_MltVLCEwBmD7SB8UaKXkAOtIKC5MVupk6dk_yA,3217
|
|
9
|
-
faster_eth_abi/abi.cp313-win_amd64.pyd,sha256=zDQHqFmXQD75YfTrG21Q-X1JbL8bOPUpCnV8tjrmGRo,10752
|
|
10
|
-
faster_eth_abi/abi.py,sha256=-t9OVBSCxy6SuWpCu3cxHrCqkx8_svPIRb0MSFXEl5Q,383
|
|
11
|
-
faster_eth_abi/base.py,sha256=y4IXpQJWGfUISl3xjCO420Grxido3tE2ebPV2rK-DvM,1229
|
|
12
|
-
faster_eth_abi/codec.py,sha256=e1uO8BJrXRn0Ih70eUa5qipD2wcg2aZSR4fyVuGpFoY,4580
|
|
13
|
-
faster_eth_abi/constants.cp313-win_amd64.pyd,sha256=EwDMVZNC_R9adliFxycnEssHexYKn3DXFRffGdPYSDU,10752
|
|
14
|
-
faster_eth_abi/constants.py,sha256=q3FGynS-Eb78cnrL6mBoAvTDz16PF3tW2OylTMd6ajs,114
|
|
15
|
-
faster_eth_abi/decoding.py,sha256=LUyG3EO6K4O6u1020FVMNEB80TwW2aHy6gInHoW5qy8,17632
|
|
16
|
-
faster_eth_abi/encoding.py,sha256=P1svhYylcZa55cQ9LPj6jV8iJVLSL_c5SIZT1Umol58,19679
|
|
17
|
-
faster_eth_abi/exceptions.py,sha256=KzNYRc9t0CvlkveozWvLeo1WC_GarcBkwzV67aY_5yI,3067
|
|
18
|
-
faster_eth_abi/from_type_str.cp313-win_amd64.pyd,sha256=dv3LlSFwPr1ZK7YggQ7GEEDKmIQNv7NdKXGuHMkfFYY,10752
|
|
19
|
-
faster_eth_abi/from_type_str.py,sha256=WLRP3OIyrJORgloX-7V0x2KdrZj0kLay-J9I8f-H36s,4446
|
|
20
|
-
faster_eth_abi/grammar.py,sha256=lhEmp3ZwMTzm1-jJiMUVD4zrBgU4MEZCRiND4WxfOes,13839
|
|
21
|
-
faster_eth_abi/io.py,sha256=E_QX7aYAjGYnkNAZmJMmSmx1lqvl_FDNmMFruTi9UX4,3831
|
|
22
|
-
faster_eth_abi/packed.cp313-win_amd64.pyd,sha256=fu8PY0222afWa3KeXQxT-zX4xRj6aUY_sdd7cPtnKV0,10752
|
|
23
|
-
faster_eth_abi/packed.py,sha256=RZ2chvsx9_AL9OxY1ixHTsaUJHaR_tmrNdViOIp-xSg,316
|
|
24
|
-
faster_eth_abi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
faster_eth_abi/registry.py,sha256=gU5-k_1eYUjs7-NAKoH9nncCJ36tZZHM5ZXvwmXt0cw,21192
|
|
26
|
-
faster_eth_abi/tools/__init__.cp313-win_amd64.pyd,sha256=olrFNIYmrIrlhnid54n-V6aCnykdIbNCMosqqBbdDoE,10752
|
|
27
|
-
faster_eth_abi/tools/__init__.py,sha256=jxyQnb34ldRjCTYi3Ajb5h5QlFQ6ODfKQNhOCVwR7Ao,54
|
|
28
|
-
faster_eth_abi/tools/_strategies.cp313-win_amd64.pyd,sha256=xhOZqFPiXzSiRrYGhwfMT434My0evfVpxQCgG3VCHEs,10752
|
|
29
|
-
faster_eth_abi/tools/_strategies.py,sha256=HCFdQFLa84SMf7Deui2-szTH34hxTfc0Rog_kmpTg_w,6197
|
|
30
|
-
faster_eth_abi/utils/__init__.cp313-win_amd64.pyd,sha256=hcYoU3m_OiKUC0mYU2r_Omcdgpl1RIKvoAlHUxZozc4,10752
|
|
31
|
-
faster_eth_abi/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
-
faster_eth_abi/utils/numeric.cp313-win_amd64.pyd,sha256=2fML2dJrX8lcuUIaa7NP_iG903GQ7LkyRVDqLaF4Dqs,10752
|
|
33
|
-
faster_eth_abi/utils/numeric.py,sha256=hNGble1NA99_5hrAOnH0ZakCuHc6PFMC1p0olmpo_vM,2232
|
|
34
|
-
faster_eth_abi/utils/padding.cp313-win_amd64.pyd,sha256=dZ5icKIF1zHHmJYfu1ryxLAMdQPV1BPO-wTgKYZSX8I,10752
|
|
35
|
-
faster_eth_abi/utils/padding.py,sha256=k6dkOiQ3k0OhQUZ6blCiL1VOQVYGyynucafbySjcFfY,515
|
|
36
|
-
faster_eth_abi/utils/string.cp313-win_amd64.pyd,sha256=RXBx2NpfHK9O8Fbl3dHvaOopaq0MkQkqTYM4wUbNbdw,10752
|
|
37
|
-
faster_eth_abi/utils/string.py,sha256=wYcvWof4kuitrGGSe_NOduQaxE4HHYmpraCPXKcZxMs,455
|
|
38
|
-
faster_eth_abi/utils/validation.cp313-win_amd64.pyd,sha256=dGnWs1twdxKts2IMYzRm309rQoxixIZltwyTMB5kf-M,10752
|
|
39
|
-
faster_eth_abi/utils/validation.py,sha256=9veO7wyQsmcFgeaGrsKdSifjV1gaXfTDDKAt1EbKHYY,539
|
|
40
|
-
faster_eth_abi-5.2.9.dist-info/licenses/LICENSE,sha256=Q1lDDWXR057JL2Y7HTAwclCF32_LCloN4sGUkXO1YeI,1127
|
|
41
|
-
faster_eth_abi-5.2.9.dist-info/METADATA,sha256=KDOT00QI4vuhhmIEyht-d1iYsmyvKLtq9xwMBQqxhzg,5498
|
|
42
|
-
faster_eth_abi-5.2.9.dist-info/WHEEL,sha256=qV0EIPljj1XC_vuSatRWjn02nZIz3N1t8jsZz7HBr2U,101
|
|
43
|
-
faster_eth_abi-5.2.9.dist-info/top_level.txt,sha256=CO2FQwf61aFzjYze7Wywa5KQdJ6bbLkzDoGEjDF2g9o,43
|
|
44
|
-
faster_eth_abi-5.2.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|