web3 7.8.0__py3-none-any.whl → 7.10.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.
Files changed (47) hide show
  1. web3/_utils/abi.py +3 -3
  2. web3/_utils/batching.py +1 -1
  3. web3/_utils/contract_sources/contract_data/ambiguous_function_contract.py +3 -3
  4. web3/_utils/contract_sources/contract_data/arrays_contract.py +3 -3
  5. web3/_utils/contract_sources/contract_data/bytes_contracts.py +5 -5
  6. web3/_utils/contract_sources/contract_data/constructor_contracts.py +7 -7
  7. web3/_utils/contract_sources/contract_data/contract_caller_tester.py +3 -3
  8. web3/_utils/contract_sources/contract_data/emitter_contract.py +3 -3
  9. web3/_utils/contract_sources/contract_data/event_contracts.py +7 -7
  10. web3/_utils/contract_sources/contract_data/extended_resolver.py +3 -3
  11. web3/_utils/contract_sources/contract_data/fallback_function_contract.py +3 -3
  12. web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +3 -3
  13. web3/_utils/contract_sources/contract_data/math_contract.py +3 -3
  14. web3/_utils/contract_sources/contract_data/offchain_lookup.py +3 -3
  15. web3/_utils/contract_sources/contract_data/offchain_resolver.py +3 -3
  16. web3/_utils/contract_sources/contract_data/panic_errors_contract.py +3 -3
  17. web3/_utils/contract_sources/contract_data/payable_tester.py +3 -3
  18. web3/_utils/contract_sources/contract_data/receive_function_contracts.py +5 -5
  19. web3/_utils/contract_sources/contract_data/reflector_contracts.py +3 -3
  20. web3/_utils/contract_sources/contract_data/revert_contract.py +3 -3
  21. web3/_utils/contract_sources/contract_data/simple_resolver.py +3 -3
  22. web3/_utils/contract_sources/contract_data/storage_contract.py +3 -3
  23. web3/_utils/contract_sources/contract_data/string_contract.py +3 -3
  24. web3/_utils/contract_sources/contract_data/tuple_contracts.py +5 -5
  25. web3/_utils/error_formatters_utils.py +1 -1
  26. web3/_utils/formatters.py +28 -0
  27. web3/_utils/method_formatters.py +121 -20
  28. web3/_utils/module_testing/eth_module.py +99 -2
  29. web3/_utils/module_testing/persistent_connection_provider.py +1 -1
  30. web3/_utils/rpc_abi.py +1 -0
  31. web3/_utils/validation.py +192 -1
  32. web3/eth/async_eth.py +19 -0
  33. web3/eth/eth.py +15 -0
  34. web3/gas_strategies/rpc.py +1 -1
  35. web3/gas_strategies/time_based.py +1 -1
  36. web3/manager.py +13 -204
  37. web3/providers/async_base.py +1 -1
  38. web3/providers/legacy_websocket.py +1 -3
  39. web3/providers/persistent/persistent.py +35 -5
  40. web3/providers/persistent/subscription_manager.py +7 -2
  41. web3/providers/persistent/websocket.py +12 -9
  42. web3/types.py +26 -2
  43. {web3-7.8.0.dist-info → web3-7.10.0.dist-info}/METADATA +14 -9
  44. {web3-7.8.0.dist-info → web3-7.10.0.dist-info}/RECORD +47 -47
  45. {web3-7.8.0.dist-info → web3-7.10.0.dist-info}/WHEEL +1 -1
  46. {web3-7.8.0.dist-info → web3-7.10.0.dist-info/licenses}/LICENSE +0 -0
  47. {web3-7.8.0.dist-info → web3-7.10.0.dist-info}/top_level.txt +0 -0
@@ -33,6 +33,9 @@ from web3._utils.caching.caching_utils import (
33
33
  async_handle_recv_caching,
34
34
  async_handle_send_caching,
35
35
  )
