web3 7.9.0__py3-none-any.whl → 7.11.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ens/exceptions.py +1 -1
- web3/_utils/abi.py +3 -3
- web3/_utils/batching.py +43 -2
- web3/_utils/encoding.py +8 -0
- web3/_utils/ens.py +9 -1
- web3/_utils/method_formatters.py +56 -7
- web3/_utils/module_testing/eth_module.py +153 -64
- web3/_utils/module_testing/module_testing_utils.py +0 -12
- web3/_utils/module_testing/persistent_connection_provider.py +3 -3
- web3/_utils/normalizers.py +1 -1
- web3/_utils/rpc_abi.py +5 -4
- web3/_utils/utility_methods.py +8 -6
- web3/_utils/validation.py +1 -1
- web3/gas_strategies/rpc.py +1 -1
- web3/providers/async_base.py +6 -7
- web3/providers/base.py +5 -5
- web3/providers/eth_tester/middleware.py +20 -0
- web3/providers/ipc.py +2 -0
- web3/providers/legacy_websocket.py +3 -3
- web3/providers/persistent/persistent.py +21 -12
- web3/providers/persistent/request_processor.py +10 -1
- web3/providers/persistent/websocket.py +4 -6
- web3/providers/rpc/async_rpc.py +2 -0
- web3/providers/rpc/rpc.py +2 -0
- web3/types.py +27 -0
- web3/utils/caching.py +8 -5
- {web3-7.9.0.dist-info → web3-7.11.0.dist-info}/METADATA +8 -7
- {web3-7.9.0.dist-info → web3-7.11.0.dist-info}/RECORD +31 -31
- {web3-7.9.0.dist-info → web3-7.11.0.dist-info}/WHEEL +1 -1
- {web3-7.9.0.dist-info → web3-7.11.0.dist-info/licenses}/LICENSE +0 -0
- {web3-7.9.0.dist-info → web3-7.11.0.dist-info}/top_level.txt +0 -0
|
@@ -78,6 +78,7 @@ TRANSACTION_REQUEST_KEY_MAPPING = {
|
|
|
78
78
|
"maxFeePerGas": "max_fee_per_gas",
|
|
79
79
|
"maxPriorityFeePerGas": "max_priority_fee_per_gas",
|
|
80
80
|
"accessList": "access_list",
|
|
81
|
+
"authorizationList": "authorization_list",
|
|
81
82
|
"chainId": "chain_id",
|
|
82
83
|
}
|
|
83
84
|
transaction_request_remapper = apply_key_map(TRANSACTION_REQUEST_KEY_MAPPING)
|
|
@@ -94,6 +95,20 @@ TRANSACTION_REQUEST_FORMATTERS = {
|
|
|
94
95
|
"accessList": apply_list_to_array_formatter(
|
|
95
96
|
apply_key_map({"storageKeys": "storage_keys"})
|
|
96
97
|
),
|
|
98
|
+
"authorizationList": apply_list_to_array_formatter(
|
|
99
|
+
compose(
|
|
100
|
+
apply_formatters_to_dict(
|
|
101
|
+
{
|
|
102
|
+
"chain_id": to_integer_if_hex,
|
|
103
|
+
"nonce": to_integer_if_hex,
|
|
104
|
+
"y_parity": to_integer_if_hex,
|
|
105
|
+
"r": to_integer_if_hex,
|
|
106
|
+
"s": to_integer_if_hex,
|
|
107
|
+
},
|
|
108
|
+
),
|
|
109
|
+
apply_key_map({"chainId": "chain_id", "yParity": "y_parity"}),
|
|
110
|
+
)
|
|
111
|
+
),
|
|
97
112
|
}
|
|
98
113
|
transaction_request_formatter = apply_formatters_to_dict(TRANSACTION_REQUEST_FORMATTERS)
|
|
99
114
|
|
|
@@ -125,6 +140,7 @@ filter_request_transformer = compose(
|
|
|
125
140
|
|
|
126
141
|
TRANSACTION_RESULT_KEY_MAPPING = {
|
|
127
142
|
"access_list": "accessList",
|
|
143
|
+
"authorization_list": "authorizationList",
|
|
128
144
|
"blob_versioned_hashes": "blobVersionedHashes",
|
|
129
145
|
"block_hash": "blockHash",
|
|
130
146
|
"block_number": "blockNumber",
|
|
@@ -145,6 +161,9 @@ TRANSACTION_RESULT_FORMATTERS = {
|
|
|
145
161
|
"access_list": apply_list_to_array_formatter(
|
|
146
162
|
apply_key_map({"storage_keys": "storageKeys"}),
|
|
147
163
|
),
|
|
164
|
+
"authorization_list": apply_list_to_array_formatter(
|
|
165
|
+
apply_key_map({"chain_id": "chainId", "y_parity": "yParity"}),
|
|
166
|
+
),
|
|
148
167
|
}
|
|
149
168
|
transaction_result_formatter = apply_formatters_to_dict(TRANSACTION_RESULT_FORMATTERS)
|
|
150
169
|
|
|
@@ -195,6 +214,7 @@ BLOCK_RESULT_KEY_MAPPING = {
|
|
|
195
214
|
"parent_beacon_block_root": "parentBeaconBlockRoot",
|
|
196
215
|
"blob_gas_used": "blobGasUsed",
|
|
197
216
|
"excess_blob_gas": "excessBlobGas",
|
|
217
|
+
"requests_hash": "requestsHash",
|
|
198
218
|
}
|
|
199
219
|
block_result_remapper = apply_key_map(BLOCK_RESULT_KEY_MAPPING)
|
|
200
220
|
|
web3/providers/ipc.py
CHANGED
|
@@ -30,6 +30,7 @@ from web3.types import (
|
|
|
30
30
|
)
|
|
31
31
|
|
|
32
32
|
from .._utils.batching import (
|
|
33
|
+
batching_context,
|
|
33
34
|
sort_batch_response_by_response_ids,
|
|
34
35
|
)
|
|
35
36
|
from .._utils.caching import (
|
|
@@ -201,6 +202,7 @@ class IPCProvider(JSONBaseProvider):
|
|
|
201
202
|
request = self.encode_rpc_request(method, params)
|
|
202
203
|
return self._make_request(request)
|
|
203
204
|
|
|
205
|
+
@batching_context
|
|
204
206
|
def make_batch_request(
|
|
205
207
|
self, requests: List[Tuple[RPCEndpoint, Any]]
|
|
206
208
|
) -> List[RPCResponse]:
|
|
@@ -21,14 +21,13 @@ from typing import (
|
|
|
21
21
|
from eth_typing import (
|
|
22
22
|
URI,
|
|
23
23
|
)
|
|
24
|
-
from websockets.client import (
|
|
25
|
-
connect,
|
|
26
|
-
)
|
|
27
24
|
from websockets.legacy.client import (
|
|
28
25
|
WebSocketClientProtocol,
|
|
26
|
+
connect,
|
|
29
27
|
)
|
|
30
28
|
|
|
31
29
|
from web3._utils.batching import (
|
|
30
|
+
batching_context,
|
|
32
31
|
sort_batch_response_by_response_ids,
|
|
33
32
|
)
|
|
34
33
|
from web3._utils.caching import (
|
|
@@ -145,6 +144,7 @@ class LegacyWebSocketProvider(JSONBaseProvider):
|
|
|
145
144
|
)
|
|
146
145
|
return future.result()
|
|
147
146
|
|
|
147
|
+
@batching_context
|
|
148
148
|
def make_batch_request(
|
|
149
149
|
self, requests: List[Tuple[RPCEndpoint, Any]]
|
|
150
150
|
) -> List[RPCResponse]:
|
|
@@ -24,6 +24,7 @@ from websockets import (
|
|
|
24
24
|
|
|
25
25
|
from web3._utils.batching import (
|
|
26
26
|
BATCH_REQUEST_ID,
|
|
27
|
+
async_batching_context,
|
|
27
28
|
sort_batch_response_by_response_ids,
|
|
28
29
|
)
|
|
29
30
|
from web3._utils.caching import (
|
|
@@ -68,11 +69,15 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
|
|
|
68
69
|
logger = logging.getLogger("web3.providers.PersistentConnectionProvider")
|
|
69
70
|
has_persistent_connection = True
|
|
70
71
|
|
|
71
|
-
_send_func_cache: Tuple[
|
|
72
|
+
_send_func_cache: Tuple[
|
|
73
|
+
Optional[int], Optional[Callable[..., Coroutine[Any, Any, RPCRequest]]]
|
|
74
|
+
] = (
|
|
72
75
|
None,
|
|
73
76
|
None,
|
|
74
77
|
)
|
|
75
|
-
_recv_func_cache: Tuple[
|
|
78
|
+
_recv_func_cache: Tuple[
|
|
79
|
+
Optional[int], Optional[Callable[..., Coroutine[Any, Any, RPCResponse]]]
|
|
80
|
+
] = (
|
|
76
81
|
None,
|
|
77
82
|
None,
|
|
78
83
|
)
|
|
@@ -83,12 +88,14 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
|
|
|
83
88
|
subscription_response_queue_size: int = 500,
|
|
84
89
|
silence_listener_task_exceptions: bool = False,
|
|
85
90
|
max_connection_retries: int = 5,
|
|
91
|
+
request_information_cache_size: int = 500,
|
|
86
92
|
**kwargs: Any,
|
|
87
93
|
) -> None:
|
|
88
94
|
super().__init__(**kwargs)
|
|
89
95
|
self._request_processor = RequestProcessor(
|
|
90
96
|
self,
|
|
91
97
|
subscription_response_queue_size=subscription_response_queue_size,
|
|
98
|
+
request_information_cache_size=request_information_cache_size,
|
|
92
99
|
)
|
|
93
100
|
self._message_listener_task: Optional["asyncio.Task[None]"] = None
|
|
94
101
|
self._batch_request_counter: Optional[int] = None
|
|
@@ -231,14 +238,17 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
|
|
|
231
238
|
rpc_request = await self.send_request(method, params)
|
|
232
239
|
return await self.recv_for_request(rpc_request)
|
|
233
240
|
|
|
241
|
+
@async_batching_context
|
|
234
242
|
async def make_batch_request(
|
|
235
243
|
self, requests: List[Tuple[RPCEndpoint, Any]]
|
|
236
244
|
) -> List[RPCResponse]:
|
|
237
245
|
request_data = self.encode_batch_rpc_request(requests)
|
|
238
246
|
await self.socket_send(request_data)
|
|
239
247
|
|
|
248
|
+
# breakpoint()
|
|
240
249
|
response = cast(
|
|
241
|
-
List[RPCResponse],
|
|
250
|
+
List[RPCResponse],
|
|
251
|
+
await self._get_response_for_request_id(BATCH_REQUEST_ID),
|
|
242
252
|
)
|
|
243
253
|
return response
|
|
244
254
|
|
|
@@ -314,17 +324,16 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
|
|
|
314
324
|
for (
|
|
315
325
|
response
|
|
316
326
|
) in self._request_processor._request_response_cache._data.values():
|
|
317
|
-
|
|
318
|
-
self._request_processor._request_information_cache.get_cache_entry(
|
|
327
|
+
if isinstance(response, dict):
|
|
328
|
+
request = self._request_processor._request_information_cache.get_cache_entry( # noqa: E501
|
|
319
329
|
generate_cache_key(response["id"])
|
|
320
330
|
)
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
)
|
|
331
|
+
if "error" in response and request is None:
|
|
332
|
+
# if we find an error response in the cache without a
|
|
333
|
+
# corresponding request, raise the error
|
|
334
|
+
validate_rpc_response_and_raise_if_error(
|
|
335
|
+
cast(RPCResponse, response), None, logger=self.logger
|
|
336
|
+
)
|
|
328
337
|
|
|
329
338
|
async def _message_listener(self) -> None:
|
|
330
339
|
self.logger.info(
|
|
@@ -85,9 +85,12 @@ class RequestProcessor:
|
|
|
85
85
|
self,
|
|
86
86
|
provider: "PersistentConnectionProvider",
|
|
87
87
|
subscription_response_queue_size: int = 500,
|
|
88
|
+
request_information_cache_size: int = 500,
|
|
88
89
|
) -> None:
|
|
89
90
|
self._provider = provider
|
|
90
|
-
self._request_information_cache: SimpleCache = SimpleCache(
|
|
91
|
+
self._request_information_cache: SimpleCache = SimpleCache(
|
|
92
|
+
request_information_cache_size
|
|
93
|
+
)
|
|
91
94
|
self._request_response_cache: SimpleCache = SimpleCache(500)
|
|
92
95
|
self._subscription_response_queue: TaskReliantQueue[
|
|
93
96
|
Union[RPCResponse, TaskNotRunning]
|
|
@@ -152,6 +155,12 @@ class RequestProcessor:
|
|
|
152
155
|
cache_key,
|
|
153
156
|
request_info,
|
|
154
157
|
)
|
|
158
|
+
if self._request_information_cache.is_full():
|
|
159
|
+
self._provider.logger.warning(
|
|
160
|
+
"Request information cache is full. This may result in unexpected "
|
|
161
|
+
"behavior. Consider increasing the ``request_information_cache_size`` "
|
|
162
|
+
"on the provider."
|
|
163
|
+
)
|
|
155
164
|
return cache_key
|
|
156
165
|
|
|
157
166
|
def pop_cached_request_information(
|
|
@@ -15,16 +15,14 @@ from eth_typing import (
|
|
|
15
15
|
from toolz import (
|
|
16
16
|
merge,
|
|
17
17
|
)
|
|
18
|
-
from websockets import (
|
|
19
|
-
WebSocketClientProtocol,
|
|
20
|
-
)
|
|
21
|
-
from websockets.client import (
|
|
22
|
-
connect,
|
|
23
|
-
)
|
|
24
18
|
from websockets.exceptions import (
|
|
25
19
|
ConnectionClosedOK,
|
|
26
20
|
WebSocketException,
|
|
27
21
|
)
|
|
22
|
+
from websockets.legacy.client import (
|
|
23
|
+
WebSocketClientProtocol,
|
|
24
|
+
connect,
|
|
25
|
+
)
|
|
28
26
|
|
|
29
27
|
from web3.exceptions import (
|
|
30
28
|
PersistentConnectionClosedOK,
|
web3/providers/rpc/async_rpc.py
CHANGED
|
@@ -36,6 +36,7 @@ from web3.types import (
|
|
|
36
36
|
)
|
|
37
37
|
|
|
38
38
|
from ..._utils.batching import (
|
|
39
|
+
async_batching_context,
|
|
39
40
|
sort_batch_response_by_response_ids,
|
|
40
41
|
)
|
|
41
42
|
from ..._utils.caching import (
|
|
@@ -166,6 +167,7 @@ class AsyncHTTPProvider(AsyncJSONBaseProvider):
|
|
|
166
167
|
)
|
|
167
168
|
return response
|
|
168
169
|
|
|
170
|
+
@async_batching_context
|
|
169
171
|
async def make_batch_request(
|
|
170
172
|
self, batch_requests: List[Tuple[RPCEndpoint, Any]]
|
|
171
173
|
) -> Union[List[RPCResponse], RPCResponse]:
|
web3/providers/rpc/rpc.py
CHANGED
|
@@ -34,6 +34,7 @@ from web3.types import (
|
|
|
34
34
|
)
|
|
35
35
|
|
|
36
36
|
from ..._utils.batching import (
|
|
37
|
+
batching_context,
|
|
37
38
|
sort_batch_response_by_response_ids,
|
|
38
39
|
)
|
|
39
40
|
from ..._utils.caching import (
|
|
@@ -174,6 +175,7 @@ class HTTPProvider(JSONBaseProvider):
|
|
|
174
175
|
)
|
|
175
176
|
return response
|
|
176
177
|
|
|
178
|
+
@batching_context
|
|
177
179
|
def make_batch_request(
|
|
178
180
|
self, batch_requests: List[Tuple[RPCEndpoint, Any]]
|
|
179
181
|
) -> Union[List[RPCResponse], RPCResponse]:
|
web3/types.py
CHANGED
|
@@ -16,6 +16,9 @@ from typing import (
|
|
|
16
16
|
Union,
|
|
17
17
|
)
|
|
18
18
|
|
|
19
|
+
from eth_account.datastructures import (
|
|
20
|
+
SignedSetCodeAuthorization,
|
|
21
|
+
)
|
|
19
22
|
from eth_typing import (
|
|
20
23
|
Address,
|
|
21
24
|
BlockNumber,
|
|
@@ -94,11 +97,21 @@ class RPCError(TypedDict):
|
|
|
94
97
|
data: NotRequired[str]
|
|
95
98
|
|
|
96
99
|
|
|
100
|
+
class SetCodeAuthorizationData(TypedDict):
|
|
101
|
+
chainId: int
|
|
102
|
+
address: ChecksumAddress
|
|
103
|
+
nonce: Nonce
|
|
104
|
+
yParity: int
|
|
105
|
+
r: HexBytes
|
|
106
|
+
s: HexBytes
|
|
107
|
+
|
|
108
|
+
|
|
97
109
|
# syntax b/c "from" keyword not allowed w/ class construction
|
|
98
110
|
TxData = TypedDict(
|
|
99
111
|
"TxData",
|
|
100
112
|
{
|
|
101
113
|
"accessList": AccessList,
|
|
114
|
+
"authorizationList": Sequence[SetCodeAuthorizationData],
|
|
102
115
|
"blobVersionedHashes": Sequence[HexBytes],
|
|
103
116
|
"blockHash": HexBytes,
|
|
104
117
|
"blockNumber": BlockNumber,
|
|
@@ -125,11 +138,24 @@ TxData = TypedDict(
|
|
|
125
138
|
total=False,
|
|
126
139
|
)
|
|
127
140
|
|
|
141
|
+
|
|
142
|
+
class SetCodeAuthorizationParams(TypedDict):
|
|
143
|
+
chainId: int
|
|
144
|
+
address: Union[Address, ChecksumAddress, str]
|
|
145
|
+
nonce: Nonce
|
|
146
|
+
y_parity: int
|
|
147
|
+
r: int
|
|
148
|
+
s: int
|
|
149
|
+
|
|
150
|
+
|
|
128
151
|
# syntax b/c "from" keyword not allowed w/ class construction
|
|
129
152
|
TxParams = TypedDict(
|
|
130
153
|
"TxParams",
|
|
131
154
|
{
|
|
132
155
|
"accessList": AccessList,
|
|
156
|
+
"authorizationList": Sequence[
|
|
157
|
+
Union[SetCodeAuthorizationParams, SignedSetCodeAuthorization]
|
|
158
|
+
],
|
|
133
159
|
"blobVersionedHashes": Sequence[Union[str, HexStr, bytes, HexBytes]],
|
|
134
160
|
"chainId": int,
|
|
135
161
|
"data": Union[bytes, HexStr],
|
|
@@ -186,6 +212,7 @@ class BlockData(TypedDict, total=False):
|
|
|
186
212
|
parentBeaconBlockRoot: HexBytes
|
|
187
213
|
blobGasUsed: int
|
|
188
214
|
excessBlobGas: int
|
|
215
|
+
requestsHash: HexBytes
|
|
189
216
|
|
|
190
217
|
# ExtraDataToPOAMiddleware replaces extraData w/ proofOfAuthorityData
|
|
191
218
|
proofOfAuthorityData: HexBytes
|
web3/utils/caching.py
CHANGED
|
@@ -25,6 +25,12 @@ class SimpleCache:
|
|
|
25
25
|
self._size = size
|
|
26
26
|
self._data: OrderedDict[str, Any] = OrderedDict()
|
|
27
27
|
|
|
28
|
+
def __contains__(self, key: str) -> bool:
|
|
29
|
+
return key in self._data
|
|
30
|
+
|
|
31
|
+
def __len__(self) -> int:
|
|
32
|
+
return len(self._data)
|
|
33
|
+
|
|
28
34
|
def cache(self, key: str, value: Any) -> Tuple[Any, Dict[str, Any]]:
|
|
29
35
|
evicted_items = {}
|
|
30
36
|
# If the key is already in the OrderedDict just update it
|
|
@@ -59,11 +65,8 @@ class SimpleCache:
|
|
|
59
65
|
def popitem(self, last: bool = True) -> Tuple[str, Any]:
|
|
60
66
|
return self._data.popitem(last=last)
|
|
61
67
|
|
|
62
|
-
def
|
|
63
|
-
return
|
|
64
|
-
|
|
65
|
-
def __len__(self) -> int:
|
|
66
|
-
return len(self._data)
|
|
68
|
+
def is_full(self) -> bool:
|
|
69
|
+
return len(self._data) >= self._size
|
|
67
70
|
|
|
68
71
|
# -- async utility methods -- #
|
|
69
72
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: web3
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.11.0
|
|
4
4
|
Summary: web3: A Python library for interacting with Ethereum
|
|
5
5
|
Home-page: https://github.com/ethereum/web3.py
|
|
6
6
|
Author: The Ethereum Foundation
|
|
@@ -22,7 +22,7 @@ Requires-Python: >=3.8, <4
|
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
23
|
License-File: LICENSE
|
|
24
24
|
Requires-Dist: eth-abi>=5.0.1
|
|
25
|
-
Requires-Dist: eth-account>=0.13.
|
|
25
|
+
Requires-Dist: eth-account>=0.13.6
|
|
26
26
|
Requires-Dist: eth-hash[pycryptodome]>=0.5.1
|
|
27
27
|
Requires-Dist: eth-typing>=5.0.0
|
|
28
28
|
Requires-Dist: eth-utils>=5.0.0
|
|
@@ -33,10 +33,10 @@ Requires-Dist: pywin32>=223; platform_system == "Windows"
|
|
|
33
33
|
Requires-Dist: requests>=2.23.0
|
|
34
34
|
Requires-Dist: typing-extensions>=4.0.1
|
|
35
35
|
Requires-Dist: types-requests>=2.0.0
|
|
36
|
-
Requires-Dist: websockets<
|
|
36
|
+
Requires-Dist: websockets<16.0.0,>=10.0.0
|
|
37
37
|
Requires-Dist: pyunormalize>=15.0.0
|
|
38
38
|
Provides-Extra: tester
|
|
39
|
-
Requires-Dist: eth-tester[py-evm]<0.
|
|
39
|
+
Requires-Dist: eth-tester[py-evm]<0.14.0b1,>=0.13.0b1; extra == "tester"
|
|
40
40
|
Requires-Dist: py-geth>=5.1.0; extra == "tester"
|
|
41
41
|
Provides-Extra: dev
|
|
42
42
|
Requires-Dist: build>=0.9.0; extra == "dev"
|
|
@@ -59,7 +59,7 @@ Requires-Dist: hypothesis>=3.31.2; extra == "dev"
|
|
|
59
59
|
Requires-Dist: tox>=4.0.0; extra == "dev"
|
|
60
60
|
Requires-Dist: mypy==1.10.0; extra == "dev"
|
|
61
61
|
Requires-Dist: pre-commit>=3.4.0; extra == "dev"
|
|
62
|
-
Requires-Dist: eth-tester[py-evm]<0.
|
|
62
|
+
Requires-Dist: eth-tester[py-evm]<0.14.0b1,>=0.13.0b1; extra == "dev"
|
|
63
63
|
Requires-Dist: py-geth>=5.1.0; extra == "dev"
|
|
64
64
|
Provides-Extra: docs
|
|
65
65
|
Requires-Dist: sphinx>=6.0.0; extra == "docs"
|
|
@@ -76,7 +76,7 @@ Requires-Dist: hypothesis>=3.31.2; extra == "test"
|
|
|
76
76
|
Requires-Dist: tox>=4.0.0; extra == "test"
|
|
77
77
|
Requires-Dist: mypy==1.10.0; extra == "test"
|
|
78
78
|
Requires-Dist: pre-commit>=3.4.0; extra == "test"
|
|
79
|
-
Requires-Dist: eth-tester[py-evm]<0.
|
|
79
|
+
Requires-Dist: eth-tester[py-evm]<0.14.0b1,>=0.13.0b1; extra == "test"
|
|
80
80
|
Requires-Dist: py-geth>=5.1.0; extra == "test"
|
|
81
81
|
Dynamic: author
|
|
82
82
|
Dynamic: author-email
|
|
@@ -86,6 +86,7 @@ Dynamic: description-content-type
|
|
|
86
86
|
Dynamic: home-page
|
|
87
87
|
Dynamic: keywords
|
|
88
88
|
Dynamic: license
|
|
89
|
+
Dynamic: license-file
|
|
89
90
|
Dynamic: provides-extra
|
|
90
91
|
Dynamic: requires-dist
|
|
91
92
|
Dynamic: requires-python
|
|
@@ -7,7 +7,7 @@ ens/base_ens.py,sha256=zn3lIV5-vkBEvdOAIVkE78wwTdJx7VG_fXqQmLJ_j7w,3507
|
|
|
7
7
|
ens/constants.py,sha256=XCO4Pntwdnw10K_AZ86V0cqcvdUoOkEZvRqoDdFPE_w,913
|
|
8
8
|
ens/contract_data.py,sha256=CZa7Uxzq6rT-KonwHHM_wo-5ry0j1DMbikgEaP27Uy8,148602
|
|
9
9
|
ens/ens.py,sha256=Es4dNXVhpHPTF1ZN17hmf6VIHb91fKVMCoVnFVo36ZA,21722
|
|
10
|
-
ens/exceptions.py,sha256=
|
|
10
|
+
ens/exceptions.py,sha256=5h-t3G-lwYchYe4JgHaxD_a_llh56sS6qzo9Rpa0S0o,2442
|
|
11
11
|
ens/utils.py,sha256=Ro2-kcowwIgNExxNDQ1CpSFiGL9WSP_NCxp_qLzGWHw,8985
|
|
12
12
|
ens/specs/nf.json,sha256=tPXKzdhgu9gqNi0UhKC1kzPqSBgy4yHm5TL19RQHBqU,49038
|
|
13
13
|
ens/specs/normalization_spec.json,sha256=8mmjBj4OoYCn7pD4P7hqKP_qy6rpYzpyRinSH3CCP9M,3171499
|
|
@@ -25,20 +25,20 @@ web3/net.py,sha256=Y3vPzHWVFkfHEZoJxjDOt4tp5ERmZrMuyi4ZFOLmIeA,1562
|
|
|
25
25
|
web3/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
26
|
web3/testing.py,sha256=Ury_-7XSstJ8bkCfdGEi4Cr76QzSfW7v_zfPlDlLJj0,923
|
|
27
27
|
web3/tracing.py,sha256=ZcOam7t-uEZXyui6Cndv6RYeCZP5jh1TBn2hG8sv17Q,3098
|
|
28
|
-
web3/types.py,sha256
|
|
28
|
+
web3/types.py,sha256=4RBfjGY0BQmlqW82PE_B7stuSyPd7LdXl5kITIt1ozI,15070
|
|
29
29
|
web3/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
-
web3/_utils/abi.py,sha256=
|
|
30
|
+
web3/_utils/abi.py,sha256=Nk-RSh1Zk5BXojgZM6QwleGErUjiD7wD2vvpMYw5knk,27431
|
|
31
31
|
web3/_utils/abi_element_identifiers.py,sha256=m305lsvUZk-jkPixT0IJd9P5sXqMvmwlwlLeBgEAnBQ,55
|
|
32
32
|
web3/_utils/async_caching.py,sha256=2XnaKCHBTTDK6B2R_YZvjJqIRUpbMDIU1uYrq-Lcyp8,486
|
|
33
33
|
web3/_utils/async_transactions.py,sha256=fodlTP7zpoFhFycWQszJWN0UUAfu5neQTCYJ3eGRCA0,5581
|
|
34
|
-
web3/_utils/batching.py,sha256=
|
|
34
|
+
web3/_utils/batching.py,sha256=aRBNtVUMGGnJmOEOE5DiGjdw7vYKDD4Yx--EbjQZj1A,7340
|
|
35
35
|
web3/_utils/blocks.py,sha256=SZ17qSJuPAH5Dz-eQPGOsZw_QtkG19zvpSYMv6mEDok,2138
|
|
36
36
|
web3/_utils/contracts.py,sha256=YXErvYsi7OQ9S3KCjSv7nPbxj9DDTmixP8NYmv9GOmY,12091
|
|
37
37
|
web3/_utils/datatypes.py,sha256=nI0C9XWl46gFj1RpwuoHfVqb4e73wlaerE1LNyMg3oo,1701
|
|
38
38
|
web3/_utils/decorators.py,sha256=bYIoVL0DjHWU2-KOmg-UYg6rICeThlLVZpH9yM2NT8s,1825
|
|
39
39
|
web3/_utils/empty.py,sha256=ccgxFk5qm2x2ZeD8b17wX5cCAJPkPFuHrNQNMDslytY,132
|
|
40
|
-
web3/_utils/encoding.py,sha256=
|
|
41
|
-
web3/_utils/ens.py,sha256=
|
|
40
|
+
web3/_utils/encoding.py,sha256=6A5ObPUgYiaCVcfIW1EC7PlAQ9iOxliJFPS4TbZEV88,9637
|
|
41
|
+
web3/_utils/ens.py,sha256=hRFU7mjyTilPpcpOF3XsWAlipnVmPEKqryjntqEw-jE,2691
|
|
42
42
|
web3/_utils/error_formatters_utils.py,sha256=9eG56Kj_H1BxxcXQhHOr2fycMnOnjfue3VsxUJ1Vi1U,6868
|
|
43
43
|
web3/_utils/events.py,sha256=eZEUDImd4-s0wQxdzHn5llYoTwMaKQpakoccoU85_R0,17036
|
|
44
44
|
web3/_utils/fee_utils.py,sha256=MFt27R9E3qFP-Hf87-Lzv0JAiuYRE_qqafyTmzctAYA,2145
|
|
@@ -48,15 +48,15 @@ web3/_utils/http.py,sha256=2R3UOeZmwiQGc3ladf78R9AnufbGaTXAntqf-ZQlZPI,230
|
|
|
48
48
|
web3/_utils/http_session_manager.py,sha256=8nfXMPlOpZ2rMuo-aR46BxzMGrERAmHLshNC9qxEvuA,12591
|
|
49
49
|
web3/_utils/hypothesis.py,sha256=4Cm4iOWv-uP9irg_Pv63kYNDYUAGhnUH6fOPWRw3A0g,209
|
|
50
50
|
web3/_utils/math.py,sha256=4oU5YdbQBXElxK00CxmUZ94ApXFu9QT_TrO0Kho1HTs,1083
|
|
51
|
-
web3/_utils/method_formatters.py,sha256=
|
|
51
|
+
web3/_utils/method_formatters.py,sha256=fLwQz7eeazK_G3LYUX4hqwyy0hlnWCGkwOrxZ38Aoxo,41614
|
|
52
52
|
web3/_utils/module.py,sha256=GuVePloTlIBZwFDOjg0zasp53HSJ32umxN1nQhqW-8Y,3175
|
|
53
|
-
web3/_utils/normalizers.py,sha256=
|
|
54
|
-
web3/_utils/rpc_abi.py,sha256=
|
|
53
|
+
web3/_utils/normalizers.py,sha256=akfV5TA9GcG1wu-BZdZnYGKtoJXgADh0XfewGaxWHno,7455
|
|
54
|
+
web3/_utils/rpc_abi.py,sha256=m6aHop1di0dl9TrxPi3R-CYfzGMN9ILx4dNjVZF-8YE,8595
|
|
55
55
|
web3/_utils/threads.py,sha256=hNlSd_zheQYN0vC1faWWb9_UQxp_UzaM2fI5C8y0kB0,4245
|
|
56
56
|
web3/_utils/transactions.py,sha256=aWMYWiCM_Qs6kFIRWwLGRqAAwCz5fXU8uXcsFGi_Xqo,9044
|
|
57
57
|
web3/_utils/type_conversion.py,sha256=s6cg3WDCQIarQLWw_GfctaJjXhS_EcokUNO-S_ccvng,873
|
|
58
|
-
web3/_utils/utility_methods.py,sha256=
|
|
59
|
-
web3/_utils/validation.py,sha256=
|
|
58
|
+
web3/_utils/utility_methods.py,sha256=4rOzuxbBrxl2LcRih6sRDcHghwqzLOXxVbJxCXoA6Os,2591
|
|
59
|
+
web3/_utils/validation.py,sha256=DSmVq88k1ZPtu1NgBKNqGSAKYg5njrnG6rBKjUXIy-g,13351
|
|
60
60
|
web3/_utils/windows.py,sha256=IlFUtqYSbUUfFRx60zvEwpiZd080WpOrA4ojm4tmSEE,994
|
|
61
61
|
web3/_utils/caching/__init__.py,sha256=ri-5UGz5PPuYW9W1c2BX5lUJn1oZuvErbDz5NweiveA,284
|
|
62
62
|
web3/_utils/caching/caching_utils.py,sha256=Big2HcJ9_CgIGNq59yGihheLOct-FlArpreBxcfjYUk,14281
|
|
@@ -89,13 +89,13 @@ web3/_utils/contract_sources/contract_data/storage_contract.py,sha256=CDx3lHmEhr
|
|
|
89
89
|
web3/_utils/contract_sources/contract_data/string_contract.py,sha256=agjI-kVgRa4VBSPArnpkE1JGf09wA3aheuIQv2LIlh0,11228
|
|
90
90
|
web3/_utils/contract_sources/contract_data/tuple_contracts.py,sha256=BiXlKQgc9o_9mM_aI4B5H6WJpRyztXte1WiOwUwhIkw,23176
|
|
91
91
|
web3/_utils/module_testing/__init__.py,sha256=Xr_S46cjr0mypD_Y4ZbeF1EJ-XWfNxWUks5ykhzN10c,485
|
|
92
|
-
web3/_utils/module_testing/eth_module.py,sha256=
|
|
92
|
+
web3/_utils/module_testing/eth_module.py,sha256=SCwc_sFVyPPo1-G63bWfePgYHBvohG4MxL0EFsJkWGk,195541
|
|
93
93
|
web3/_utils/module_testing/go_ethereum_admin_module.py,sha256=_c-6SyzZkfAJ-7ySXUpw9FEr4cg-ShRdAGSAHWanCtY,3406
|
|
94
94
|
web3/_utils/module_testing/go_ethereum_debug_module.py,sha256=BP1UjK-5ewkYMilvW9jtZX5Mc9BGh3QlJWPXqDNWizU,4144
|
|
95
95
|
web3/_utils/module_testing/go_ethereum_txpool_module.py,sha256=5f8XL8-2x3keyGRaITxMQYl9oQzjgqGn8zobB-j9BPs,1176
|
|
96
|
-
web3/_utils/module_testing/module_testing_utils.py,sha256=
|
|
96
|
+
web3/_utils/module_testing/module_testing_utils.py,sha256=k7hS3ztCdW6HVlrBVqXzFIkS_wWfRQCGQ3yjjGnMHb0,5650
|
|
97
97
|
web3/_utils/module_testing/net_module.py,sha256=ifUTC-5fTcQbwpm0X09OdD5RSPnn00T8klFeYe8tTm4,1272
|
|
98
|
-
web3/_utils/module_testing/persistent_connection_provider.py,sha256=
|
|
98
|
+
web3/_utils/module_testing/persistent_connection_provider.py,sha256=443ay1jYmcYgkPAJBxS_-GU9und09CMotKD5dVABaD4,30669
|
|
99
99
|
web3/_utils/module_testing/utils.py,sha256=bvF57wKVbfnXGRM4kqEZpysPrr9LvAQy-E-huk1HpxM,13561
|
|
100
100
|
web3/_utils/module_testing/web3_module.py,sha256=7c6penGbHn381fPTYY6DsXKv56xGQpYkHljOsr2gbaw,25413
|
|
101
101
|
web3/auto/__init__.py,sha256=ZbzAiCZMdt_tCTTPvH6t8NCVNroKKkt7TSVBBNR74Is,44
|
|
@@ -114,7 +114,7 @@ web3/eth/async_eth.py,sha256=h3DpNdYn4b3kVdp54pAkapyfnC73w38biV9vPNtsvZU,24632
|
|
|
114
114
|
web3/eth/base_eth.py,sha256=UUH0Fw0HVa_mBEQ_CbCDO01yCVDsj33d8yOv7Oe-QD0,6905
|
|
115
115
|
web3/eth/eth.py,sha256=mD1TSPIl7gnRFrG1Mcq_rSJJm2Zf0ISGTv9BcLr19FU,20362
|
|
116
116
|
web3/gas_strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
117
|
-
web3/gas_strategies/rpc.py,sha256=
|
|
117
|
+
web3/gas_strategies/rpc.py,sha256=lQnKJSSZAjE2_klwdr7tkZkPiYN9mkz1IqbVS2WNo6M,351
|
|
118
118
|
web3/gas_strategies/time_based.py,sha256=NQDYh9eKsmzhRIg5gWUI9xlKyI16z-qfN9DSIh3tM1Y,9070
|
|
119
119
|
web3/middleware/__init__.py,sha256=fSmPCYJOO8Qp5p-Vm_Z4XPJATu2qN7KJRypYNSO6_uM,2830
|
|
120
120
|
web3/middleware/attrdict.py,sha256=tIoMEZ3BkmEafnwitGY70o0GS9ShfwReDMxkHuvcOwI,2092
|
|
@@ -130,27 +130,27 @@ web3/middleware/signing.py,sha256=1DOYxpmCra-Qq5r42237q3b54uDO-QHjMVMulxVpLVQ,58
|
|
|
130
130
|
web3/middleware/stalecheck.py,sha256=oWRA69BGIbNGjHSnUVOBnoxOYJZYjzRzlqqL5RRlnzk,2680
|
|
131
131
|
web3/middleware/validation.py,sha256=QxActrJk_zsXXiwpadP2MUjZBS5E50OJOtUwVrm9XVo,4280
|
|
132
132
|
web3/providers/__init__.py,sha256=YkcSzE9AubvSp-UfvJjyCrdepvziysbqeq2LT0ImDoc,936
|
|
133
|
-
web3/providers/async_base.py,sha256=
|
|
133
|
+
web3/providers/async_base.py,sha256=v2geb4qcg1EmWg72P6v_lMQAHtwFhRrhJQf0CKv10fU,7730
|
|
134
134
|
web3/providers/auto.py,sha256=Zx3CHKoRkmiw3Jte2BLNPiJAFd8rDXNGfA3XtxZvHgc,3465
|
|
135
|
-
web3/providers/base.py,sha256=
|
|
136
|
-
web3/providers/ipc.py,sha256=
|
|
137
|
-
web3/providers/legacy_websocket.py,sha256=
|
|
135
|
+
web3/providers/base.py,sha256=fbs0sFTV9OGfQVpdO526OGciH7KLCnzYa0iaHzucFaA,6466
|
|
136
|
+
web3/providers/ipc.py,sha256=HkBirknRORxxrjWC1zo_elhyIC8eDID2nDmMakqxwVE,6558
|
|
137
|
+
web3/providers/legacy_websocket.py,sha256=Y-pEq7r_0USPA9K8wtAT7dncaaUENwOimTvAdR3m2c0,4777
|
|
138
138
|
web3/providers/eth_tester/__init__.py,sha256=UggyBQdeAyjy1awATW1933jkJcpqqaUYUQEFAQnA2o0,163
|
|
139
139
|
web3/providers/eth_tester/defaults.py,sha256=QQUdqqrkcN1AKW7WEY1A5RiPc_fmlHCLmdgB-5iY7Dc,12622
|
|
140
140
|
web3/providers/eth_tester/main.py,sha256=U19sNDeHs36A4IYQ0HFGyXdZvuXiYvoSMNWVuki0WwI,7807
|
|
141
|
-
web3/providers/eth_tester/middleware.py,sha256=
|
|
141
|
+
web3/providers/eth_tester/middleware.py,sha256=JS-cjGF5BtF43dp-bP7QDv0RWyq1iqwiq81RhTAswjI,13730
|
|
142
142
|
web3/providers/persistent/__init__.py,sha256=X7tFKJL5BXSwciq5_bRwGRB6bfdWBkIPPWMqCjXIKrA,411
|
|
143
143
|
web3/providers/persistent/async_ipc.py,sha256=dlySmRkVsKWOjb2w08n38PTcoI5MtviwqsRxq3YUg6M,5006
|
|
144
|
-
web3/providers/persistent/persistent.py,sha256=
|
|
144
|
+
web3/providers/persistent/persistent.py,sha256=LadhulIrKoazx8uyxw2fEYxI5Wt_j1MElPU_IVWa6so,16462
|
|
145
145
|
web3/providers/persistent/persistent_connection.py,sha256=NxxS-KeJhV07agg8CtJvmE-Ff-wLggQYpz4gdgVRDNU,3011
|
|
146
|
-
web3/providers/persistent/request_processor.py,sha256=
|
|
146
|
+
web3/providers/persistent/request_processor.py,sha256=nT48Ae1nQxo3DmcI0PRVM5-Y80OYTnpkSeC6eFnaKS4,15130
|
|
147
147
|
web3/providers/persistent/subscription_container.py,sha256=yd5pjjz_YnRLuUoxZUxt29Md1VUTemdUIBq8PCJre6Y,1734
|
|
148
148
|
web3/providers/persistent/subscription_manager.py,sha256=8HQgVlm5hgd55-FHEeVse13oh6mP1p6T_pWX5UfDWng,11564
|
|
149
149
|
web3/providers/persistent/utils.py,sha256=gfY7w1HB8xuE7OujSrbwWYjQuQ8nzRBoxoL8ESinqWM,1140
|
|
150
|
-
web3/providers/persistent/websocket.py,sha256=
|
|
150
|
+
web3/providers/persistent/websocket.py,sha256=STf31VNdwidMeAeeL1r5f8v3l66xChKkxZpnZzUiYO8,4577
|
|
151
151
|
web3/providers/rpc/__init__.py,sha256=mObsuwjr7xyHnnRlwzsmbp2JgZdn2NXSSctvpye4AuQ,149
|
|
152
|
-
web3/providers/rpc/async_rpc.py,sha256=
|
|
153
|
-
web3/providers/rpc/rpc.py,sha256=
|
|
152
|
+
web3/providers/rpc/async_rpc.py,sha256=QyToHBRKLKGlgRAGizL4pWMX9r1YEZLFMO8y99Vc7Yc,6370
|
|
153
|
+
web3/providers/rpc/rpc.py,sha256=MHYsuE88anowGJ19G0R-aSldwl-d6ot2f098B31N4X8,6119
|
|
154
154
|
web3/providers/rpc/utils.py,sha256=_mtoZMMIoZpPA8J8U5DfRxaNQmi8bw0ZVUiqn1Nz4co,2154
|
|
155
155
|
web3/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
156
156
|
web3/scripts/install_pre_releases.py,sha256=uVxsZk239640yxiqlPhfXxZKSsh3858pURKppi9kM5U,821
|
|
@@ -161,11 +161,11 @@ web3/utils/__init__.py,sha256=FpwKsCqPgsv64PFSaFuFYmseadMfQj78quw_6Vgq0VQ,1932
|
|
|
161
161
|
web3/utils/abi.py,sha256=zH54xZMXGL9nqVUavNhSZ4ZsMJM3ALdDZwBD0zgrfWU,26318
|
|
162
162
|
web3/utils/address.py,sha256=nzPLiWWCG9BqstDeDOcDwEpteJ8im6ywjLHKpd5akhw,1186
|
|
163
163
|
web3/utils/async_exception_handling.py,sha256=OoKbLNwWcY9dxLCbOfxcQPSB1OxWraNqcw8V0ZX-JaQ,3173
|
|
164
|
-
web3/utils/caching.py,sha256=
|
|
164
|
+
web3/utils/caching.py,sha256=miulUjLOjlOfTux8HWBklpRIa6_fVNTVFHIWcbZt27o,2591
|
|
165
165
|
web3/utils/exception_handling.py,sha256=n-MtO5LNzJDVzHTzO6olzfb2_qEVtVRvink0ixswg-Y,2917
|
|
166
166
|
web3/utils/subscriptions.py,sha256=iqlIK5xXM3XY6wEJQiovxrtKRvqpXmjhkPmrm15FnB8,8578
|
|
167
|
-
web3-7.
|
|
168
|
-
web3-7.
|
|
169
|
-
web3-7.
|
|
170
|
-
web3-7.
|
|
171
|
-
web3-7.
|
|
167
|
+
web3-7.11.0.dist-info/licenses/LICENSE,sha256=ENGC4gSn0kYaC_mlaXOEwCKmA6W7Z9MeSemc5O2k-h0,1095
|
|
168
|
+
web3-7.11.0.dist-info/METADATA,sha256=LCle5NEiQnflSAY6b5O2yLrw6o0hFqbGhwzy78m4azk,5621
|
|
169
|
+
web3-7.11.0.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
|
|
170
|
+
web3-7.11.0.dist-info/top_level.txt,sha256=iwupuJh7wgypXrpk_awszyri3TahRr5vxSphNyvt1bU,9
|
|
171
|
+
web3-7.11.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|