web3 7.14.1__py3-none-any.whl → 8.0.0b1__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 (99) hide show
  1. ens/_normalization.py +23 -29
  2. ens/async_ens.py +30 -24
  3. ens/base_ens.py +2 -3
  4. ens/ens.py +18 -20
  5. ens/utils.py +6 -10
  6. web3/__init__.py +0 -4
  7. web3/_utils/abi.py +38 -40
  8. web3/_utils/async_transactions.py +6 -9
  9. web3/_utils/batching.py +11 -15
  10. web3/_utils/blocks.py +1 -2
  11. web3/_utils/caching/caching_utils.py +12 -17
  12. web3/_utils/caching/request_caching_validation.py +7 -9
  13. web3/_utils/compat/__init__.py +2 -2
  14. web3/_utils/contract_sources/compile_contracts.py +4 -6
  15. web3/_utils/contracts.py +25 -29
  16. web3/_utils/datatypes.py +6 -10
  17. web3/_utils/decorators.py +1 -3
  18. web3/_utils/encoding.py +10 -14
  19. web3/_utils/ens.py +4 -5
  20. web3/_utils/events.py +19 -24
  21. web3/_utils/filters.py +23 -29
  22. web3/_utils/formatters.py +8 -13
  23. web3/_utils/http_session_manager.py +11 -22
  24. web3/_utils/math.py +1 -2
  25. web3/_utils/method_formatters.py +41 -43
  26. web3/_utils/module.py +3 -6
  27. web3/_utils/module_testing/eth_module.py +7 -9
  28. web3/_utils/module_testing/go_ethereum_admin_module.py +1 -2
  29. web3/_utils/module_testing/module_testing_utils.py +9 -5
  30. web3/_utils/module_testing/persistent_connection_provider.py +3 -7
  31. web3/_utils/module_testing/utils.py +32 -21
  32. web3/_utils/normalizers.py +21 -24
  33. web3/_utils/rpc_abi.py +8 -11
  34. web3/_utils/threads.py +3 -4
  35. web3/_utils/transactions.py +3 -6
  36. web3/_utils/type_conversion.py +2 -6
  37. web3/_utils/utility_methods.py +5 -7
  38. web3/_utils/validation.py +6 -8
  39. web3/_utils/windows.py +1 -4
  40. web3/beacon/async_beacon.py +50 -54
  41. web3/beacon/beacon.py +50 -54
  42. web3/contract/async_contract.py +38 -46
  43. web3/contract/base_contract.py +70 -75
  44. web3/contract/contract.py +39 -43
  45. web3/contract/utils.py +47 -51
  46. web3/datastructures.py +10 -15
  47. web3/eth/async_eth.py +64 -70
  48. web3/eth/base_eth.py +40 -44
  49. web3/eth/eth.py +50 -66
  50. web3/exceptions.py +8 -13
  51. web3/gas_strategies/rpc.py +1 -7
  52. web3/gas_strategies/time_based.py +2 -3
  53. web3/geth.py +17 -17
  54. web3/main.py +43 -52
  55. web3/manager.py +32 -35
  56. web3/method.py +22 -29
  57. web3/middleware/base.py +5 -8
  58. web3/middleware/filter.py +41 -46
  59. web3/middleware/formatting.py +5 -6
  60. web3/middleware/names.py +1 -3
  61. web3/middleware/signing.py +3 -4
  62. web3/middleware/stalecheck.py +1 -2
  63. web3/middleware/validation.py +1 -2
  64. web3/module.py +11 -14
  65. web3/providers/__init__.py +0 -4
  66. web3/providers/async_base.py +21 -27
  67. web3/providers/auto.py +9 -20
  68. web3/providers/base.py +12 -17
  69. web3/providers/eth_tester/defaults.py +4 -8
  70. web3/providers/eth_tester/main.py +4 -8
  71. web3/providers/eth_tester/middleware.py +2 -4
  72. web3/providers/ipc.py +6 -10
  73. web3/providers/persistent/async_ipc.py +4 -7
  74. web3/providers/persistent/persistent.py +22 -25
  75. web3/providers/persistent/persistent_connection.py +2 -4
  76. web3/providers/persistent/request_processor.py +11 -32
  77. web3/providers/persistent/subscription_container.py +5 -8
  78. web3/providers/persistent/subscription_manager.py +13 -19
  79. web3/providers/persistent/websocket.py +15 -12
  80. web3/providers/rpc/async_rpc.py +10 -16
  81. web3/providers/rpc/rpc.py +17 -20
  82. web3/providers/rpc/utils.py +2 -3
  83. web3/scripts/release/test_package.py +1 -4
  84. web3/testing.py +1 -5
  85. web3/tracing.py +9 -13
  86. web3/types.py +51 -58
  87. web3/utils/abi.py +28 -33
  88. web3/utils/async_exception_handling.py +1 -2
  89. web3/utils/caching.py +6 -10
  90. web3/utils/exception_handling.py +1 -2
  91. web3/utils/subscriptions.py +30 -34
  92. {web3-7.14.1.dist-info → web3-8.0.0b1.dist-info}/METADATA +10 -9
  93. web3-8.0.0b1.dist-info/RECORD +170 -0
  94. {web3-7.14.1.dist-info → web3-8.0.0b1.dist-info}/WHEEL +1 -1
  95. ens/specs/.DS_Store +0 -0
  96. web3/providers/legacy_websocket.py +0 -159
  97. web3-7.14.1.dist-info/RECORD +0 -172
  98. {web3-7.14.1.dist-info → web3-8.0.0b1.dist-info}/licenses/LICENSE +0 -0
  99. {web3-7.14.1.dist-info → web3-8.0.0b1.dist-info}/top_level.txt +0 -0
web3/utils/abi.py CHANGED
@@ -2,12 +2,7 @@ import functools
2
2
  from typing import (
3
3
  Any,
4
4
  Callable,
5
- Dict,
6
- List,
7
- Optional,
8
5
  Sequence,
9
- Tuple,
10
- Union,
11
6
  cast,
12
7
  )
13
8
 
@@ -87,13 +82,13 @@ from web3.types import (
87
82
  )
88
83
 
89
84
 
90
- def _filter_by_signature(signature: str, contract_abi: ABI) -> List[ABIElement]:
85
+ def _filter_by_signature(signature: str, contract_abi: ABI) -> list[ABIElement]:
91
86
  return [abi for abi in contract_abi if abi_to_signature(abi) == signature]
92
87
 
93
88
 
