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.
@@ -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[int, Callable[..., Coroutine[Any, Any, RPCRequest]]] = (
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[int, Callable[..., Coroutine[Any, Any, RPCResponse]]] = (
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], await self._get_response_for_request_id(BATCH_REQUEST_ID)
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
- request = (
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
- if "error" in response and request is None:
323
- # if we find an error response in the cache without a corresponding
324
- # request, raise the error
325
- validate_rpc_response_and_raise_if_error(
326
- response, None, logger=self.logger
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(500)
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,
@@ -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 __contains__(self, key: str) -> bool:
63
- return key in self._data
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.2
1
+ Metadata-Version: 2.4
2
2
  Name: web3
3
- Version: 7.9.0
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.1
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<14.0.0,>=10.0.0
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.13.0b1,>=0.12.0b1; extra == "tester"
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.13.0b1,>=0.12.0b1; extra == "dev"
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.13.0b1,>=0.12.0b1; extra == "test"
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=FVnGiWkt1IcAATfSxoWz9hwrlVG_-WCpraTo8nSHCxA,2441
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=-c1zBLyJOHey7CfkPO6saMVXxHUfVEvVUOcpNwO_ZB4,14450
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=Y0vIFLEKwiMTdedxRPxVMQ1l-GbRRJia1AP1DqLBvjU,27430
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=SbFKYFCRTrkFMFNa4HA4DkD_Qbjc6atnebMObyuQeHE,6316
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=yS3awPQshfqMqEgiZWWU2AG8Kq_mrCH9VwHvlMhrGw4,9282
41
- web3/_utils/ens.py,sha256=2BvzfegBkR7vH3Fq7lo_LsgfT912Zj-mR8eUt6o_lBA,2434
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=1hAwI4Vr4-sNtxe9JxMVZ8_u9ihVbA28dye38kn9uEo,39968
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=uOaGGgkFXTa5gg6mHgPhP8n035WYpo96xtrvpRPnfNk,7455
54
- web3/_utils/rpc_abi.py,sha256=yAxO-kRqFJy_q3PoYAxLBGuiaEN6lusbQ7Wzi5S0g48,8576
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=7VCpo5ysvPoGjFuDj5gT1Niva2l3BADUvNeJFlL3Yvg,2559
59
- web3/_utils/validation.py,sha256=afrnToH65Ki8yS4M_Lb0P5unfrmF4z2riyPuOM5H3I4,13344
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=KMr8_FFGeNIVCcQsOe6OmqCBn1-54TfDlESrTFxMOu4,191226
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=9NfSislx36DWe9IcK-IYZHzMDNp9JKcOJjJ7jIW_wrU,5969
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=mYteu_EirYHENJbxoPEIuV3vIGhJqH5MaburqQtfwEE,30603
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=3Va-32jdmHkX7tzQCmh17ms2D6te5zZcqHP1326BdpY,352
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=4u1okZDig5jEcmYtRwod13RpEafUAx-ZNdRy4JI-rWE,7687
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=2morKtz6l_XuMQ8gt9eNtC0r64JnsIzFrUHlJQQ7F7Y,6440
136
- web3/providers/ipc.py,sha256=19jm5e-mytwx_s-s8hGMCK9sfOCgwwr_1hHcHQyB_7o,6514
137
- web3/providers/legacy_websocket.py,sha256=goS-ww86ijftbYs7QiqvrZZFycHBd5BD6U18yVQ7lF8,4767
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=3h8q1WBu5CLiBYwonWFeAR_5pUy_vqgiDmi7wOzuorc,12971
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=XyWc6oRgqzteUyHkW8EsFv7eNlpHw2Ew8noRA7Iu53A,16108
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=MEfPM5nezjvXS8KMpH65JEIP7qNZ4uf56CcbN-4Hhr0,14712
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=atseU7tiK21rwExREJyjtxrGV3fM7BP3ey9ZkJGYFJ8,4597
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=r8OYrCh0MoUUBwRLT8rLo98cjziLs1E782vCEzFzGVc,6314
153
- web3/providers/rpc/rpc.py,sha256=qb17d1rocm1xOV7Pcqye9lQqFfbWmRnB6W-m1E1mB5A,6075
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=Rkt5IN8A7YBZYXlCRaWa64FiDhTXsxzTGGQdGBB4Nzw,2514
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.9.0.dist-info/LICENSE,sha256=ENGC4gSn0kYaC_mlaXOEwCKmA6W7Z9MeSemc5O2k-h0,1095
168
- web3-7.9.0.dist-info/METADATA,sha256=rgxIR971Dh_qRi3q_T5-eO0pqRXl-mQKTD2I4af_WHU,5598
169
- web3-7.9.0.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
170
- web3-7.9.0.dist-info/top_level.txt,sha256=iwupuJh7wgypXrpk_awszyri3TahRr5vxSphNyvt1bU,9
171
- web3-7.9.0.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.0.0)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5