36
+ from web3._utils.validation import (
37
+ validate_rpc_response_and_raise_if_error,
38
+ )
36
39
  from web3.exceptions import (
37
40
  PersistentConnectionClosedOK,
38
41
  ProviderConnectionError,
@@ -65,11 +68,15 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
65
68
  logger = logging.getLogger("web3.providers.PersistentConnectionProvider")
66
69
  has_persistent_connection = True
67
70
 
68
- _send_func_cache: Tuple[int, Callable[..., Coroutine[Any, Any, RPCRequest]]] = (
71
+ _send_func_cache: Tuple[
72
+ Optional[int], Optional[Callable[..., Coroutine[Any, Any, RPCRequest]]]
73
+ ] = (
69
74
  None,
70
75
  None,
71
76
  )
72
- _recv_func_cache: Tuple[int, Callable[..., Coroutine[Any, Any, RPCResponse]]] = (
77
+ _recv_func_cache: Tuple[
78
+ Optional[int], Optional[Callable[..., Coroutine[Any, Any, RPCResponse]]]
79
+ ] = (
73
80
  None,
74
81
  None,
75
82
  )
@@ -302,6 +309,27 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
302
309
  TaskNotRunning(message_listener_task)
303
310
  )
304
311
 
312
+ def _raise_stray_errors_from_cache(self) -> None:
313
+ """
314
+ Check the request response cache for any errors not tied to current requests
315
+ and raise them if found.
316
+ """
317
+ if not self._is_batching:
318
+ for (
319
+ response
320
+ ) in self._request_processor._request_response_cache._data.values():
321
+ request = (
322
+ self._request_processor._request_information_cache.get_cache_entry(
323
+ generate_cache_key(response["id"])
324
+ )
325
+ )
326
+ if "error" in response and request is None:
327
+ # if we find an error response in the cache without a corresponding
328
+ # request, raise the error
329
+ validate_rpc_response_and_raise_if_error(
330
+ response, None, logger=self.logger
331
+ )
332
+
305
333
  async def _message_listener(self) -> None:
306
334
  self.logger.info(
307
335
  f"{self.__class__.__qualname__} listener background task started. Storing "
@@ -327,6 +355,7 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
327
355
  await self._request_processor.cache_raw_response(
328
356
  response, subscription=subscription
329
357
  )
358
+ self._raise_stray_errors_from_cache()
330
359
  except PersistentConnectionClosedOK as e:
331
360
  self.logger.info(
332
361
  "Message listener background task has ended gracefully: "
@@ -376,6 +405,10 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
376
405
  request_cache_key = generate_cache_key(request_id)
377
406
 
378
407
  while True:
408
+ # check if an exception was recorded in the listener task and raise
409
+ # it in the main loop if so
410
+ self._handle_listener_task_exceptions()
411
+
379
412
  if request_cache_key in self._request_processor._request_response_cache:
380
413
  self.logger.debug(
381
414
  f"Popping response for id {request_id} from cache."
@@ -385,9 +418,6 @@ class PersistentConnectionProvider(AsyncJSONBaseProvider, ABC):
385
418
  )
386
419
  return popped_response
387
420
  else:
388
- # check if an exception was recorded in the listener task and raise
389
- # it in the main loop if so
390
- self._handle_listener_task_exceptions()
391
421
  await asyncio.sleep(0)
392
422
 
393
423
  try:
@@ -206,7 +206,10 @@ class SubscriptionManager:
206
206
  raise Web3ValueError("No subscriptions provided.")
207
207
 
208
208
  unsubscribed: List[bool] = []
209
- for sub in subscriptions:
209
+ # re-create the subscription list to prevent modifying the original list
210
+ # in case ``subscription_manager.subscriptions`` was passed in directly
211
+ subs = [sub for sub in subscriptions]
212
+ for sub in subs:
210
213
  if isinstance(sub, str):
211
214
  sub = HexStr(sub)
212
215
  unsubscribed.append(await self.unsubscribe(sub))
@@ -226,7 +229,9 @@ class SubscriptionManager:
226
229
  :rtype: bool
227
230
  """
228
231
  unsubscribed = [
229
- await self.unsubscribe(sub) for sub in self.subscriptions.copy()
232
+ await self.unsubscribe(sub)
233
+ # use copy to prevent modifying the list while iterating over it
234
+ for sub in self.subscriptions.copy()
230
235
  ]
231
236
  if all(unsubscribed):
232
237
  self.logger.info("Successfully unsubscribed from all subscriptions.")
@@ -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,
@@ -63,6 +61,8 @@ class WebSocketProvider(PersistentConnectionProvider):
63
61
  self,
64
62
  endpoint_uri: Optional[Union[URI, str]] = None,
65
63
  websocket_kwargs: Optional[Dict[str, Any]] = None,
64
+ # uses binary frames by default
65
+ use_text_frames: Optional[bool] = False,
66
66
  # `PersistentConnectionProvider` kwargs can be passed through
67
67
  **kwargs: Any,
68
68
  ) -> None:
@@ -71,6 +71,7 @@ class WebSocketProvider(PersistentConnectionProvider):
71
71
  URI(endpoint_uri) if endpoint_uri is not None else get_default_endpoint()
72
72
  )
73
73
  super().__init__(**kwargs)
74
+ self.use_text_frames = use_text_frames
74
75
  self._ws: Optional[WebSocketClientProtocol] = None
75
76
 
76
77
  if not any(
@@ -118,9 +119,11 @@ class WebSocketProvider(PersistentConnectionProvider):
118
119
  "Connection to websocket has not been initiated for the provider."
119
120
  )
120
121
 
121
- await asyncio.wait_for(
122
- self._ws.send(request_data), timeout=self.request_timeout
123
- )
122
+ payload: Union[bytes, str] = request_data
123
+ if self.use_text_frames:
124
+ payload = request_data.decode("utf-8")
125
+
126
+ await asyncio.wait_for(self._ws.send(payload), timeout=self.request_timeout)
124
127
 
125
128
  async def socket_recv(self) -> RPCResponse:
126
129
  raw_response = await self._ws.recv()
web3/types.py CHANGED
@@ -197,10 +197,10 @@ class LogReceipt(TypedDict):
197
197
  blockNumber: BlockNumber
198
198
  data: HexBytes
199
199
  logIndex: int
200
+ removed: bool
200
201
  topics: Sequence[HexBytes]
201
202
  transactionHash: HexBytes
202
203
  transactionIndex: int
203
- removed: bool
204
204
 
205
205
 
206
206
  class SubscriptionResponse(TypedDict):
@@ -336,7 +336,7 @@ class StateOverrideParams(TypedDict, total=False):
336
336
  stateDiff: Optional[Dict[HexStr, HexStr]]
337
337
 
338
338
 
339
- StateOverride = Dict[ChecksumAddress, StateOverrideParams]
339
+ StateOverride = Dict[Union[str, Address, ChecksumAddress], StateOverrideParams]
340
340
 
341
341
 
342
342
  GasPriceStrategy = Union[
@@ -567,6 +567,30 @@ class OpcodeTrace(TypedDict, total=False):
567
567
  structLogs: List[StructLog]
568
568
 
569
569
 
570
+ class BlockStateCallV1(TypedDict):
571
+ blockOverrides: NotRequired[BlockData]
572
+ stateOverrides: NotRequired[StateOverride]
573
+ calls: Sequence[TxParams]
574
+
575
+
576
+ class SimulateV1Payload(TypedDict):
577
+ blockStateCalls: Sequence[BlockStateCallV1]
578
+ validation: NotRequired[bool]
579
+ traceTransfers: NotRequired[bool]
580
+
581
+
582
+ class SimulateV1CallResult(TypedDict):
583
+ returnData: HexBytes
584
+ logs: Sequence[LogReceipt]
585
+ gasUsed: int
586
+ status: int
587
+ error: NotRequired[RPCError]
588
+
589
+
590
+ class SimulateV1Result(BlockData):
591
+ calls: Sequence[SimulateV1CallResult]
592
+
593
+
570
594
  #
571
595
  # web3.geth types
572
596
  #
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: web3
3
- Version: 7.8.0
3
+ Version: 7.10.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
@@ -33,14 +33,14 @@ 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
39
  Requires-Dist: eth-tester[py-evm]<0.13.0b1,>=0.12.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"
43
- Requires-Dist: bumpversion>=0.5.3; extra == "dev"
43
+ Requires-Dist: bump_my_version>=0.19.0; extra == "dev"
44
44
  Requires-Dist: ipython; extra == "dev"
45
45
  Requires-Dist: setuptools>=38.6.0; extra == "dev"
46
46
  Requires-Dist: tqdm>4.32; extra == "dev"
@@ -49,7 +49,7 @@ Requires-Dist: wheel; extra == "dev"
49
49
  Requires-Dist: sphinx>=6.0.0; extra == "dev"
50
50
  Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
51
51
  Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
52
- Requires-Dist: towncrier<22,>=21; extra == "dev"
52
+ Requires-Dist: towncrier<25,>=24; extra == "dev"
53
53
  Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "dev"
54
54
  Requires-Dist: pytest-mock>=1.10; extra == "dev"
55
55
  Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
@@ -65,7 +65,7 @@ Provides-Extra: docs
65
65
  Requires-Dist: sphinx>=6.0.0; extra == "docs"
66
66
  Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
67
67
  Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
68
- Requires-Dist: towncrier<22,>=21; extra == "docs"
68
+ Requires-Dist: towncrier<25,>=24; extra == "docs"
69
69
  Provides-Extra: test
70
70
  Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "test"
71
71
  Requires-Dist: pytest-mock>=1.10; extra == "test"
@@ -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
@@ -105,14 +106,18 @@ web3.py allows you to interact with the Ethereum blockchain using Python, enabli
105
106
 
106
107
  - Python 3.8+ support
107
108
 
108
- ______________________________________________________________________
109
+ ## Installation
110
+
111
+ ```sh
112
+ python -m pip install web3
113
+ ```
109
114
 
110
- ## Quickstart
115
+ ## Documentation
111
116
 
112
117
  [Get started in 5 minutes](https://web3py.readthedocs.io/en/latest/quickstart.html) or
113
118
  [take a tour](https://web3py.readthedocs.io/en/latest/overview.html) of the library.
114
119
 
115
- ## Documentation
120
+ View the [change log](https://web3py.readthedocs.io/en/latest/release_notes.html).
116
121
 
117
122
  For additional guides, examples, and APIs, see the [documentation](https://web3py.readthedocs.io/en/latest/).
118
123
 
@@ -18,20 +18,20 @@ web3/exceptions.py,sha256=GMIrWTkYDR0jtvtdOlgl_s6fctTibW4Ytw4So5BY4uE,9584
18
18
  web3/geth.py,sha256=xVBZWSksBo2ipesAN9V5hzDc_te7kU8ueicFdvpkSO4,7370
19
19
  web3/logs.py,sha256=ROs-mDMH_ZOecE7hfbWA5yp27G38FbLjX4lO_WtlZxQ,198
20
20
  web3/main.py,sha256=eVdSh7m_iBMf3au0Aj49TZ7NSaRbN1Ccsng9Fuu8dME,16162
21
- web3/manager.py,sha256=DudssLJqK8SC7_W1JzBKbEj8mqLEDJCMox_THB9C7II,26664
21
+ web3/manager.py,sha256=SYAs0C0yveGV97iA1dYokG_QWPY7TsnSecALwKWuDiw,19853
22
22
  web3/method.py,sha256=Q7EWTwI4TxqAbJ3mZrdvLc9wfV-8o8sOzS_pbsRgAP0,8601
23
23
  web3/module.py,sha256=CDlnDrrWzkCJtd3gzHZ972l-6En6IyFEWwB7TXkHHLM,5617
24
24
  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=PFbVpEUAQhs6tgbolFGfuzXz7nfh7np6fekOgxU303c,13872
28
+ web3/types.py,sha256=-c1zBLyJOHey7CfkPO6saMVXxHUfVEvVUOcpNwO_ZB4,14450
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=rt4sBsZ283J4cnIyIbrRaGqzq4JbpgJawzSodfQxyaU,6317
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
@@ -39,24 +39,24 @@ web3/_utils/decorators.py,sha256=bYIoVL0DjHWU2-KOmg-UYg6rICeThlLVZpH9yM2NT8s,182
39
39
  web3/_utils/empty.py,sha256=ccgxFk5qm2x2ZeD8b17wX5cCAJPkPFuHrNQNMDslytY,132
40
40
  web3/_utils/encoding.py,sha256=yS3awPQshfqMqEgiZWWU2AG8Kq_mrCH9VwHvlMhrGw4,9282
41
41
  web3/_utils/ens.py,sha256=2BvzfegBkR7vH3Fq7lo_LsgfT912Zj-mR8eUt6o_lBA,2434
42
- web3/_utils/error_formatters_utils.py,sha256=uRXm6P6z4cUTTlQRLFLtuC3FYOjR0lrIlQToR5f_gzI,6868
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
45
45
  web3/_utils/filters.py,sha256=1WX2Vgmat8QKj0WNm_GoRcVp4iJ0BhaIpM_RbcZlBzs,11860
46
- web3/_utils/formatters.py,sha256=RfRZU0aXC99s6OoLMY7D-fcYJyVAYBEwdbw-JIDjbZE,3067
46
+ web3/_utils/formatters.py,sha256=ld6hUnt4awpbZ6-AoOCDrGM6wgup_e-8G4FxEa3SytM,3719
47
47
  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=a9VxHy9KnraxT7EddFd_CIS82SIOXKoZ_SmdxGE4K-Y,36902
51
+ web3/_utils/method_formatters.py,sha256=1hAwI4Vr4-sNtxe9JxMVZ8_u9ihVbA28dye38kn9uEo,39968
52
52
  web3/_utils/module.py,sha256=GuVePloTlIBZwFDOjg0zasp53HSJ32umxN1nQhqW-8Y,3175
53
53
  web3/_utils/normalizers.py,sha256=uOaGGgkFXTa5gg6mHgPhP8n035WYpo96xtrvpRPnfNk,7455
54
- web3/_utils/rpc_abi.py,sha256=zsavkWny01UC8DI_DOVWZc7XcHtlmB9XL97sL0ZcIcs,8525
54
+ web3/_utils/rpc_abi.py,sha256=yAxO-kRqFJy_q3PoYAxLBGuiaEN6lusbQ7Wzi5S0g48,8576
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
58
  web3/_utils/utility_methods.py,sha256=7VCpo5ysvPoGjFuDj5gT1Niva2l3BADUvNeJFlL3Yvg,2559
59
- web3/_utils/validation.py,sha256=VGRvM6P2um2bmGP8AgIg3WTXCynyOFIXSIxCo4opL5I,6481
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
@@ -66,36 +66,36 @@ web3/_utils/contract_sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
66
66
  web3/_utils/contract_sources/compile_contracts.py,sha256=C3eLY6gJ4xj9FunNwn4YPb9c8ElORkN8O4ddBa_kKqI,6486
67
67
  web3/_utils/contract_sources/contract_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  web3/_utils/contract_sources/contract_data/_custom_contract_data.py,sha256=nxpN2uS1T338Tp5uVhwY9U1C2m2pdDz7kZv3LoZ0hpo,552
69
- web3/_utils/contract_sources/contract_data/ambiguous_function_contract.py,sha256=-hyMlpYL-QQgwcqRoMRXkKPOAKO6isOPlcGRdoaYsWM,5980
70
- web3/_utils/contract_sources/contract_data/arrays_contract.py,sha256=DDAwvEhOFNLVDxq73Vg3mCVBfpl9laGCGsFGHqsVCH8,18626
71
- web3/_utils/contract_sources/contract_data/bytes_contracts.py,sha256=jx2zkR9yqRniBWRTP-wg7I7tvWkYqTuMLveFBomThpE,14351
72
- web3/_utils/contract_sources/contract_data/constructor_contracts.py,sha256=Z0meZqRuvc2eNO_K1OMruRdfMO2Wavf8KE-NSnKtjtQ,6051
73
- web3/_utils/contract_sources/contract_data/contract_caller_tester.py,sha256=9oeRnNpdbh2M8hNJTuqcxC3dTs3g-MWOz05fgPuB7dk,6228
74
- web3/_utils/contract_sources/contract_data/emitter_contract.py,sha256=skuuQAXTO57HNERqf2FYwyzoL6_1JOjwx0Z2cvdVopc,40861
75
- web3/_utils/contract_sources/contract_data/event_contracts.py,sha256=Sy8gg4GIAcYa41dOfl34fM47YLNKA74C3Ongx-pBAzg,9405
76
- web3/_utils/contract_sources/contract_data/extended_resolver.py,sha256=Jq9S24aNGhLaGXXRrcwW6fC9RwthHDcHg_4YDebAwSo,15720
77
- web3/_utils/contract_sources/contract_data/fallback_function_contract.py,sha256=W3bnypanJDHbPaxvAglMJb3apK3RAMlU0TtPT5Gqxyg,1649
78
- web3/_utils/contract_sources/contract_data/function_name_tester_contract.py,sha256=kshI47e64GdSTV2nLmhkGgeZrH0cbjobs1bekEXdYdE,1894
79
- web3/_utils/contract_sources/contract_data/math_contract.py,sha256=MFLcndXyQ7efzFY-7hZeJWU7CW4D2ZlQEucskiEtBMA,7635
80
- web3/_utils/contract_sources/contract_data/offchain_lookup.py,sha256=bxVOCrEAGchwQQt0Rib2GZ5-ma18EDA0eUyodM5vkLk,16424
81
- web3/_utils/contract_sources/contract_data/offchain_resolver.py,sha256=FbO7-eOK-uU0W24QxrCP28kJe7CJpRne0wiQYWwe0jc,31829
82
- web3/_utils/contract_sources/contract_data/panic_errors_contract.py,sha256=FTUaxUTDVl6RcmNIIStjTr1JZLePwCKt29skBXS5hME,15263
83
- web3/_utils/contract_sources/contract_data/payable_tester.py,sha256=jgoCGPfQAhd90EwgUUq1rKeaSA2P1ncHb3vmS4XHcys,1827
84
- web3/_utils/contract_sources/contract_data/receive_function_contracts.py,sha256=3Z7ZSaXqFKCStbA25u263agoXuv0rRfVSYYPn-Ipar4,17102
85
- web3/_utils/contract_sources/contract_data/reflector_contracts.py,sha256=51U32alPSlc6x4pbo55Mno-g4yn3FfePh7j6ISNLWz0,5262
86
- web3/_utils/contract_sources/contract_data/revert_contract.py,sha256=LIaJ0V3oT4tX94dtsSDnvhrPPWb2t9zROERiz-hamfo,4262
87
- web3/_utils/contract_sources/contract_data/simple_resolver.py,sha256=ysj1_yzT54eXO0nNaNfo7lsDL3eObIDOeCK5_lxOpFQ,3553
88
- web3/_utils/contract_sources/contract_data/storage_contract.py,sha256=fZ-4ho-fbVgPvFP_wpwHeoz8G45tqpqo1RZvntudqHI,7938
89
- web3/_utils/contract_sources/contract_data/string_contract.py,sha256=fJHQg_CxzOt7Ojp5Af067M46tyY6CARkzycS0fL6reQ,11228
90
- web3/_utils/contract_sources/contract_data/tuple_contracts.py,sha256=PPzVF67kRpeNLXGjUGjpIowGyD3F6fMzqYLuOwXRZbE,23176
69
+ web3/_utils/contract_sources/contract_data/ambiguous_function_contract.py,sha256=Zp0cazBx6-2i7W6uPCf76jCTAPdkww4NohQI9YMQQv8,5980
70
+ web3/_utils/contract_sources/contract_data/arrays_contract.py,sha256=Ou8nEO20JSVlxt2-Ay3O4O30h3qBTVXJG4jAtrTjANQ,18626
71
+ web3/_utils/contract_sources/contract_data/bytes_contracts.py,sha256=AVuZG_EyhUQymavo5uCYeqv4fXjyO3WIPbV2j4VRy7c,14351
72
+ web3/_utils/contract_sources/contract_data/constructor_contracts.py,sha256=RmL7T3OBuyWRjvQUawYjG_vTEqjLAICusJO1zNuIdUE,6051
73
+ web3/_utils/contract_sources/contract_data/contract_caller_tester.py,sha256=Oia2QhE029iIMDYgm6HSJwXOqMFnnMkM9_7qxBKevQU,6228
74
+ web3/_utils/contract_sources/contract_data/emitter_contract.py,sha256=vag_3SqTbSZyi57rteMPv1Nk8Y2bsXBR21X9QQbGCgE,40861
75
+ web3/_utils/contract_sources/contract_data/event_contracts.py,sha256=NiOUemueXaBsz2EfugTY2l3NeNQi9bLTs9KKvvsmsAs,9405
76
+ web3/_utils/contract_sources/contract_data/extended_resolver.py,sha256=JiIdVfokL2J6Sbx0MivpZidXv93jDQwGmHBpNzk6UJs,15720
77
+ web3/_utils/contract_sources/contract_data/fallback_function_contract.py,sha256=aZaXkz6y94EwG0Z6rhU9mb7bv7OEbzrs1zF9HoLyhNs,1649
78
+ web3/_utils/contract_sources/contract_data/function_name_tester_contract.py,sha256=Ezas3iVDBxBmKytdAkpiXRTza3SKXVmkIeIHrIY4cag,1894
79
+ web3/_utils/contract_sources/contract_data/math_contract.py,sha256=AJ-KtR5xdGMBYsFLbp9A0dWEN6ErchJmM2QQBiAkI0A,7635
80
+ web3/_utils/contract_sources/contract_data/offchain_lookup.py,sha256=Q3T9e5cpilzMu6BPYfbtBiM3Twt0aexlwYD1_-f6mCI,16424
81
+ web3/_utils/contract_sources/contract_data/offchain_resolver.py,sha256=Oqa_Be8eQh1EbeaMqe-1ekw_IJ5rupMkzpW8_uPmKUw,31829
82
+ web3/_utils/contract_sources/contract_data/panic_errors_contract.py,sha256=h2jNT9WZiJJXTabJcA-GDoA3fjS87STC4UId2LwwkM4,15263
83
+ web3/_utils/contract_sources/contract_data/payable_tester.py,sha256=xkh5eSQS2dt4wIftQBeJlqwIDvE_zwtxmlvi4X21Qpc,1827
84
+ web3/_utils/contract_sources/contract_data/receive_function_contracts.py,sha256=qWotM1AyO-JDbsvQ6cdhvyiGskU2kArd1LwST0CRIvU,17102
85
+ web3/_utils/contract_sources/contract_data/reflector_contracts.py,sha256=VbW_6N6l-_7QOjvqlywS0Xn3OhSiyhyxC-Pcm_69uUU,5262
86
+ web3/_utils/contract_sources/contract_data/revert_contract.py,sha256=1C639qKx41_T5PwHwGHGPFWvyxTd5pnsHLX4vG1ySlM,4262
87
+ web3/_utils/contract_sources/contract_data/simple_resolver.py,sha256=5H5L5mKUrSvcPrcWlR8oE1UdnRGNm0dgMsdw5V8Mn4w,3553
88
+ web3/_utils/contract_sources/contract_data/storage_contract.py,sha256=CDx3lHmEhrgqGbKBOvjw0Tb1DGovE3QC1AarZC0vcXU,7938
89
+ web3/_utils/contract_sources/contract_data/string_contract.py,sha256=agjI-kVgRa4VBSPArnpkE1JGf09wA3aheuIQv2LIlh0,11228
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=63jLDwrFMTEl6bPiWVkeW7vQI86JxNMtD1OF1r_hs90,187535
92
+ web3/_utils/module_testing/eth_module.py,sha256=KMr8_FFGeNIVCcQsOe6OmqCBn1-54TfDlESrTFxMOu4,191226
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
96
  web3/_utils/module_testing/module_testing_utils.py,sha256=9NfSislx36DWe9IcK-IYZHzMDNp9JKcOJjJ7jIW_wrU,5969
97
97
  web3/_utils/module_testing/net_module.py,sha256=ifUTC-5fTcQbwpm0X09OdD5RSPnn00T8klFeYe8tTm4,1272
98
- web3/_utils/module_testing/persistent_connection_provider.py,sha256=rmPrXpmaOz7B2cIMyG0pEO5l8hevxLpfu474zykRCug,30603
98
+ web3/_utils/module_testing/persistent_connection_provider.py,sha256=mYteu_EirYHENJbxoPEIuV3vIGhJqH5MaburqQtfwEE,30603
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
@@ -110,12 +110,12 @@ web3/contract/base_contract.py,sha256=vQVcne9luQ35eBheRh1Jc_jXOp2uDxIotKK9O1EQjQ
110
110
  web3/contract/contract.py,sha256=-TJJMjwybZmQo8-DtGhrjIr7TwVXFoiIsdMan1NFgQY,20562
111
111
  web3/contract/utils.py,sha256=mrW3WIxki6EJ1kNqyGp20SMJIu4GqAzOFgMuzpsHB2M,19363
112
112
  web3/eth/__init__.py,sha256=qDLxOcHHIzzPD7xzwy6Wcs0lLPQieB7WN0Ax25ctit8,197
113
- web3/eth/async_eth.py,sha256=Wqm03xSbSmPDxar3echSZGpiexTNk6yjeAaHKn971A8,24138
113
+ web3/eth/async_eth.py,sha256=h3DpNdYn4b3kVdp54pAkapyfnC73w38biV9vPNtsvZU,24632
114
114
  web3/eth/base_eth.py,sha256=UUH0Fw0HVa_mBEQ_CbCDO01yCVDsj33d8yOv7Oe-QD0,6905
115
- web3/eth/eth.py,sha256=T-YwH-Kks4cPothiR9GyOqMh6MeMTFRmfI7M2TL4NkY,19940
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
118
- web3/gas_strategies/time_based.py,sha256=oGk6nBUD4iMC8wl1vzf-nhURaqyPWYdPvNU0C3RIs8g,9071
117
+ web3/gas_strategies/rpc.py,sha256=lQnKJSSZAjE2_klwdr7tkZkPiYN9mkz1IqbVS2WNo6M,351
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
121
121
  web3/middleware/base.py,sha256=jUY19tw6iiJenDprYqkTeIESd8qPcTvNALP3Vhp86qk,5728
@@ -130,24 +130,24 @@ 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=fvfqexbB1bLamXQhmvRwmq8UdAUySCqUZy7RFwPcpLM,7701
134
134
  web3/providers/auto.py,sha256=Zx3CHKoRkmiw3Jte2BLNPiJAFd8rDXNGfA3XtxZvHgc,3465
135
135
  web3/providers/base.py,sha256=2morKtz6l_XuMQ8gt9eNtC0r64JnsIzFrUHlJQQ7F7Y,6440
136
136
  web3/providers/ipc.py,sha256=19jm5e-mytwx_s-s8hGMCK9sfOCgwwr_1hHcHQyB_7o,6514
137
- web3/providers/legacy_websocket.py,sha256=goS-ww86ijftbYs7QiqvrZZFycHBd5BD6U18yVQ7lF8,4767
137
+ web3/providers/legacy_websocket.py,sha256=p7EgbA6WzqGqIonnTjcYMS-2jPg5yLXdUtrOpp94ums,4733
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
141
  web3/providers/eth_tester/middleware.py,sha256=3h8q1WBu5CLiBYwonWFeAR_5pUy_vqgiDmi7wOzuorc,12971
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=fMVeS-BQ42C8XDH7G_N4WWdlUInmNhnU2S8UBfqcKeI,15072
144
+ web3/providers/persistent/persistent.py,sha256=_YNJnhCHEWP0Vhyh0geYIO5WwzOwN12jMJPdR9dwwSs,16176
145
145
  web3/providers/persistent/persistent_connection.py,sha256=NxxS-KeJhV07agg8CtJvmE-Ff-wLggQYpz4gdgVRDNU,3011
146
146
  web3/providers/persistent/request_processor.py,sha256=MEfPM5nezjvXS8KMpH65JEIP7qNZ4uf56CcbN-4Hhr0,14712
147
147
  web3/providers/persistent/subscription_container.py,sha256=yd5pjjz_YnRLuUoxZUxt29Md1VUTemdUIBq8PCJre6Y,1734
148
- web3/providers/persistent/subscription_manager.py,sha256=rH3oIWdj_pbIfjdMwwigy-4IFMbX2u_SEjPIPWJY84I,11265
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=d-IZNPfT6RGChTLDjHR4dH2y02U9KJoWpZlfxpiG1so,4353
150
+ web3/providers/persistent/websocket.py,sha256=STf31VNdwidMeAeeL1r5f8v3l66xChKkxZpnZzUiYO8,4577
151
151
  web3/providers/rpc/__init__.py,sha256=mObsuwjr7xyHnnRlwzsmbp2JgZdn2NXSSctvpye4AuQ,149
152
152
  web3/providers/rpc/async_rpc.py,sha256=r8OYrCh0MoUUBwRLT8rLo98cjziLs1E782vCEzFzGVc,6314
153
153
  web3/providers/rpc/rpc.py,sha256=qb17d1rocm1xOV7Pcqye9lQqFfbWmRnB6W-m1E1mB5A,6075
@@ -164,8 +164,8 @@ web3/utils/async_exception_handling.py,sha256=OoKbLNwWcY9dxLCbOfxcQPSB1OxWraNqcw
164
164
  web3/utils/caching.py,sha256=Rkt5IN8A7YBZYXlCRaWa64FiDhTXsxzTGGQdGBB4Nzw,2514
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.8.0.dist-info/LICENSE,sha256=ENGC4gSn0kYaC_mlaXOEwCKmA6W7Z9MeSemc5O2k-h0,1095
168
- web3-7.8.0.dist-info/METADATA,sha256=xcLoefR42JzPL3xkAnJiSFGGbAAK3jY6GaVBkVLNVoA,5541
169
- web3-7.8.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
170
- web3-7.8.0.dist-info/top_level.txt,sha256=iwupuJh7wgypXrpk_awszyri3TahRr5vxSphNyvt1bU,9
171
- web3-7.8.0.dist-info/RECORD,,
167
+ web3-7.10.0.dist-info/licenses/LICENSE,sha256=ENGC4gSn0kYaC_mlaXOEwCKmA6W7Z9MeSemc5O2k-h0,1095
168
+ web3-7.10.0.dist-info/METADATA,sha256=k-fchvuMg3dVw_Dy7hUa8w0K2us31LuM1yW0dtFTDQM,5621
169
+ web3-7.10.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
170
+ web3-7.10.0.dist-info/top_level.txt,sha256=iwupuJh7wgypXrpk_awszyri3TahRr5vxSphNyvt1bU,9
171
+ web3-7.10.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5