94
89
  def _filter_by_argument_count(
95
90
  num_arguments: int, contract_abi: ABI
96
- ) -> List[ABIElement]:
91
+ ) -> list[ABIElement]:
97
92
  return [
98
93
  abi
99
94
  for abi in contract_abi
@@ -106,9 +101,9 @@ def _filter_by_argument_count(
106
101
  def _filter_by_encodability(
107
102
  abi_codec: codec.ABIEncoder,
108
103
  args: Sequence[Any],
109
- kwargs: Dict[str, Any],
104
+ kwargs: dict[str, Any],
110
105
  contract_abi: ABI,
111
- ) -> List[ABICallable]:
106
+ ) -> list[ABICallable]:
112
107
  return [
113
108
  cast(ABICallable, function_abi)
114
109
  for function_abi in contract_abi
@@ -206,7 +201,7 @@ def _build_abi_input_error(
206
201
  """
207
202
  Build a string representation of the ABI input error.
208
203
  """
209
- errors: Dict[str, str] = dict(
204
+ errors: dict[str, str] = dict(
210
205
  {
211
206
  "zero_args": "",
212
207
  "invalid_args": "",
@@ -219,8 +214,8 @@ def _build_abi_input_error(
219
214
  abi_element_input_types = get_abi_input_types(abi_element)
220
215
  abi_signature = abi_to_signature(abi_element)
221
216
  abi_element_name = get_name_from_abi_element_identifier(abi_signature)
222
- types: Tuple[str, ...] = tuple()
223
- aligned_args: Tuple[Any, ...] = tuple()
217
+ types: tuple[str, ...] = tuple()
218
+ aligned_args: tuple[Any, ...] = tuple()
224
219
 
225
220
  if len(abi_element_input_types) == num_args:
226
221
  if num_args == 0:
@@ -277,9 +272,9 @@ def _mismatched_abi_error_diagnosis(
277
272
  abi: ABI,
278
273
  num_matches: int = 0,
279
274
  num_args: int = 0,
280
- *args: Optional[Any],
281
- abi_codec: Optional[Any] = None,
282
- **kwargs: Optional[Any],
275
+ *args: Any | None,
276
+ abi_codec: Any | None = None,
277
+ **kwargs: Any | None,
283
278
  ) -> str:
284
279
  """
285
280
  Raise a ``MismatchedABI`` when a function ABI lookup results in an error.
@@ -375,10 +370,10 @@ def _get_argument_readable_type(arg: Any) -> str:
375
370
 
376
371
  def _build_abi_filters(
377
372
  abi_element_identifier: ABIElementIdentifier,
378
- *args: Optional[Any],
379
- abi_codec: Optional[Any] = None,
380
- **kwargs: Optional[Any],
381
- ) -> List[Callable[..., Sequence[ABIElement]]]:
373
+ *args: Any | None,
374
+ abi_codec: Any | None = None,
375
+ **kwargs: Any | None,
376
+ ) -> list[Callable[..., Sequence[ABIElement]]]:
382
377
  """
383
378
  Build a list of ABI filters to find an ABI element within a contract ABI. Each
384
379
  filter is a partial function that takes a contract ABI and returns a filtered list.
@@ -401,7 +396,7 @@ def _build_abi_filters(
401
396
  if abi_element_identifier in ["constructor", "fallback", "receive"]:
402
397
  return [functools.partial(filter_abi_by_type, abi_element_identifier)]
403
398
 
404
- filters: List[Callable[..., Sequence[ABIElement]]] = []
399
+ filters: list[Callable[..., Sequence[ABIElement]]] = []
405
400
 
406
401
  arg_count = 0
407
402
  if args or kwargs:
@@ -454,9 +449,9 @@ def _build_abi_filters(
454
449
  def get_abi_element_info(
455
450
  abi: ABI,
456
451
  abi_element_identifier: ABIElementIdentifier,
457
- *args: Optional[Sequence[Any]],
458
- abi_codec: Optional[Any] = None,
459
- **kwargs: Optional[Dict[str, Any]],
452
+ *args: Sequence[Any] | None,
453
+ abi_codec: Any | None = None,
454
+ **kwargs: dict[str, Any] | None,
460
455
  ) -> ABIElementInfo:
461
456
  """
462
457
  Information about the function ABI, selector and input arguments.
@@ -510,7 +505,7 @@ def get_abi_element_info(
510
505
  abi, abi_element_identifier, *args, abi_codec=abi_codec, **kwargs
511
506
  )
512
507
  fn_selector = encode_hex(function_abi_to_4byte_selector(fn_abi))
513
- fn_inputs: Tuple[Any, ...] = tuple()
508
+ fn_inputs: tuple[Any, ...] = tuple()
514
509
 
515
510
  if fn_abi["type"] == "fallback" or fn_abi["type"] == "receive":
516
511
  return ABIElementInfo(abi=fn_abi, selector=fn_selector, arguments=tuple())
@@ -526,9 +521,9 @@ def get_abi_element_info(
526
521
  def get_abi_element(
527
522
  abi: ABI,
528
523
  abi_element_identifier: ABIElementIdentifier,
529
- *args: Optional[Any],
530
- abi_codec: Optional[Any] = None,
531
- **kwargs: Optional[Any],
524
+ *args: Any | None,
525
+ abi_codec: Any | None = None,
526
+ **kwargs: Any | None,
532
527
  ) -> ABIElement:
533
528
  """
534
529
  Return the interface for an ``ABIElement`` from the ``abi`` that matches the
@@ -621,9 +616,9 @@ def get_abi_element(
621
616
 
622
617
  def check_if_arguments_can_be_encoded(
623
618
  abi_element: ABIElement,
624
- *args: Optional[Sequence[Any]],
625
- abi_codec: Optional[Any] = None,
626
- **kwargs: Optional[Dict[str, Any]],
619
+ *args: Sequence[Any] | None,
620
+ abi_codec: Any | None = None,
621
+ **kwargs: dict[str, Any] | None,
627
622
  ) -> bool:
628
623
  """
629
624
  Check if the provided arguments can be encoded with the element ABI.
@@ -686,7 +681,7 @@ def check_if_arguments_can_be_encoded(
686
681
  def get_event_abi(
687
682
  abi: ABI,
688
683
  event_name: str,
689
- argument_names: Optional[Sequence[str]] = None,
684
+ argument_names: Sequence[str] | None = None,
690
685
  ) -> ABIEvent:
691
686
  """
692
687
  .. warning::
@@ -715,7 +710,7 @@ def get_event_abi(
715
710
  >>> get_event_abi(abi, 'MyEvent')
716
711
  {'type': 'event', 'name': 'MyEvent', 'inputs': []}
717
712
  """
718
- filters: List[functools.partial[Sequence[ABIElement]]] = [
713
+ filters: list[functools.partial[Sequence[ABIElement]]] = [
719
714
  functools.partial(filter_abi_by_type, "event"),
720
715
  ]
721
716
 
@@ -782,7 +777,7 @@ def get_event_log_topics(
782
777
 
783
778
 
784
779
  def log_topic_to_bytes(
785
- log_topic: Union[Primitives, HexStr, str],
780
+ log_topic: Primitives | HexStr | str,
786
781
  ) -> bytes:
787
782
  r"""
788
783
  Return topic signature as bytes.
@@ -1,6 +1,5 @@
1
1
  from typing import (
2
2
  Any,
3
- Dict,
4
3
  )
5
4
 
6
5
  from aiohttp import (
@@ -31,7 +30,7 @@ from web3.types import (
31
30
 
32
31
 
33
32
  async def async_handle_offchain_lookup(
34
- offchain_lookup_payload: Dict[str, Any],
33
+ offchain_lookup_payload: dict[str, Any],
35
34
  transaction: TxParams,
36
35
  ) -> bytes:
37
36
  formatted_sender = to_hex_if_bytes(offchain_lookup_payload["sender"]).lower()
web3/utils/caching.py CHANGED
@@ -8,10 +8,6 @@ from enum import (
8
8
  import time
9
9
  from typing import (
10
10
  Any,
11
- Dict,
12
- List,
13
- Optional,
14
- Tuple,
15
11
  )
16
12
 
17
13
 
@@ -31,7 +27,7 @@ class SimpleCache:
31
27
  def __len__(self) -> int:
32
28
  return len(self._data)
33
29
 
34
- def cache(self, key: str, value: Any) -> Tuple[Any, Dict[str, Any]]:
30
+ def cache(self, key: str, value: Any) -> tuple[Any, dict[str, Any]]:
35
31
  evicted_items = {}
36
32
  # If the key is already in the OrderedDict just update it
37
33
  # and don't evict any values. Ideally, we could still check to see
@@ -47,22 +43,22 @@ class SimpleCache:
47
43
  # need to reach back into the cache to grab the value.
48
44
  return value, evicted_items or None
49
45
 
50
- def get_cache_entry(self, key: str) -> Optional[Any]:
46
+ def get_cache_entry(self, key: str) -> Any | None:
51
47
  return self._data[key] if key in self._data else None
52
48
 
53
49
  def clear(self) -> None:
54
50
  self._data.clear()
55
51
 
56
- def items(self) -> List[Tuple[str, Any]]:
52
+ def items(self) -> list[tuple[str, Any]]:
57
53
  return list(self._data.items())
58
54
 
59
- def pop(self, key: str) -> Optional[Any]:
55
+ def pop(self, key: str) -> Any | None:
60
56
  if key not in self._data:
61
57
  return None
62
58
 
63
59
  return self._data.pop(key)
64
60
 
65
- def popitem(self, last: bool = True) -> Tuple[str, Any]:
61
+ def popitem(self, last: bool = True) -> tuple[str, Any]:
66
62
  return self._data.popitem(last=last)
67
63
 
68
64
  def is_full(self) -> bool:
@@ -72,7 +68,7 @@ class SimpleCache:
72
68
 
73
69
  async def async_await_and_popitem(
74
70
  self, last: bool = True, timeout: float = 10.0
75
- ) -> Tuple[str, Any]:
71
+ ) -> tuple[str, Any]:
76
72
  start = time.time()
77
73
  end_time = start + timeout
78
74
  while True:
@@ -1,6 +1,5 @@
1
1
  from typing import (
2
2
  Any,
3
- Dict,
4
3
  )
5
4
 
6
5
  from eth_abi import (
@@ -28,7 +27,7 @@ from web3.types import (
28
27
 
29
28
 
30
29
  def handle_offchain_lookup(
31
- offchain_lookup_payload: Dict[str, Any],
30
+ offchain_lookup_payload: dict[str, Any],
32
31
  transaction: TxParams,
33
32
  ) -> bytes:
34
33
  formatted_sender = to_hex_if_bytes(offchain_lookup_payload["sender"]).lower()
@@ -3,10 +3,7 @@ from typing import (
3
3
  Any,
4
4
  Callable,
5
5
  Coroutine,
6
- Dict,
7
6
  Generic,
8
- List,
9
- Optional,
10
7
  Sequence,
11
8
  TypeVar,
12
9
  Union,
@@ -75,8 +72,8 @@ EthSubscriptionHandler = Callable[
75
72
 
76
73
 
77
74
  def handler_wrapper(
78
- handler: Optional[EthSubscriptionHandler],
79
- ) -> Optional[EthSubscriptionHandler]:
75
+ handler: EthSubscriptionHandler | None,
76
+ ) -> EthSubscriptionHandler | None:
80
77
  """Wrap the handler to add bookkeeping and context creation."""
81
78
  if handler is None:
82
79
  return None
@@ -107,11 +104,11 @@ class EthSubscription(Generic[TSubscriptionResult]):
107
104
 
108
105
  def __init__(
109
106
  self: TSubscription,
110
- subscription_params: Optional[Sequence[Any]] = None,
111
- handler: Optional[EthSubscriptionHandler] = None,
112
- handler_context: Optional[Dict[str, Any]] = None,
113
- label: Optional[str] = None,
114
- parallelize: Optional[bool] = None,
107
+ subscription_params: Sequence[Any] | None = None,
108
+ handler: EthSubscriptionHandler | None = None,
109
+ handler_context: dict[str, Any] | None = None,
110
+ label: str | None = None,
111
+ parallelize: bool | None = None,
115
112
  ) -> None:
116
113
  self._subscription_params = subscription_params
117
114
  self._handler = handler_wrapper(handler)
@@ -128,11 +125,11 @@ class EthSubscription(Generic[TSubscriptionResult]):
128
125
  @classmethod
129
126
  def _create_type_aware_subscription(
130
127
  cls,
131
- subscription_params: Optional[Sequence[Any]],
132
- handler: Optional[EthSubscriptionHandler] = None,
133
- handler_context: Optional[Dict[str, Any]] = None,
134
- label: Optional[str] = None,
135
- parallelize: Optional[bool] = None,
128
+ subscription_params: Sequence[Any] | None,
129
+ handler: EthSubscriptionHandler | None = None,
130
+ handler_context: dict[str, Any] | None = None,
131
+ label: str | None = None,
132
+ parallelize: bool | None = None,
136
133
  ) -> "EthSubscription[Any]":
137
134
  subscription_type = subscription_params[0]
138
135
  subscription_arg = (
@@ -213,14 +210,13 @@ LogsSubscriptionHandler = Callable[[LogsSubscriptionContext], Coroutine[Any, Any
213
210
  class LogsSubscription(EthSubscription[LogReceipt]):
214
211
  def __init__(
215
212
  self,
216
- address: Optional[
217
- Union[Address, ChecksumAddress, List[Address], List[ChecksumAddress]]
218
- ] = None,
219
- topics: Optional[Sequence[TopicFilter]] = None,
213
+ address: None
214
+ | (Address | ChecksumAddress | list[Address] | list[ChecksumAddress]) = None,
215
+ topics: Sequence[TopicFilter] | None = None,
220
216
  handler: LogsSubscriptionHandler = None,
221
- handler_context: Optional[Dict[str, Any]] = None,
222
- label: Optional[str] = None,
223
- parallelize: Optional[bool] = None,
217
+ handler_context: dict[str, Any] | None = None,
218
+ label: str | None = None,
219
+ parallelize: bool | None = None,
224
220
  ) -> None:
225
221
  self.address = address
226
222
  self.topics = topics
@@ -250,10 +246,10 @@ NewHeadsSubscriptionHandler = Callable[
250
246
  class NewHeadsSubscription(EthSubscription[BlockData]):
251
247
  def __init__(
252
248
  self,
253
- label: Optional[str] = None,
254
- handler: Optional[NewHeadsSubscriptionHandler] = None,
255
- handler_context: Optional[Dict[str, Any]] = None,
256
- parallelize: Optional[bool] = None,
249
+ label: str | None = None,
250
+ handler: NewHeadsSubscriptionHandler | None = None,
251
+ handler_context: dict[str, Any] | None = None,
252
+ parallelize: bool | None = None,
257
253
  ) -> None:
258
254
  super().__init__(
259
255
  subscription_params=("newHeads",),
@@ -276,10 +272,10 @@ class PendingTxSubscription(EthSubscription[Union[HexBytes, TxData]]):
276
272
  def __init__(
277
273
  self,
278
274
  full_transactions: bool = False,
279
- label: Optional[str] = None,
280
- handler: Optional[PendingTxSubscriptionHandler] = None,
281
- handler_context: Optional[Dict[str, Any]] = None,
282
- parallelize: Optional[bool] = None,
275
+ label: str | None = None,
276
+ handler: PendingTxSubscriptionHandler | None = None,
277
+ handler_context: dict[str, Any] | None = None,
278
+ parallelize: bool | None = None,
283
279
  ) -> None:
284
280
  self.full_transactions = full_transactions
285
281
  super().__init__(
@@ -300,10 +296,10 @@ SyncingSubscriptionHandler = Callable[
300
296
  class SyncingSubscription(EthSubscription[SyncProgress]):
301
297
  def __init__(
302
298
  self,
303
- label: Optional[str] = None,
304
- handler: Optional[SyncingSubscriptionHandler] = None,
305
- handler_context: Optional[Dict[str, Any]] = None,
306
- parallelize: Optional[bool] = None,
299
+ label: str | None = None,
300
+ handler: SyncingSubscriptionHandler | None = None,
301
+ handler_context: dict[str, Any] | None = None,
302
+ parallelize: bool | None = None,
307
303
  ) -> None:
308
304
  super().__init__(
309
305
  subscription_params=("syncing",),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: web3
3
- Version: 7.14.1
3
+ Version: 8.0.0b1
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
@@ -12,20 +12,19 @@ Classifier: Intended Audience :: Developers
12
12
  Classifier: License :: OSI Approved :: MIT License
13
13
  Classifier: Natural Language :: English
14
14
  Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3.8
16
- Classifier: Programming Language :: Python :: 3.9
17
15
  Classifier: Programming Language :: Python :: 3.10
18
16
  Classifier: Programming Language :: Python :: 3.11
19
17
  Classifier: Programming Language :: Python :: 3.12
20
18
  Classifier: Programming Language :: Python :: 3.13
21
- Requires-Python: >=3.8, <4
19
+ Classifier: Programming Language :: Python :: 3.14
20
+ Requires-Python: >=3.10, <4
22
21
  Description-Content-Type: text/markdown
23
22
  License-File: LICENSE
24
23
  Requires-Dist: eth-abi>=5.0.1
25
24
  Requires-Dist: eth-account>=0.13.6
26
25
  Requires-Dist: eth-hash[pycryptodome]>=0.5.1
27
26
  Requires-Dist: eth-typing>=5.0.0
28
- Requires-Dist: eth-utils>=5.0.0
27
+ Requires-Dist: eth-utils>=5.3.0
29
28
  Requires-Dist: hexbytes>=1.2.0
30
29
  Requires-Dist: aiohttp>=3.7.4.post0
31
30
  Requires-Dist: pydantic>=2.4.0
@@ -33,7 +32,7 @@ Requires-Dist: pywin32>=223; platform_system == "Windows"
33
32
  Requires-Dist: requests>=2.23.0
34
33
  Requires-Dist: typing-extensions>=4.0.1
35
34
  Requires-Dist: types-requests>=2.0.0
36
- Requires-Dist: websockets<16.0.0,>=10.0.0
35
+ Requires-Dist: websockets>=14.0.0
37
36
  Requires-Dist: pyunormalize>=15.0.0
38
37
  Provides-Extra: tester
39
38
  Requires-Dist: eth-tester[py-evm]<0.14.0b1,>=0.13.0b1; extra == "tester"
@@ -50,7 +49,7 @@ Requires-Dist: sphinx>=6.0.0; extra == "dev"
50
49
  Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
51
50
  Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
52
51
  Requires-Dist: towncrier<25,>=24; extra == "dev"
53
- Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "dev"
52
+ Requires-Dist: pytest-asyncio>=1.3.0; extra == "dev"
54
53
  Requires-Dist: pytest-mock>=1.10; extra == "dev"
55
54
  Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
56
55
  Requires-Dist: pytest>=7.0.0; extra == "dev"
@@ -59,6 +58,7 @@ Requires-Dist: hypothesis>=3.31.2; extra == "dev"
59
58
  Requires-Dist: tox>=4.0.0; extra == "dev"
60
59
  Requires-Dist: mypy==1.10.0; extra == "dev"
61
60
  Requires-Dist: pre-commit>=3.4.0; extra == "dev"
61
+ Requires-Dist: cached-property>=2.0.1; extra == "dev"
62
62
  Requires-Dist: eth-tester[py-evm]<0.14.0b1,>=0.13.0b1; extra == "dev"
63
63
  Requires-Dist: py-geth>=6.4.0; extra == "dev"
64
64
  Provides-Extra: docs
@@ -67,7 +67,7 @@ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
67
67
  Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
68
68
  Requires-Dist: towncrier<25,>=24; extra == "docs"
69
69
  Provides-Extra: test
70
- Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "test"
70
+ Requires-Dist: pytest-asyncio>=1.3.0; extra == "test"
71
71
  Requires-Dist: pytest-mock>=1.10; extra == "test"
72
72
  Requires-Dist: pytest-xdist>=2.4.0; extra == "test"
73
73
  Requires-Dist: pytest>=7.0.0; extra == "test"
@@ -76,6 +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: cached-property>=2.0.1; extra == "test"
79
80
  Requires-Dist: eth-tester[py-evm]<0.14.0b1,>=0.13.0b1; extra == "test"
80
81
  Requires-Dist: py-geth>=6.4.0; extra == "test"
81
82
  Dynamic: author
@@ -104,7 +105,7 @@ Dynamic: summary
104
105
 
105
106
  web3.py allows you to interact with the Ethereum blockchain using Python, enabling you to build decentralized applications, interact with smart contracts, and much more.
106
107
 
107
- - Python 3.8+ support
108
+ - Python 3.10+ support
108
109
 
109
110
  ## Installation
110
111
 
@@ -0,0 +1,170 @@
1
+ ens/__init__.py,sha256=BtOyGF_JrIpWFTr_T1GCJuUtmZI-Qf-v560uzTWp18E,471
2
+ ens/_normalization.py,sha256=uumHB_Cz3K_l47AwTz2E8a7E80skKC4dMO035EHu3vk,16820
3
+ ens/abis.py,sha256=0Ec_lqe7HBsVpQrID3ccFMhx8Vb7S0TGFbeuRdXhuCE,34745
4
+ ens/async_ens.py,sha256=tHfCXmrejirvZkl7nvgE55oW2FOxLJKYmVQ8eTWmpQw,22767
5
+ ens/auto.py,sha256=w_E6Ua5ZmJVxfdii2aG5I_kQG5B9U5Y2qIFKVNhXo98,41
6
+ ens/base_ens.py,sha256=XCmm-zeJKkYl4vYSVvTHCJN9BGMvp9T_o5wJYDyObGg,3490
7
+ ens/constants.py,sha256=XCO4Pntwdnw10K_AZ86V0cqcvdUoOkEZvRqoDdFPE_w,913
8
+ ens/contract_data.py,sha256=CZa7Uxzq6rT-KonwHHM_wo-5ry0j1DMbikgEaP27Uy8,148602
9
+ ens/ens.py,sha256=oeK6hGKFwJGjeOSfg7jn0zyvH5FD6DnKHs4xtoX6mkA,21641
10
+ ens/exceptions.py,sha256=5h-t3G-lwYchYe4JgHaxD_a_llh56sS6qzo9Rpa0S0o,2442
11
+ ens/utils.py,sha256=qqC2m8J4qiZZjB4w2pNIhfQL87hgjDsiHGPOwiGnsUI,9288
12
+ ens/specs/nf.json,sha256=tPXKzdhgu9gqNi0UhKC1kzPqSBgy4yHm5TL19RQHBqU,49038
13
+ ens/specs/normalization_spec.json,sha256=8mmjBj4OoYCn7pD4P7hqKP_qy6rpYzpyRinSH3CCP9M,3171499
14
+ web3/__init__.py,sha256=Ucte5obfj0KM-J27QKvzQfANBhWTKN431_i8-aPNvPg,1155
15
+ web3/constants.py,sha256=eQLRQVMFPbgpOjjkPTMHkY-syncJuO-sPX5UrCSRjzQ,564
16
+ web3/datastructures.py,sha256=uRGQppYDQjAf8BVEbbDZ6nH69vEWQOqh_mUGyUkZmXw,11443
17
+ web3/exceptions.py,sha256=4hgyk9pgOn5WWGo5QOJsBzwobkzXu8HlUhLlLOeXFkw,9704
18
+ web3/geth.py,sha256=Im-EQZTc-mM_jOYlSTqgcbBcUO-sYFMXBFFekgkrVhU,7388
19
+ web3/logs.py,sha256=ROs-mDMH_ZOecE7hfbWA5yp27G38FbLjX4lO_WtlZxQ,198
20
+ web3/main.py,sha256=JMKq6uOMUGW35UPaggkV4v58jMOwOQPxbXRVTYJUefo,16163
21
+ web3/manager.py,sha256=SYhfxZbnx8MuwikbuALhzy439btGs39FEr_tzQuJs5U,22543
22
+ web3/method.py,sha256=OrjRxuQKBCN37VA6Y6cfTO7ah-tcM2yjOqjU9Cgq-AU,8570
23
+ web3/module.py,sha256=oWViUCuzIFNlIUBKn6N-Kc9ULeOna6VpNEmz8HPB0O0,5567
24
+ web3/net.py,sha256=Y3vPzHWVFkfHEZoJxjDOt4tp5ERmZrMuyi4ZFOLmIeA,1562
25
+ web3/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ web3/testing.py,sha256=0xL9BmE7W1fqYeDIVvK162phYSmBimoxTqldtJfIdpU,882
27
+ web3/tracing.py,sha256=-6nWeNGBMgLwmH9EAvf-kvl1zYmX87psjFlAlg8ogE8,3037
28
+ web3/types.py,sha256=ExdlQNQ-UEXAJf_kiPRVeVJMjY1WR-ZNsfk2re7BkwM,15319
29
+ web3/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ web3/_utils/abi.py,sha256=GsgN1I8MdvDJR1w8QBrZbihlnnUoN0NZ9FvBOTDXIzw,27507
31
+ web3/_utils/abi_element_identifiers.py,sha256=m305lsvUZk-jkPixT0IJd9P5sXqMvmwlwlLeBgEAnBQ,55
32
+ web3/_utils/async_caching.py,sha256=2XnaKCHBTTDK6B2R_YZvjJqIRUpbMDIU1uYrq-Lcyp8,486
33
+ web3/_utils/async_transactions.py,sha256=2ejspkViPE4UpclJSSEJl-o5CeM7hXv1t8zGl2cl6oQ,5573
34
+ web3/_utils/batching.py,sha256=TuyeKd4JH23JDrvwDImHUXUWEy1cWiwP9-J3Df0IHlE,6052
35
+ web3/_utils/blocks.py,sha256=pyC5AIGbyxBEnpGVRi2Lj4Tn6eqp31rNsJp-FuwG6Xw,2121
36
+ web3/_utils/contracts.py,sha256=6ulnRTdHw-FzIOigHamnXlPUdLfbuM8l_b2MFGh3l7k,12014
37
+ web3/_utils/datatypes.py,sha256=FnAhwU2faFOOUH_YtFr3CvDlOHOgRvzM2MIRoldlL54,1653
38
+ web3/_utils/decorators.py,sha256=qBxdd13qEcSQSSX1qZ44riSuylO0cI-koAsi_mx7CJA,1754
39
+ web3/_utils/empty.py,sha256=ccgxFk5qm2x2ZeD8b17wX5cCAJPkPFuHrNQNMDslytY,132
40
+ web3/_utils/encoding.py,sha256=YPB-u8XsJhtSRBSLfPfhwpjCRDIxpG6YxAArPIveCHU,9563
41
+ web3/_utils/ens.py,sha256=nfsIQvDBJqPM8ZEtskzx6-hy3pe4EMw1sa3jgCN2oo0,2686
42
+ web3/_utils/error_formatters_utils.py,sha256=GQmUUW22B2N5e4vX6aiiLenwiwPhE89HfPSt_vYttw0,7405
43
+ web3/_utils/events.py,sha256=wZxws5eGrmv0wCiaKcRX1KJcGqz4WzoEfh2mvhcHKrU,16939
44
+ web3/_utils/fee_utils.py,sha256=MFt27R9E3qFP-Hf87-Lzv0JAiuYRE_qqafyTmzctAYA,2145
45
+ web3/_utils/filters.py,sha256=JiAVD1aNxDgLECiWt3q5_f45Z_kCsU9cOkgYJlbf7jE,12117
46
+ web3/_utils/formatters.py,sha256=VKce5v68JhK09mrlvuQzX_nJSU3GShP7MxZDdBjig1E,3649
47
+ web3/_utils/http.py,sha256=2R3UOeZmwiQGc3ladf78R9AnufbGaTXAntqf-ZQlZPI,230
48
+ web3/_utils/http_session_manager.py,sha256=YzdoB0O3cK5E0WsJES9gms2-t9GefIn29RDy0aH7PnQ,12614
49
+ web3/_utils/hypothesis.py,sha256=4Cm4iOWv-uP9irg_Pv63kYNDYUAGhnUH6fOPWRw3A0g,209
50
+ web3/_utils/math.py,sha256=2AG4OwUqqzbVWpVNX5cqLcnyCVvw_ji2ZeeWYLhVsDM,1063
51
+ web3/_utils/method_formatters.py,sha256=lSOzAGnzrendlfA7pjcR6T68NtM2g0vzASbt-dKJaq4,41405
52
+ web3/_utils/module.py,sha256=vR6E07ZwBkSe2UqQJF2vLYQQxX0QIY3lQAm7Bt7uZBY,3138
53
+ web3/_utils/normalizers.py,sha256=VI413Uy_PQbYTXKdqiRLh-tS2tae8qEjE_e4VXl_S00,7375
54
+ web3/_utils/rpc_abi.py,sha256=tzW6vcEHX6wi0oKWQS27MAwMNA_dUPnLm5kp-bB0WCY,8557
55
+ web3/_utils/threads.py,sha256=Pj8MwStWJ0eqGM3cUooQqGMOC_w40QJIpfsw2lpV7rc,4235
56
+ web3/_utils/transactions.py,sha256=UNv9-22Ei0Gi12CY_MQR02RFXxfIY2I7sGUsSEsb7SA,9015
57
+ web3/_utils/type_conversion.py,sha256=DzgidQyrjqxuI3tI3FkseUo0I2CIAe3tygCSIv49jHI,830
58
+ web3/_utils/utility_methods.py,sha256=yZECbfAXR0PygVX0c3IK2qj0tYBHmGEC7xN8PiPLoAc,2556
59
+ web3/_utils/validation.py,sha256=lmlN3k5WSJOxTow2TxRmBBg2cNhNnRvKX_NHIkhuvsA,13313
60
+ web3/_utils/windows.py,sha256=PF-nsU-Kis_3Zwxz5fMJ-TNNbwv-e_-RVY6ej305bbo,960
61
+ web3/_utils/caching/__init__.py,sha256=ri-5UGz5PPuYW9W1c2BX5lUJn1oZuvErbDz5NweiveA,284
62
+ web3/_utils/caching/caching_utils.py,sha256=rroH3etM6v_fc5sqPoCM4-Gk3uYIi50ykktyLZ-yTSk,14208
63
+ web3/_utils/caching/request_caching_validation.py,sha256=MJ9ewzVJ93EuhNuiJMYtJTUMBkUHkSt-VTYKCN1TamA,9920
64
+ web3/_utils/compat/__init__.py,sha256=v0QjRBRw_NKMNS21HSj2fO5-ksBnIjNNPTcF3RidOzY,576
65
+ web3/_utils/contract_sources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ web3/_utils/contract_sources/compile_contracts.py,sha256=XCzs02uKBd0h9kQse1FD5bSmokyvcVuW1mrgeMzfhcQ,6466
67
+ web3/_utils/contract_sources/contract_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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=XCERnpGr2RtN4kMaGRHcfaM6bZC_ITpeKY6si2LoZ6w,5980
70
+ web3/_utils/contract_sources/contract_data/arrays_contract.py,sha256=lkHLMTvsoXd5pIdBS4-QAHLu0SEnhljqj26EQuiHlY0,18626
71
+ web3/_utils/contract_sources/contract_data/bytes_contracts.py,sha256=BC0xlYWzj2bAZ3Kye4T-DiEL8gzrkVavR4Wq_wN8Fsg,14351
72
+ web3/_utils/contract_sources/contract_data/constructor_contracts.py,sha256=-dLiEEdM4WMP9OaWRU89KUPqtRqV22Hon9cPUJopuqY,6051
73
+ web3/_utils/contract_sources/contract_data/contract_caller_tester.py,sha256=LjavtkUUaESdVx1ux9Qp0rOQab8vUEARTCPGO7efQnU,6228
74
+ web3/_utils/contract_sources/contract_data/emitter_contract.py,sha256=N_Bjy3QtI5ZAqRd1q61zaKGfrNWxpWTkLcYmfM9m6t4,40861
75
+ web3/_utils/contract_sources/contract_data/event_contracts.py,sha256=AQ856aQeTSSLnmLQ7OoL5GaYCLakAl0KQz6u8W9EkpI,9405
76
+ web3/_utils/contract_sources/contract_data/extended_resolver.py,sha256=xTPSJY2lG_T3_CWhppaniZxCzTDBJVywmq_-nRN8_l4,15720
77
+ web3/_utils/contract_sources/contract_data/fallback_function_contract.py,sha256=08JmhMTvKn0ALArgrW7T32wO-RMiqBJDgr_Xt1F6RA8,1649
78
+ web3/_utils/contract_sources/contract_data/function_name_tester_contract.py,sha256=SXv5hY_kYLtcjDH2cGw5f9IXwCGnuWL0bWY81860FJQ,1894
79
+ web3/_utils/contract_sources/contract_data/math_contract.py,sha256=hR7kZuGBLh-Gu-4JILa3dE8ri5kH3Ve-Sqr9K4q3tYA,7635
80
+ web3/_utils/contract_sources/contract_data/offchain_lookup.py,sha256=KGqPvnQivR6zAlDuopBwjk2stmyhzGM762ErhPpXXSk,16424
81
+ web3/_utils/contract_sources/contract_data/offchain_resolver.py,sha256=W2AkFrjWGBGykHvooIOau775hLOkjdOsrKeRYC0NojI,31829
82
+ web3/_utils/contract_sources/contract_data/panic_errors_contract.py,sha256=fsRcZTnhsnooLBkYE7TziuEKpc-b4U4OTMNeznWA1gQ,15263
83
+ web3/_utils/contract_sources/contract_data/payable_tester.py,sha256=LJLAfW7U-EZBvPjPabjrF906CVXTsnP02GaZagdXNqo,1827
84
+ web3/_utils/contract_sources/contract_data/receive_function_contracts.py,sha256=retpVQ8OmHiyrdEZ_qn22GUr9961SYeSTj2gudX0koc,17102
85
+ web3/_utils/contract_sources/contract_data/reflector_contracts.py,sha256=OOcw3sKUt1eM1HhmT9na-wv15AQ31UghnHp-S7bSfbg,5262
86
+ web3/_utils/contract_sources/contract_data/revert_contract.py,sha256=N1pcxWOA28mjuHhhbkeNnMB9j7hCy-0W2WJ7lTqgtwI,4262
87
+ web3/_utils/contract_sources/contract_data/simple_resolver.py,sha256=V8w8nDfh2OjdWNP-5lGPMV5t5ZUZ-LzO5pLiDKJ9SVk,3553
88
+ web3/_utils/contract_sources/contract_data/storage_contract.py,sha256=ARz6J3GmsnafoM9RCTZX410ZtFVVnlJmeSBB2Q-kucs,7938
89
+ web3/_utils/contract_sources/contract_data/string_contract.py,sha256=sk6TWvzH7GkRxwioXFm2a7J99riySqipn2EQhfYdzLY,11228
90
+ web3/_utils/contract_sources/contract_data/tuple_contracts.py,sha256=7RlKfKRVXhjJN1j7D4YlQM6BswK3c0VaSxcnPVwAgcg,23176
91
+ web3/_utils/module_testing/__init__.py,sha256=Xr_S46cjr0mypD_Y4ZbeF1EJ-XWfNxWUks5ykhzN10c,485
92
+ web3/_utils/module_testing/eth_module.py,sha256=kAv6xEHuXdgqfri1eG1FMdQ6Ku7Bg-A0zn9SoQJcPoU,197164
93
+ web3/_utils/module_testing/go_ethereum_admin_module.py,sha256=8MFDmTy0k347jY1hKBNZHPjls9YKoftuI6a_rGpcDwU,3435
94
+ web3/_utils/module_testing/go_ethereum_debug_module.py,sha256=k2eXf71F4ANwYlTmua-PJvANy5jmcmPx72FDfmSM_q0,4173
95
+ web3/_utils/module_testing/go_ethereum_txpool_module.py,sha256=IXWuu1xG4hKJr6ULonfW3KKrCitFhITCSj3JlU_62eY,1223
96
+ web3/_utils/module_testing/module_testing_utils.py,sha256=VizfEIUjDEF7OLSRYTv5bjqxc5TZDW0p6tx58qXwh7E,5703
97
+ web3/_utils/module_testing/net_module.py,sha256=nsc1T5THY9gm_ORakvhz_PwWlGC4X-peLfHSO3AK9po,1296
98
+ web3/_utils/module_testing/persistent_connection_provider.py,sha256=vpqF0pz6iOLS7JzKMPt7PUKGa75ICxkpehe5smVkMgU,34754
99
+ web3/_utils/module_testing/utils.py,sha256=_LBxFQTEfB8ReEE9d3lcEWduvni3maEutU7UJHsnFEE,13728
100
+ web3/_utils/module_testing/web3_module.py,sha256=JtckjOMhJZLV7aHVvNlgR9nNPwv2nUGX2dOB2UUNx6k,27720
101
+ web3/auto/__init__.py,sha256=ZbzAiCZMdt_tCTTPvH6t8NCVNroKKkt7TSVBBNR74Is,44
102
+ web3/auto/gethdev.py,sha256=MuWD2gxv0xDv_SzPsp9mSkS1oG4P54xFK83qw9NvswA,438
103
+ web3/beacon/__init__.py,sha256=Ac6YiNgU8D8Ynnh5RwSCx2NwPyjnpFjpXeHuSssFbaU,113
104
+ web3/beacon/api_endpoints.py,sha256=rkoy4d6igjgHbI0HSE9FEdZSYw94KhPz1gGaPdEjMCg,2632
105
+ web3/beacon/async_beacon.py,sha256=iKMsbSKROB17fpJEL3xmftKUK7b9-DGp3-yfbUuj21I,9721
106
+ web3/beacon/beacon.py,sha256=dXdPzKwfX9ld2e_wFVn9X2SLE7pmZKmq8mUmgfCEqLI,8650
107
+ web3/contract/__init__.py,sha256=qeZRtTw9xriwoD82w6vePDuPBZ35-CMVdkzViBSH3Qs,293
108
+ web3/contract/async_contract.py,sha256=M37eMvUSwLjl-uA_nlKoXg2kwJlGpnF3FMPJf4T_d-E,20428
109
+ web3/contract/base_contract.py,sha256=cE01igA57p5j-pMe85Xh9_ao77mPFDvL8tr5GePPln8,54188
110
+ web3/contract/contract.py,sha256=Suyjal_BYszCLPYhClMJm2dpaZngUzx3mPdZGUkx6lg,20416
111
+ web3/contract/utils.py,sha256=5-WoSJ3LuIjkMflOvWLRuuiW4nuTPyoeptkur8Ufei8,18461
112
+ web3/eth/__init__.py,sha256=qDLxOcHHIzzPD7xzwy6Wcs0lLPQieB7WN0Ax25ctit8,197
113
+ web3/eth/async_eth.py,sha256=7sP0LKyL_GeHOxyS6_V4lt94cd22T3SEqzKrl019BIQ,24236
114
+ web3/eth/base_eth.py,sha256=858u2_06tFwdC0qbssLXBQnIMq5WzPZfZS4N_0vZwko,6737
115
+ web3/eth/eth.py,sha256=3zomty1s27j1v7B0fq4NktiJ9ZJspCwJxXa-v9DHLxU,20433
116
+ web3/gas_strategies/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
+ web3/gas_strategies/rpc.py,sha256=qoI9pcqxI8v_m3XQdJxZq3Rjln4xfcB3CycgEoTaBTg,304
118
+ web3/gas_strategies/time_based.py,sha256=ZvJPd1NDxQAVJEP8kmS-gFgVrsfSBMcmUBrXbC_QqyA,9060
119
+ web3/middleware/__init__.py,sha256=uYGi5y5cp10sU2eawpZkPFFo0wDMz9f8aU-t582zZlA,2835
120
+ web3/middleware/attrdict.py,sha256=tIoMEZ3BkmEafnwitGY70o0GS9ShfwReDMxkHuvcOwI,2092
121
+ web3/middleware/base.py,sha256=4Vd07HWeXV2oiB0rUcCMB8KDZhCD5R_8jYJUX7gd7JY,5714
122
+ web3/middleware/buffered_gas_estimate.py,sha256=8HumDBDfhB2RomSqO8aK9439CskgWgyj0fIXvfDzCME,1652
123
+ web3/middleware/filter.py,sha256=OS0ED-dwdZoR3xYKGkVKUs2t1g0XtdGe-wZ5A_-snFM,22031
124
+ web3/middleware/formatting.py,sha256=63kBiwUMQRdTmmjwUiacQea7lXxIgubFqdcY0Yb-Xfk,7784
125
+ web3/middleware/gas_price_strategy.py,sha256=_RztgnWqiH9FIL7Vpdc0I8mzHoM7f4mV-Lz3aeIqJe4,3784
126
+ web3/middleware/names.py,sha256=QYrIMg844SRotqzdDOFBF5TS_r0oMZXBM1yu7LgXiNE,4302
127
+ web3/middleware/proof_of_authority.py,sha256=0AT4jr5CmTdrvl8Jiy-WYy8IFDYBOEaesgHDwpn0c7M,1429
128
+ web3/middleware/pythonic.py,sha256=awc8I6lLzVc2Iv138sps2uf6dMQipskLRBTdvTEEIgQ,348
129
+ web3/middleware/signing.py,sha256=iaLxeClE4yS-GkSJoTz5G3wsImYOPtf8qC6IInxE3TA,5887
130
+ web3/middleware/stalecheck.py,sha256=9On4N50pacYQOGLFeJd6sVl3Q3Ez8GghYouTlxOsvPI,2673
131
+ web3/middleware/validation.py,sha256=qOFJb-LZyXJqwjiuNkqYv7fMBrY3JmWuOgI8hmFG2MM,4276
132
+ web3/providers/__init__.py,sha256=Q_P5j6NTx8I_OaKE-niDGGeZb8rSGE825r9QKHLzAyI,842
133
+ web3/providers/async_base.py,sha256=orwy4ds7YxxNzVZC4cN-QbMo5zKTGPFoLIhiY_zoIG8,8143
134
+ web3/providers/auto.py,sha256=zxxMkWOf17Mf4zl3fOonaSk37hEoYtylJgU7yCggT28,4044
135
+ web3/providers/base.py,sha256=gHVw9on5EA5msSc_KBFmXn_kk-7pLpiS7Fo74oNIyWo,6783
136
+ web3/providers/ipc.py,sha256=ws75sfeuYklB5IAr_gEYYrHoDHjCZs_Spg_WQJGSMw0,6468
137
+ web3/providers/eth_tester/__init__.py,sha256=UggyBQdeAyjy1awATW1933jkJcpqqaUYUQEFAQnA2o0,163
138
+ web3/providers/eth_tester/defaults.py,sha256=MdiGOL37zhvexIFF6_4UpHrj_y0hrTJa-AZkLvnKEs0,12576
139
+ web3/providers/eth_tester/main.py,sha256=lPuJjNMryXi3-dfovxDexytDtDoTINTbKp1pXXAmYe4,7759
140
+ web3/providers/eth_tester/middleware.py,sha256=oy50cyaJ5PzPYXHuAPQdKvNZcCtE6B88c1qtPhgK3U8,13710
141
+ web3/providers/persistent/__init__.py,sha256=X7tFKJL5BXSwciq5_bRwGRB6bfdWBkIPPWMqCjXIKrA,411
142
+ web3/providers/persistent/async_ipc.py,sha256=xu-vkxMRfHWqe8t9-EJiGG9jHCDqGa9h4JV1ruP039o,4998
143
+ web3/providers/persistent/persistent.py,sha256=mcqmR0msuU6VmSGUXbmr4AwS2k6cdexe7YBKrxftTL4,19399
144
+ web3/providers/persistent/persistent_connection.py,sha256=kQ8aualW4ki8p0ca6klg2qPQW_NhCPdqUGckf-e_-ac,2989
145
+ web3/providers/persistent/request_processor.py,sha256=_OadhWL8a_ThD614QjMY6tgVT2EjX3W2OF0Z3_0y6_Y,13647
146
+ web3/providers/persistent/subscription_container.py,sha256=waRR3E4FTzWwNc4cChTXh7FBd4kRGUG5R-UEQlSCKc4,1697
147
+ web3/providers/persistent/subscription_manager.py,sha256=SugC6np5Lg_BbmUGalLwIrKIkAzNzDQQ_HxbQVhNPIU,13718
148
+ web3/providers/persistent/utils.py,sha256=U7Yu30h4FtU0JfJnFfyNleZJxmNoejQCuU6MeMJjTRo,1145
149
+ web3/providers/persistent/websocket.py,sha256=1bwj40E8U-mXeS6gXGZfWClKbhWomSj2FQsKHnVOd2I,4623
150
+ web3/providers/rpc/__init__.py,sha256=mObsuwjr7xyHnnRlwzsmbp2JgZdn2NXSSctvpye4AuQ,149
151
+ web3/providers/rpc/async_rpc.py,sha256=NV3dH4aRUphnX3Fh5Mb2VBIWULHgLx3_QOOG61dcVSk,6244
152
+ web3/providers/rpc/rpc.py,sha256=2gFn4HwIaS4snDmUIO8dm843yxLNzITWC3gp0ARCBdc,6001
153
+ web3/providers/rpc/utils.py,sha256=KPQOL__6WlVUlGll3EaG3dX5VcmB0W5ww_6uIUjAWCI,2144
154
+ web3/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
+ web3/scripts/install_pre_releases.py,sha256=uVxsZk239640yxiqlPhfXxZKSsh3858pURKppi9kM5U,821
156
+ web3/scripts/parse_pygeth_version.py,sha256=BZjWOsJmYuFbAnFuB1jec9Rl6z0tJJNFFV38sJvDfGo,416
157
+ web3/scripts/release/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
+ web3/scripts/release/test_package.py,sha256=uYa7qODHE--hQJy6pjjDLjMr0iS426niLzg3nfAL5X8,1500
159
+ web3/utils/__init__.py,sha256=FpwKsCqPgsv64PFSaFuFYmseadMfQj78quw_6Vgq0VQ,1932
160
+ web3/utils/abi.py,sha256=fySnH-9GQKKX7XPiX7ht5tNODvOB8hvaIPRqLctDSmQ,26221
161
+ web3/utils/address.py,sha256=nzPLiWWCG9BqstDeDOcDwEpteJ8im6ywjLHKpd5akhw,1186
162
+ web3/utils/async_exception_handling.py,sha256=A-ItRleyEpmHSpLunNozq_xwVxQlQ0hhGntuKnyfXRo,3163
163
+ web3/utils/caching.py,sha256=bicLHrqlcA9lNW7cZQACN2ZFXsQus5dOd4ZXtZ56JHo,2540
164
+ web3/utils/exception_handling.py,sha256=P3kD-L7EWhcZqjtpNeQNl1v1idWloqt7yhnfO8DrvQ8,2907
165
+ web3/utils/subscriptions.py,sha256=8ul6YU9A7bBmnjrFI4SvKdHA-kgLJZvd87D10dF8ue8,9234
166
+ web3-8.0.0b1.dist-info/licenses/LICENSE,sha256=ENGC4gSn0kYaC_mlaXOEwCKmA6W7Z9MeSemc5O2k-h0,1095
167
+ web3-8.0.0b1.dist-info/METADATA,sha256=QQCONlNI8QWVI3genTKwyXKuv2Cq3_bdihfTCThjmnM,5662
168
+ web3-8.0.0b1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
169
+ web3-8.0.0b1.dist-info/top_level.txt,sha256=iwupuJh7wgypXrpk_awszyri3TahRr5vxSphNyvt1bU,9
170
+ web3-8.0.0b1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.10.2)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
ens/specs/.DS_Store DELETED
Binary file