web3 7.0.0b7__tar.gz → 7.0.0b9__tar.gz

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 (357) hide show
  1. {web3-7.0.0b7/web3.egg-info → web3-7.0.0b9}/PKG-INFO +14 -8
  2. {web3-7.0.0b7 → web3-7.0.0b9}/README.md +7 -3
  3. {web3-7.0.0b7 → web3-7.0.0b9}/ens/async_ens.py +16 -7
  4. {web3-7.0.0b7 → web3-7.0.0b9}/ens/base_ens.py +3 -1
  5. {web3-7.0.0b7 → web3-7.0.0b9}/ens/exceptions.py +2 -7
  6. {web3-7.0.0b7 → web3-7.0.0b9}/ens/utils.py +0 -17
  7. {web3-7.0.0b7 → web3-7.0.0b9}/pyproject.toml +0 -1
  8. {web3-7.0.0b7 → web3-7.0.0b9}/setup.py +7 -5
  9. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_attributes.py +2 -2
  10. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_call_interface.py +15 -15
  11. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_class_construction.py +2 -2
  12. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_constructor_encoding.py +7 -7
  13. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_method_abi_encoding.py +2 -2
  14. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_method_to_argument_matching.py +18 -17
  15. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_extracting_event_data.py +7 -7
  16. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_extracting_event_data_old.py +2 -2
  17. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_transactions.py +2 -6
  18. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/manager/test_response_formatters.py +13 -1
  19. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/method-class/test_method.py +9 -9
  20. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_websocket_provider.py +14 -0
  21. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/test_library_files.py +1 -1
  22. web3-7.0.0b9/tests/core/utilities/test_abi.py +701 -0
  23. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_abi_named_tree.py +9 -5
  24. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_http_session_manager.py +68 -2
  25. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_method_formatters.py +44 -0
  26. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/conftest.py +11 -0
  27. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/test_ethereum_tester.py +8 -8
  28. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/abi.py +100 -257
  29. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/compat/__init__.py +1 -0
  30. web3-7.0.0b9/web3/_utils/contracts.py +381 -0
  31. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/encoding.py +4 -5
  32. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/events.py +28 -33
  33. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/fee_utils.py +2 -2
  34. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/filters.py +2 -5
  35. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/http_session_manager.py +30 -7
  36. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/method_formatters.py +21 -3
  37. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/eth_module.py +61 -39
  38. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/module_testing_utils.py +51 -10
  39. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/persistent_connection_provider.py +46 -16
  40. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/web3_module.py +8 -8
  41. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/normalizers.py +10 -8
  42. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/validation.py +5 -7
  43. {web3-7.0.0b7 → web3-7.0.0b9}/web3/contract/async_contract.py +18 -17
  44. {web3-7.0.0b7 → web3-7.0.0b9}/web3/contract/base_contract.py +116 -80
  45. {web3-7.0.0b7 → web3-7.0.0b9}/web3/contract/contract.py +16 -17
  46. {web3-7.0.0b7 → web3-7.0.0b9}/web3/contract/utils.py +86 -55
  47. {web3-7.0.0b7 → web3-7.0.0b9}/web3/eth/async_eth.py +1 -2
  48. {web3-7.0.0b7 → web3-7.0.0b9}/web3/eth/eth.py +1 -2
  49. {web3-7.0.0b7 → web3-7.0.0b9}/web3/exceptions.py +28 -9
  50. {web3-7.0.0b7 → web3-7.0.0b9}/web3/gas_strategies/time_based.py +4 -0
  51. {web3-7.0.0b7 → web3-7.0.0b9}/web3/manager.py +68 -23
  52. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/filter.py +3 -3
  53. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/signing.py +6 -1
  54. {web3-7.0.0b7 → web3-7.0.0b9}/web3/module.py +1 -1
  55. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/persistent/async_ipc.py +34 -79
  56. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/persistent/persistent.py +76 -7
  57. web3-7.0.0b9/web3/providers/persistent/persistent_connection.py +84 -0
  58. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/persistent/websocket.py +19 -59
  59. {web3-7.0.0b7 → web3-7.0.0b9}/web3/types.py +5 -45
  60. web3-7.0.0b9/web3/utils/__init__.py +72 -0
  61. web3-7.0.0b9/web3/utils/abi.py +586 -0
  62. {web3-7.0.0b7 → web3-7.0.0b9}/web3/utils/caching.py +24 -0
  63. {web3-7.0.0b7 → web3-7.0.0b9/web3.egg-info}/PKG-INFO +14 -8
  64. {web3-7.0.0b7 → web3-7.0.0b9}/web3.egg-info/SOURCES.txt +1 -10
  65. {web3-7.0.0b7 → web3-7.0.0b9}/web3.egg-info/requires.txt +6 -4
  66. web3-7.0.0b7/tests/.DS_Store +0 -0
  67. web3-7.0.0b7/tests/core/contracts/test_args_and_kwargs_merger.py +0 -109
  68. web3-7.0.0b7/tests/core/utilities/test_abi.py +0 -383
  69. web3-7.0.0b7/tests/core/utilities/test_abi_filter_by_abi_name.py +0 -73
  70. web3-7.0.0b7/tests/integration/.DS_Store +0 -0
  71. web3-7.0.0b7/web3/_utils/contracts.py +0 -470
  72. web3-7.0.0b7/web3/providers/persistent/persistent_connection.py +0 -42
  73. web3-7.0.0b7/web3/tools/benchmark/__init__.py +0 -0
  74. web3-7.0.0b7/web3/tools/benchmark/main.py +0 -190
  75. web3-7.0.0b7/web3/tools/benchmark/node.py +0 -120
  76. web3-7.0.0b7/web3/tools/benchmark/reporting.py +0 -39
  77. web3-7.0.0b7/web3/tools/benchmark/utils.py +0 -69
  78. web3-7.0.0b7/web3/utils/__init__.py +0 -28
  79. web3-7.0.0b7/web3/utils/abi.py +0 -21
  80. {web3-7.0.0b7 → web3-7.0.0b9}/LICENSE +0 -0
  81. {web3-7.0.0b7 → web3-7.0.0b9}/MANIFEST.in +0 -0
  82. {web3-7.0.0b7 → web3-7.0.0b9}/ens/__init__.py +0 -0
  83. {web3-7.0.0b7 → web3-7.0.0b9}/ens/_normalization.py +0 -0
  84. {web3-7.0.0b7 → web3-7.0.0b9}/ens/abis.py +0 -0
  85. {web3-7.0.0b7 → web3-7.0.0b9}/ens/auto.py +0 -0
  86. {web3-7.0.0b7 → web3-7.0.0b9}/ens/constants.py +0 -0
  87. {web3-7.0.0b7 → web3-7.0.0b9}/ens/contract_data.py +0 -0
  88. {web3-7.0.0b7 → web3-7.0.0b9}/ens/ens.py +0 -0
  89. {web3-7.0.0b7 → web3-7.0.0b9}/ens/specs/nf.json +0 -0
  90. {web3-7.0.0b7 → web3-7.0.0b9}/ens/specs/normalization_spec.json +0 -0
  91. {web3-7.0.0b7 → web3-7.0.0b9}/setup.cfg +0 -0
  92. {web3-7.0.0b7 → web3-7.0.0b9}/tests/__init__.py +0 -0
  93. {web3-7.0.0b7 → web3-7.0.0b9}/tests/beacon/test_async_beacon.py +0 -0
  94. {web3-7.0.0b7 → web3-7.0.0b9}/tests/beacon/test_beacon.py +0 -0
  95. {web3-7.0.0b7 → web3-7.0.0b9}/tests/conftest.py +0 -0
  96. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/admin-module/test_admin_addPeer.py +0 -0
  97. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/admin-module/test_admin_nodeInfo.py +0 -0
  98. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/admin-module/test_admin_peers.py +0 -0
  99. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/block-utils/test_select_method_for_block_identifier.py +0 -0
  100. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/caching-utils/test_generate_cache_key.py +0 -0
  101. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/caching-utils/test_request_caching.py +0 -0
  102. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/conftest.py +0 -0
  103. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/conftest.py +0 -0
  104. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_ambiguous_functions.py +0 -0
  105. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_build_transaction.py +0 -0
  106. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_caller_interface.py +0 -0
  107. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_constructor.py +0 -0
  108. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_deployment.py +0 -0
  109. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_estimate_gas.py +0 -0
  110. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_events_build_filter.py +0 -0
  111. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_example.py +0 -0
  112. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_init.py +0 -0
  113. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_method_abi_decoding.py +0 -0
  114. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_panic_errors.py +0 -0
  115. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_transact_interface.py +0 -0
  116. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_contract_util_functions.py +0 -0
  117. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/test_offchain_lookup.py +0 -0
  118. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/contracts/utils.py +0 -0
  119. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/datastructures/test_datastructures.py +0 -0
  120. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/empty-object/test_empty_object_is_falsy.py +0 -0
  121. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/conftest.py +0 -0
  122. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_accounts.py +0 -0
  123. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_block_api.py +0 -0
  124. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_default_account_api.py +0 -0
  125. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_eth_contract.py +0 -0
  126. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_eth_fee_history.py +0 -0
  127. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_eth_filter.py +0 -0
  128. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_eth_properties.py +0 -0
  129. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_gas_pricing.py +0 -0
  130. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-module/test_poa.py +0 -0
  131. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/eth-tester-api/test_withdrawals.py +0 -0
  132. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/exceptions/test_exceptions.py +0 -0
  133. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/conftest.py +0 -0
  134. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_basic_filter_tests.py +0 -0
  135. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_contract_create_filter_topic_merging.py +0 -0
  136. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_contract_data_filters.py +0 -0
  137. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_contract_get_logs.py +0 -0
  138. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_contract_on_event_filtering.py +0 -0
  139. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_contract_past_event_filtering.py +0 -0
  140. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_contract_topic_filters.py +0 -0
  141. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_existing_filter_instance.py +0 -0
  142. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_filter_against_latest_blocks.py +0 -0
  143. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_filter_against_pending_transactions.py +0 -0
  144. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_filter_against_transaction_logs.py +0 -0
  145. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_filters_against_many_blocks.py +0 -0
  146. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/test_utils_functions.py +0 -0
  147. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/filtering/utils.py +0 -0
  148. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/gas-strategies/test_rpc_gas_pricing_strategies.py +0 -0
  149. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/gas-strategies/test_time_based_gas_price_strategy.py +0 -0
  150. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/manager/conftest.py +0 -0
  151. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/manager/test_default_middlewares.py +0 -0
  152. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/manager/test_middleware_can_be_stateful.py +0 -0
  153. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/manager/test_middleware_onion_api.py +0 -0
  154. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/manager/test_provider_property.py +0 -0
  155. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/manager/test_provider_request_wrapping.py +0 -0
  156. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/method-class/test_result_formatters.py +0 -0
  157. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/middleware/test_attrdict_middleware.py +0 -0
  158. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/middleware/test_eth_tester_middleware.py +0 -0
  159. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/middleware/test_filter_middleware.py +0 -0
  160. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/middleware/test_formatting_middleware.py +0 -0
  161. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/middleware/test_gas_price_strategy.py +0 -0
  162. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/middleware/test_name_to_address_middleware.py +0 -0
  163. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/middleware/test_stalecheck.py +0 -0
  164. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/middleware/test_transaction_signing.py +0 -0
  165. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/module-class/test_module.py +0 -0
  166. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_async_http_provider.py +0 -0
  167. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_async_ipc_provider.py +0 -0
  168. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_async_tester_provider.py +0 -0
  169. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_auto_provider.py +0 -0
  170. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_base_provider.py +0 -0
  171. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_http_provider.py +0 -0
  172. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_http_request_retry.py +0 -0
  173. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_ipc_provider.py +0 -0
  174. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_legacy_websocket_provider.py +0 -0
  175. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/providers/test_tester_provider.py +0 -0
  176. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/testing-module/test_testing_mine.py +0 -0
  177. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/testing-module/test_testing_snapshot_and_revert.py +0 -0
  178. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/testing-module/test_testing_timeTravel.py +0 -0
  179. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/__init__.py +0 -0
  180. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/conftest.py +0 -0
  181. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_abi_filtering_by_argument_name.py +0 -0
  182. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_abi_is_encodable.py +0 -0
  183. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_address.py +0 -0
  184. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_async_transaction.py +0 -0
  185. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_attach_modules.py +0 -0
  186. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_attributedict.py +0 -0
  187. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_caching_utils.py +0 -0
  188. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_construct_event_data_set.py +0 -0
  189. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_construct_event_filter_params.py +0 -0
  190. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_construct_event_topics.py +0 -0
  191. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_datatypes.py +0 -0
  192. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_decorators.py +0 -0
  193. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_encoding.py +0 -0
  194. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_event_filter_builder.py +0 -0
  195. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_event_interface.py +0 -0
  196. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_fee_utils.py +0 -0
  197. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_formatters.py +0 -0
  198. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_is_predefined_block_number.py +0 -0
  199. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_is_probably_enum.py +0 -0
  200. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_is_recognized_type.py +0 -0
  201. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_math.py +0 -0
  202. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_prepare_transaction_replacement.py +0 -0
  203. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_select_filter_method.py +0 -0
  204. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_threads.py +0 -0
  205. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_valid_transaction_params.py +0 -0
  206. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/utilities/test_validation.py +0 -0
  207. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_api.py +0 -0
  208. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_attach_modules.py +0 -0
  209. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_client_version.py +0 -0
  210. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_conversions.py +0 -0
  211. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_import_and_version.py +0 -0
  212. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_keccak.py +0 -0
  213. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_providers.py +0 -0
  214. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_strict_bytes_type_checking.py +0 -0
  215. {web3-7.0.0b7 → web3-7.0.0b9}/tests/core/web3-module/test_web3_inheritance.py +0 -0
  216. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/conftest.py +0 -0
  217. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/normalization/normalization_tests.json +0 -0
  218. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/normalization/test_normalize_name_ensip15.py +0 -0
  219. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_ens.py +0 -0
  220. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_get_registry.py +0 -0
  221. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_get_text.py +0 -0
  222. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_nameprep.py +0 -0
  223. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_offchain_resolution.py +0 -0
  224. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_setup_address.py +0 -0
  225. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_setup_name.py +0 -0
  226. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_utils.py +0 -0
  227. {web3-7.0.0b7 → web3-7.0.0b9}/tests/ens/test_wildcard_resolution.py +0 -0
  228. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/README.md +0 -0
  229. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/common.py +0 -0
  230. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/generate_fixtures/common.py +0 -0
  231. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/generate_fixtures/go_ethereum.py +0 -0
  232. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/geth-1.14.5-fixture.zip +0 -0
  233. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/__init__.py +0 -0
  234. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/common.py +0 -0
  235. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/conftest.py +0 -0
  236. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/test_goethereum_http.py +0 -0
  237. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/test_goethereum_ipc.py +0 -0
  238. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/test_goethereum_legacy_ws.py +0 -0
  239. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/test_goethereum_ws/__init__.py +0 -0
  240. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/test_goethereum_ws/conftest.py +0 -0
  241. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/test_goethereum_ws/test_async_await_w3.py +0 -0
  242. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/test_goethereum_ws/test_async_ctx_manager_w3.py +0 -0
  243. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/test_goethereum_ws/test_async_iterator_w3.py +0 -0
  244. {web3-7.0.0b7 → web3-7.0.0b9}/tests/integration/go_ethereum/utils.py +0 -0
  245. {web3-7.0.0b7 → web3-7.0.0b9}/tests/utils.py +0 -0
  246. {web3-7.0.0b7 → web3-7.0.0b9}/web3/__init__.py +0 -0
  247. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/__init__.py +0 -0
  248. /web3-7.0.0b7/web3/_utils/function_identifiers.py → /web3-7.0.0b9/web3/_utils/abi_element_identifiers.py +0 -0
  249. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/async_caching.py +0 -0
  250. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/async_transactions.py +0 -0
  251. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/batching.py +0 -0
  252. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/blocks.py +0 -0
  253. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/caching.py +0 -0
  254. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/__init__.py +0 -0
  255. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/compile_contracts.py +0 -0
  256. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/__init__.py +0 -0
  257. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/_custom_contract_data.py +0 -0
  258. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/arrays_contract.py +0 -0
  259. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/bytes_contracts.py +0 -0
  260. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/constructor_contracts.py +0 -0
  261. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/contract_caller_tester.py +0 -0
  262. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/emitter_contract.py +0 -0
  263. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/event_contracts.py +0 -0
  264. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/extended_resolver.py +0 -0
  265. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/fallback_function_contract.py +0 -0
  266. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +0 -0
  267. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/math_contract.py +0 -0
  268. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/offchain_lookup.py +0 -0
  269. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/offchain_resolver.py +0 -0
  270. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/panic_errors_contract.py +0 -0
  271. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/payable_tester.py +0 -0
  272. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/receive_function_contracts.py +0 -0
  273. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/reflector_contracts.py +0 -0
  274. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/revert_contract.py +0 -0
  275. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/simple_resolver.py +0 -0
  276. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/storage_contract.py +0 -0
  277. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/string_contract.py +0 -0
  278. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/contract_sources/contract_data/tuple_contracts.py +0 -0
  279. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/datatypes.py +0 -0
  280. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/decorators.py +0 -0
  281. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/empty.py +0 -0
  282. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/ens.py +0 -0
  283. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/error_formatters_utils.py +0 -0
  284. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/formatters.py +0 -0
  285. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/http.py +0 -0
  286. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/hypothesis.py +0 -0
  287. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/math.py +0 -0
  288. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module.py +0 -0
  289. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/__init__.py +0 -0
  290. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/go_ethereum_admin_module.py +0 -0
  291. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/go_ethereum_txpool_module.py +0 -0
  292. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/net_module.py +0 -0
  293. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/module_testing/utils.py +0 -0
  294. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/rpc_abi.py +0 -0
  295. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/threads.py +0 -0
  296. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/transactions.py +0 -0
  297. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/type_conversion.py +0 -0
  298. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/utility_methods.py +0 -0
  299. {web3-7.0.0b7 → web3-7.0.0b9}/web3/_utils/windows.py +0 -0
  300. {web3-7.0.0b7 → web3-7.0.0b9}/web3/auto/__init__.py +0 -0
  301. {web3-7.0.0b7 → web3-7.0.0b9}/web3/auto/gethdev.py +0 -0
  302. {web3-7.0.0b7 → web3-7.0.0b9}/web3/beacon/__init__.py +0 -0
  303. {web3-7.0.0b7 → web3-7.0.0b9}/web3/beacon/api_endpoints.py +0 -0
  304. {web3-7.0.0b7 → web3-7.0.0b9}/web3/beacon/async_beacon.py +0 -0
  305. {web3-7.0.0b7 → web3-7.0.0b9}/web3/beacon/beacon.py +0 -0
  306. {web3-7.0.0b7 → web3-7.0.0b9}/web3/constants.py +0 -0
  307. {web3-7.0.0b7 → web3-7.0.0b9}/web3/contract/__init__.py +0 -0
  308. {web3-7.0.0b7 → web3-7.0.0b9}/web3/datastructures.py +0 -0
  309. {web3-7.0.0b7 → web3-7.0.0b9}/web3/eth/__init__.py +0 -0
  310. {web3-7.0.0b7 → web3-7.0.0b9}/web3/eth/base_eth.py +0 -0
  311. {web3-7.0.0b7 → web3-7.0.0b9}/web3/gas_strategies/__init__.py +0 -0
  312. {web3-7.0.0b7 → web3-7.0.0b9}/web3/gas_strategies/rpc.py +0 -0
  313. {web3-7.0.0b7 → web3-7.0.0b9}/web3/geth.py +0 -0
  314. {web3-7.0.0b7 → web3-7.0.0b9}/web3/logs.py +0 -0
  315. {web3-7.0.0b7 → web3-7.0.0b9}/web3/main.py +0 -0
  316. {web3-7.0.0b7 → web3-7.0.0b9}/web3/method.py +0 -0
  317. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/__init__.py +0 -0
  318. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/attrdict.py +0 -0
  319. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/base.py +0 -0
  320. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/buffered_gas_estimate.py +0 -0
  321. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/formatting.py +0 -0
  322. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/gas_price_strategy.py +0 -0
  323. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/names.py +0 -0
  324. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/proof_of_authority.py +0 -0
  325. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/pythonic.py +0 -0
  326. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/stalecheck.py +0 -0
  327. {web3-7.0.0b7 → web3-7.0.0b9}/web3/middleware/validation.py +0 -0
  328. {web3-7.0.0b7 → web3-7.0.0b9}/web3/net.py +0 -0
  329. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/__init__.py +0 -0
  330. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/async_base.py +0 -0
  331. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/auto.py +0 -0
  332. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/base.py +0 -0
  333. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/eth_tester/__init__.py +0 -0
  334. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/eth_tester/defaults.py +0 -0
  335. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/eth_tester/main.py +0 -0
  336. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/eth_tester/middleware.py +0 -0
  337. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/ipc.py +0 -0
  338. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/legacy_websocket.py +0 -0
  339. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/persistent/__init__.py +0 -0
  340. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/persistent/request_processor.py +0 -0
  341. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/persistent/utils.py +0 -0
  342. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/rpc/__init__.py +0 -0
  343. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/rpc/async_rpc.py +0 -0
  344. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/rpc/rpc.py +0 -0
  345. {web3-7.0.0b7 → web3-7.0.0b9}/web3/providers/rpc/utils.py +0 -0
  346. {web3-7.0.0b7 → web3-7.0.0b9}/web3/py.typed +0 -0
  347. {web3-7.0.0b7 → web3-7.0.0b9}/web3/scripts/__init__.py +0 -0
  348. {web3-7.0.0b7 → web3-7.0.0b9}/web3/scripts/release/__init__.py +0 -0
  349. {web3-7.0.0b7 → web3-7.0.0b9}/web3/scripts/release/test_package.py +0 -0
  350. {web3-7.0.0b7 → web3-7.0.0b9}/web3/testing.py +0 -0
  351. {web3-7.0.0b7 → web3-7.0.0b9}/web3/tracing.py +0 -0
  352. {web3-7.0.0b7 → web3-7.0.0b9}/web3/utils/address.py +0 -0
  353. {web3-7.0.0b7 → web3-7.0.0b9}/web3/utils/async_exception_handling.py +0 -0
  354. {web3-7.0.0b7 → web3-7.0.0b9}/web3/utils/exception_handling.py +0 -0
  355. {web3-7.0.0b7 → web3-7.0.0b9}/web3.egg-info/dependency_links.txt +0 -0
  356. {web3-7.0.0b7 → web3-7.0.0b9}/web3.egg-info/not-zip-safe +0 -0
  357. {web3-7.0.0b7 → web3-7.0.0b9}/web3.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: web3
3
- Version: 7.0.0b7
3
+ Version: 7.0.0b9
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,15 +22,16 @@ Description-Content-Type: text/markdown
22
22
  License-File: LICENSE
23
23
  Requires-Dist: aiohttp>=3.7.4.post0
24
24
  Requires-Dist: eth-abi>=5.0.1
25
- Requires-Dist: eth-account>=0.12.2
25
+ Requires-Dist: eth-account>=0.13.1
26
26
  Requires-Dist: eth-hash[pycryptodome]>=0.5.1
27
- Requires-Dist: eth-typing>=4.0.0
28
- Requires-Dist: eth-utils>=4.0.0
27
+ Requires-Dist: eth-typing>=5.0.0b3
28
+ Requires-Dist: eth-utils>=5.0.0b1
29
29
  Requires-Dist: hexbytes>=1.2.0
30
30
  Requires-Dist: pydantic>=2.4.0
31
31
  Requires-Dist: pywin32>=223; platform_system == "Windows"
32
- Requires-Dist: requests>=2.16.0
32
+ Requires-Dist: requests>=2.23.0
33
33
  Requires-Dist: typing-extensions>=4.0.1
34
+ Requires-Dist: types-requests>=2.0.0
34
35
  Requires-Dist: websockets>=10.0.0
35
36
  Requires-Dist: pyunormalize>=15.0.0
36
37
  Provides-Extra: dev
@@ -39,6 +40,7 @@ Requires-Dist: bumpversion>=0.5.3; extra == "dev"
39
40
  Requires-Dist: flaky>=3.7.0; extra == "dev"
40
41
  Requires-Dist: hypothesis>=3.31.2; extra == "dev"
41
42
  Requires-Dist: ipython; extra == "dev"
43
+ Requires-Dist: mypy==1.10.0; extra == "dev"
42
44
  Requires-Dist: pre-commit>=3.4.0; extra == "dev"
43
45
  Requires-Dist: pytest-asyncio<0.23,>=0.21.2; extra == "dev"
44
46
  Requires-Dist: pytest-mock>=1.10; extra == "dev"
@@ -80,7 +82,9 @@ Requires-Dist: pytest>=7.0.0; extra == "test"
80
82
  [![Python versions](https://img.shields.io/pypi/pyversions/web3.svg)](https://pypi.python.org/pypi/web3)
81
83
  [![Docs build](https://readthedocs.org/projects/web3py/badge/?version=latest)](https://web3py.readthedocs.io/en/latest/?badge=latest)
82
84
 
83
- A Python library for interacting with Ethereum.
85
+ ## A Python Library for Interacting with Ethereum
86
+
87
+ 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.
84
88
 
85
89
  - Python 3.8+ support
86
90
 
@@ -95,7 +99,7 @@ ______________________________________________________________________
95
99
 
96
100
  For additional guides, examples, and APIs, see the [documentation](https://web3py.readthedocs.io/en/latest/).
97
101
 
98
- ## Want to help?
102
+ ## Want to Help?
99
103
 
100
104
  Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our
101
105
  guidelines for [contributing](https://web3py.readthedocs.io/en/latest/contributing.html),
@@ -104,4 +108,6 @@ then check out issues that are labeled
104
108
 
105
109
  ______________________________________________________________________
106
110
 
107
- #### Questions on implementation or usage? Join the conversation on [discord](https://discord.gg/GHryRvPB84).
111
+ ## Questions on Implementation or Usage?
112
+
113
+ Join the conversation in the Ethereum Python Community [Discord](https://discord.gg/GHryRvPB84).
@@ -6,7 +6,9 @@
6
6
  [![Python versions](https://img.shields.io/pypi/pyversions/web3.svg)](https://pypi.python.org/pypi/web3)
7
7
  [![Docs build](https://readthedocs.org/projects/web3py/badge/?version=latest)](https://web3py.readthedocs.io/en/latest/?badge=latest)
8
8
 
9
- A Python library for interacting with Ethereum.
9
+ ## A Python Library for Interacting with Ethereum
10
+
11
+ 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.
10
12
 
11
13
  - Python 3.8+ support
12
14
 
@@ -21,7 +23,7 @@ ______________________________________________________________________
21
23
 
22
24
  For additional guides, examples, and APIs, see the [documentation](https://web3py.readthedocs.io/en/latest/).
23
25
 
24
- ## Want to help?
26
+ ## Want to Help?
25
27
 
26
28
  Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our
27
29
  guidelines for [contributing](https://web3py.readthedocs.io/en/latest/contributing.html),
@@ -30,4 +32,6 @@ then check out issues that are labeled
30
32
 
31
33
  ______________________________________________________________________
32
34
 
33
- #### Questions on implementation or usage? Join the conversation on [discord](https://discord.gg/GHryRvPB84).
35
+ ## Questions on Implementation or Usage?
36
+
37
+ Join the conversation in the Ethereum Python Community [Discord](https://discord.gg/GHryRvPB84).
@@ -4,6 +4,7 @@ from copy import (
4
4
  from typing import (
5
5
  TYPE_CHECKING,
6
6
  Any,
7
+ Coroutine,
7
8
  Optional,
8
9
  Sequence,
9
10
  Tuple,
@@ -469,9 +470,13 @@ class AsyncENS(BaseENS):
469
470
  resolver_addr = await self.address("resolver.eth")
470
471
  namehash = raw_name_to_hash(name)
471
472
  if await self.ens.caller.resolver(namehash) != resolver_addr:
472
- await self.ens.functions.setResolver(namehash, resolver_addr).transact(
473
- transact
473
+ coro = cast(
474
+ Coroutine[Any, Any, HexBytes],
475
+ self.ens.functions.setResolver(namehash, resolver_addr).transact(
476
+ transact
477
+ ),
474
478
  )
479
+ await coro
475
480
  return cast("AsyncContract", self._resolver_contract(address=resolver_addr))
476
481
 
477
482
  async def _resolve(
@@ -553,11 +558,15 @@ class AsyncENS(BaseENS):
553
558
  transact = deepcopy(transact)
554
559
  transact["from"] = old_owner or owner
555
560
  for label in reversed(unowned):
556
- await self.ens.functions.setSubnodeOwner(
557
- raw_name_to_hash(owned),
558
- label_to_hash(label),
559
- owner,
560
- ).transact(transact)
561
+ coro = cast(
562
+ Coroutine[Any, Any, HexBytes],
563
+ self.ens.functions.setSubnodeOwner(
564
+ raw_name_to_hash(owned),
565
+ label_to_hash(label),
566
+ owner,
567
+ ).transact(transact),
568
+ )
569
+ await coro
561
570
  owned = f"{label}.{owned}"
562
571
 
563
572
  async def _setup_reverse(
@@ -11,13 +11,15 @@ from typing import (
11
11
  from eth_typing import (
12
12
  ChecksumAddress,
13
13
  )
14
+ from eth_utils.abi import (
15
+ get_abi_output_types,
16
+ )
14
17
  from hexbytes import (
15
18
  HexBytes,
16
19
  )
17
20
 
18
21
  from .utils import (
19
22
  address_to_reverse_domain,
20
- get_abi_output_types,
21
23
  is_valid_name,
22
24
  label_to_hash,
23
25
  normalize_name,
@@ -1,6 +1,3 @@
1
- from eth_utils import (
2
- ValidationError,
3
- )
4
1
  import idna
5
2
 
6
3
 
@@ -32,8 +29,7 @@ class AddressMismatch(ENSException):
32
29
  """
33
30
 
34
31
 
35
- # type ignored because subclassing IDNAError which has type Any
36
- class InvalidName(idna.IDNAError, ENSException): # type: ignore[misc]
32
+ class InvalidName(idna.IDNAError, ENSException):
37
33
  """
38
34
  Raised if the provided name does not meet the normalization
39
35
  standards specified in `ENSIP-15
@@ -104,8 +100,7 @@ class UnderfundedBid(ENSException):
104
100
  """
105
101
 
106
102
 
107
- # type ignored because subclassing ValidationError which has type Any
108
- class ENSValidationError(ENSException, ValidationError): # type: ignore[misc]
103
+ class ENSValidationError(ENSException):
109
104
  """
110
105
  Raised if there is a validation error
111
106
  """
@@ -6,8 +6,6 @@ from typing import (
6
6
  TYPE_CHECKING,
7
7
  Any,
8
8
  Collection,
9
- Dict,
10
- List,
11
9
  Optional,
12
10
  Sequence,
13
11
  Tuple,
@@ -28,9 +26,6 @@ from eth_utils import (
28
26
  to_bytes,
29
27
  to_normalized_address,
30
28
  )
31
- from eth_utils.abi import (
32
- collapse_if_tuple,
33
- )
34
29
  from hexbytes import (
35
30
  HexBytes,
36
31
  )
@@ -68,9 +63,6 @@ if TYPE_CHECKING:
68
63
  AsyncBaseProvider,
69
64
  BaseProvider,
70
65
  )
71
- from web3.types import ( # noqa: F401
72
- ABIFunction,
73
- )
74
66
 
75
67
 
76
68
  def Web3() -> Type["_Web3"]:
@@ -293,15 +285,6 @@ def is_valid_ens_name(ens_name: str) -> bool:
293
285
  return True
294
286
 
295
287
 
296
- # borrowed from similar method at `web3._utils.abi` due to circular dependency
297
- def get_abi_output_types(abi: "ABIFunction") -> List[str]:
298
- return (
299
- []
300
- if abi["type"] == "fallback"
301
- else [collapse_if_tuple(cast(Dict[str, Any], arg)) for arg in abi["outputs"]]
302
- )
303
-
304
-
305
288
  # -- async -- #
306
289
 
307
290
 
@@ -32,7 +32,6 @@ warn_return_any = false
32
32
  warn_unused_configs = true
33
33
  warn_unused_ignores = true
34
34
 
35
-
36
35
  [tool.pydocstyle]
37
36
  # All error codes found here:
38
37
  # http://www.pydocstyle.org/en/3.0.0/error_codes.html
@@ -11,6 +11,7 @@ extras_require = {
11
11
  "flaky>=3.7.0",
12
12
  "hypothesis>=3.31.2",
13
13
  "ipython",
14
+ "mypy==1.10.0",
14
15
  "pre-commit>=3.4.0",
15
16
  "pytest-asyncio>=0.21.2,<0.23",
16
17
  "pytest-mock>=1.10",
@@ -51,7 +52,7 @@ with open("./README.md") as readme:
51
52
  setup(
52
53
  name="web3",
53
54
  # *IMPORTANT*: Don't manually change the version here. Use `make bump`, as described in readme
54
- version="7.0.0-beta.7",
55
+ version="7.0.0-beta.9",
55
56
  description="""web3: A Python library for interacting with Ethereum""",
56
57
  long_description=long_description,
57
58
  long_description_content_type="text/markdown",
@@ -62,15 +63,16 @@ setup(
62
63
  install_requires=[
63
64
  "aiohttp>=3.7.4.post0",
64
65
  "eth-abi>=5.0.1",
65
- "eth-account>=0.12.2",
66
+ "eth-account>=0.13.1",
66
67
  "eth-hash[pycryptodome]>=0.5.1",
67
- "eth-typing>=4.0.0",
68
- "eth-utils>=4.0.0",
68
+ "eth-typing>=5.0.0b3",
69
+ "eth-utils>=5.0.0b1",
69
70
  "hexbytes>=1.2.0",
70
71
  "pydantic>=2.4.0",
71
72
  "pywin32>=223;platform_system=='Windows'",
72
- "requests>=2.16.0",
73
+ "requests>=2.23.0",
73
74
  "typing-extensions>=4.0.1",
75
+ "types-requests>=2.0.0",
74
76
  "websockets>=10.0.0",
75
77
  "pyunormalize>=15.0.0",
76
78
  ],
@@ -1,7 +1,7 @@
1
1
  import pytest
2
2
 
3
3
  from web3.exceptions import (
4
- ABIEventFunctionNotFound,
4
+ ABIEventNotFound,
5
5
  ABIFunctionNotFound,
6
6
  )
7
7
 
@@ -22,7 +22,7 @@ def test_getattr(w3, abi, attribute):
22
22
  "attribute,error",
23
23
  (
24
24
  ("functions", ABIFunctionNotFound),
25
- ("events", ABIEventFunctionNotFound),
25
+ ("events", ABIEventNotFound),
26
26
  ("caller", ABIFunctionNotFound),
27
27
  ),
28
28
  )
@@ -37,9 +37,9 @@ from web3.contract.contract import (
37
37
  ContractFunction,
38
38
  )
39
39
  from web3.exceptions import (
40
+ ABIReceiveNotFound,
40
41
  BadFunctionCallOutput,
41
42
  BlockNumberOutOfRange,
42
- FallbackNotFound,
43
43
  InvalidAddress,
44
44
  MismatchedABI,
45
45
  NameNotFound,
@@ -271,7 +271,7 @@ def test_set_byte_array_non_strict(
271
271
  @pytest.mark.parametrize("args", ([""], ["s"]))
272
272
  def test_set_byte_array_with_invalid_args(arrays_contract, transact, args):
273
273
  with pytest.raises(
274
- Web3ValidationError,
274
+ MismatchedABI,
275
275
  match="Could not identify the intended function with name `setByteValue`",
276
276
  ):
277
277
  transact(
@@ -532,7 +532,7 @@ def test_call_receive_fallback_function(
532
532
 
533
533
 
534
534
  def test_call_nonexistent_receive_function(fallback_function_contract):
535
- with pytest.raises(FallbackNotFound, match="No receive function was found"):
535
+ with pytest.raises(ABIReceiveNotFound, match="No receive function was found"):
536
536
  fallback_function_contract.receive.call()
537
537
 
538
538
 
@@ -617,13 +617,13 @@ def test_no_functions_match_identifier(arrays_contract):
617
617
 
618
618
  def test_function_1_match_identifier_wrong_number_of_args(arrays_contract):
619
619
  regex = message_regex + diagnosis_arg_regex
620
- with pytest.raises(Web3ValidationError, match=regex):
620
+ with pytest.raises(MismatchedABI, match=regex):
621
621
  arrays_contract.functions.setBytes32Value().call()
622
622
 
623
623
 
624
624
  def test_function_1_match_identifier_wrong_args_encoding(arrays_contract):
625
625
  regex = message_regex + diagnosis_encoding_regex
626
- with pytest.raises(Web3ValidationError, match=regex):
626
+ with pytest.raises(MismatchedABI, match=regex):
627
627
  arrays_contract.functions.setBytes32Value("dog").call()
628
628
 
629
629
 
@@ -638,7 +638,7 @@ def test_function_1_match_identifier_wrong_args_encoding(arrays_contract):
638
638
  def test_function_multiple_error_diagnoses(w3, arg1, arg2, diagnosis):
639
639
  Contract = w3.eth.contract(abi=MULTIPLE_FUNCTIONS)
640
640
  regex = message_regex + diagnosis
641
- with pytest.raises(Web3ValidationError, match=regex):
641
+ with pytest.raises(MismatchedABI, match=regex):
642
642
  if arg2:
643
643
  Contract.functions.a(arg1, arg2).call()
644
644
  else:
@@ -656,7 +656,7 @@ def test_function_wrong_args_for_tuple_collapses_args_in_message(
656
656
  address,
657
657
  tuple_contract,
658
658
  ):
659
- with pytest.raises(Web3ValidationError) as e:
659
+ with pytest.raises(MismatchedABI) as e:
660
660
  tuple_contract.functions.method(
661
661
  (1, [2, 3], [(4, [True, [False]], [address])])
662
662
  ).call()
@@ -684,7 +684,7 @@ def test_function_wrong_args_for_tuple_collapses_args_in_message(
684
684
  def test_function_wrong_args_for_tuple_collapses_kwargs_in_message(
685
685
  address, tuple_contract
686
686
  ):
687
- with pytest.raises(Web3ValidationError) as e:
687
+ with pytest.raises(MismatchedABI) as e:
688
688
  tuple_contract.functions.method(
689
689
  a=(1, [2, 3], [(4, [True, [False]], [address])]) # noqa: E501
690
690
  ).call()
@@ -790,7 +790,7 @@ def test_invalid_fixed_value_reflections(
790
790
  fixed_reflector_contract, function, value, error
791
791
  ):
792
792
  contract_func = fixed_reflector_contract.functions[function]
793
- with pytest.raises(Web3ValidationError, match=error):
793
+ with pytest.raises(MismatchedABI, match=error):
794
794
  contract_func(value).call({"gas": 420000})
795
795
 
796
796
 
@@ -1419,7 +1419,7 @@ async def test_async_set_byte_array_strict_by_default(
1419
1419
  async def test_async_set_strict_byte_array_with_invalid_args(
1420
1420
  async_arrays_contract, async_transact, args
1421
1421
  ):
1422
- with pytest.raises(Web3ValidationError):
1422
+ with pytest.raises(MismatchedABI):
1423
1423
  await async_transact(
1424
1424
  contract=async_arrays_contract,
1425
1425
  contract_function="setByteValue",
@@ -1719,7 +1719,7 @@ async def test_async_call_receive_fallback_function(
1719
1719
  async def test_async_call_nonexistent_receive_function(
1720
1720
  async_fallback_function_contract,
1721
1721
  ):
1722
- with pytest.raises(FallbackNotFound, match="No receive function was found"):
1722
+ with pytest.raises(ABIReceiveNotFound, match="No receive function was found"):
1723
1723
  await async_fallback_function_contract.receive.call()
1724
1724
 
1725
1725
 
@@ -1786,7 +1786,7 @@ async def test_async_function_1_match_identifier_wrong_number_of_args(
1786
1786
  async_arrays_contract,
1787
1787
  ):
1788
1788
  regex = message_regex + diagnosis_arg_regex
1789
- with pytest.raises(Web3ValidationError, match=regex):
1789
+ with pytest.raises(MismatchedABI, match=regex):
1790
1790
  await async_arrays_contract.functions.setBytes32Value().call()
1791
1791
 
1792
1792
 
@@ -1795,7 +1795,7 @@ async def test_async_function_1_match_identifier_wrong_args_encoding(
1795
1795
  async_arrays_contract,
1796
1796
  ):
1797
1797
  regex = message_regex + diagnosis_encoding_regex
1798
- with pytest.raises(Web3ValidationError, match=regex):
1798
+ with pytest.raises(MismatchedABI, match=regex):
1799
1799
  await async_arrays_contract.functions.setBytes32Value("dog").call()
1800
1800
 
1801
1801
 
@@ -1811,7 +1811,7 @@ async def test_async_function_1_match_identifier_wrong_args_encoding(
1811
1811
  async def test_async_function_multiple_error_diagnoses(async_w3, arg1, arg2, diagnosis):
1812
1812
  Contract = async_w3.eth.contract(abi=MULTIPLE_FUNCTIONS)
1813
1813
  regex = message_regex + diagnosis
1814
- with pytest.raises(Web3ValidationError, match=regex):
1814
+ with pytest.raises(MismatchedABI, match=regex):
1815
1815
  if arg2:
1816
1816
  await Contract.functions.a(arg1, arg2).call()
1817
1817
  else:
@@ -1920,7 +1920,7 @@ async def test_async_invalid_fixed_value_reflections(
1920
1920
  async_fixed_reflector_contract, function, value, error
1921
1921
  ):
1922
1922
  contract_func = async_fixed_reflector_contract.functions[function]
1923
- with pytest.raises(Web3ValidationError, match=error):
1923
+ with pytest.raises(MismatchedABI, match=error):
1924
1924
  await contract_func(value).call({"gas": 420000})
1925
1925
 
1926
1926
 
@@ -9,7 +9,7 @@ from web3.contract import (
9
9
  Contract,
10
10
  )
11
11
  from web3.exceptions import (
12
- FallbackNotFound,
12
+ ABIFallbackNotFound,
13
13
  Web3AttributeError,
14
14
  )
15
15
 
@@ -84,5 +84,5 @@ def test_error_to_call_non_existent_fallback(
84
84
  bytecode=math_contract_bytecode,
85
85
  bytecode_runtime=math_contract_runtime,
86
86
  )
87
- with pytest.raises(FallbackNotFound):
87
+ with pytest.raises(ABIFallbackNotFound):
88
88
  math_contract.fallback.estimate_gas()
@@ -27,15 +27,15 @@ def test_contract_constructor_abi_encoding_with_constructor_with_no_args(
27
27
  @pytest.mark.parametrize(
28
28
  "args,kwargs",
29
29
  (
30
- (None, "kwarg-is-ignored"),
31
- ("arg-is-ignored", None),
30
+ (tuple(), {"kwarg-is-ignored": True}),
31
+ ("arg-is-ignored", {}),
32
32
  ),
33
33
  )
34
34
  def test_contract_error_if_additional_args_are_supplied_with_no_constructor_fn(
35
35
  math_contract_factory, args, kwargs
36
36
  ):
37
37
  with pytest.raises(TypeError, match="Constructor args"):
38
- math_contract_factory._encode_constructor_data(args, kwargs)
38
+ math_contract_factory._encode_constructor_data(*args, **kwargs)
39
39
 
40
40
 
41
41
  @pytest.mark.parametrize(
@@ -53,7 +53,7 @@ def test_error_if_invalid_arguments_supplied(
53
53
  contract_with_constructor_args_factory, arguments
54
54
  ):
55
55
  with pytest.raises(TypeError):
56
- contract_with_constructor_args_factory._encode_constructor_data(arguments)
56
+ contract_with_constructor_args_factory._encode_constructor_data(*arguments)
57
57
 
58
58
 
59
59
  @pytest.mark.parametrize(
@@ -76,7 +76,7 @@ def test_contract_constructor_encoding(
76
76
  bytes_arg,
77
77
  ):
78
78
  deploy_data = contract_with_constructor_args_factory._encode_constructor_data(
79
- [1234, bytes_arg]
79
+ *[1234, bytes_arg]
80
80
  )
81
81
  expected_ending = encode_hex(
82
82
  w3.codec.encode(["uint256", "bytes32"], [1234, bytes_arg])
@@ -98,7 +98,7 @@ def test_contract_constructor_encoding_non_strict(
98
98
  ):
99
99
  deploy_data = (
100
100
  non_strict_contract_with_constructor_args_factory._encode_constructor_data(
101
- [1234, bytes_arg]
101
+ *[1234, bytes_arg]
102
102
  )
103
103
  )
104
104
  encoded_args = "0x00000000000000000000000000000000000000000000000000000000000004d26162636400000000000000000000000000000000000000000000000000000000" # noqa: E501
@@ -126,5 +126,5 @@ def test_contract_constructor_encoding_strict_errors(
126
126
  match="One or more arguments could not be encoded to the necessary ABI type.",
127
127
  ):
128
128
  contract_with_constructor_args_factory._encode_constructor_data(
129
- [1234, bytes_arg]
129
+ *[1234, bytes_arg]
130
130
  )
@@ -5,7 +5,7 @@ from web3 import (
5
5
  constants,
6
6
  )
7
7
  from web3.exceptions import (
8
- Web3ValidationError,
8
+ MismatchedABI,
9
9
  )
10
10
 
11
11
  ABI_A = json.loads(
@@ -145,7 +145,7 @@ def test_contract_abi_encoding_kwargs(w3):
145
145
  )
146
146
  def test_contract_abi_encoding_strict_with_error(w3, arguments):
147
147
  contract = w3.eth.contract(abi=ABI_C)
148
- with pytest.raises(Web3ValidationError):
148
+ with pytest.raises(MismatchedABI):
149
149
  contract.encode_abi("a", arguments, data=None)
150
150
 
151
151
 
@@ -1,15 +1,16 @@
1
1
  import json
2
2
  import pytest
3
3
 
4
- from web3._utils.abi import (
4
+ from eth_utils.abi import (
5
5
  get_abi_input_types,
6
6
  )
7
- from web3._utils.function_identifiers import (
7
+
8
+ from web3._utils.abi_element_identifiers import (
8
9
  FallbackFn,
9
10
  ReceiveFn,
10
11
  )
11
12
  from web3.exceptions import (
12
- Web3ValidationError,
13
+ MismatchedABI,
13
14
  )
14
15
 
15
16
  SINGLE_FN_NO_ARGS = json.loads(
@@ -106,7 +107,7 @@ MULTIPLE_FUNCTIONS = json.loads(
106
107
  def test_finds_single_function_without_args(w3):
107
108
  Contract = w3.eth.contract(abi=SINGLE_FN_NO_ARGS)
108
109
 
109
- abi = Contract._find_matching_fn_abi("a", [])
110
+ abi = Contract._find_matching_fn_abi("a", *[])
110
111
  assert abi["name"] == "a"
111
112
  assert abi["inputs"] == []
112
113
 
@@ -114,7 +115,7 @@ def test_finds_single_function_without_args(w3):
114
115
  def test_finds_single_function_with_args(w3):
115
116
  Contract = w3.eth.contract(abi=SINGLE_FN_ONE_ARG)
116
117
 
117
- abi = Contract._find_matching_fn_abi("a", [1234])
118
+ abi = Contract._find_matching_fn_abi("a", *[1234])
118
119
  assert abi["name"] == "a"
119
120
  assert len(abi["inputs"]) == 1
120
121
  assert abi["inputs"][0]["type"] == "uint256"
@@ -123,22 +124,22 @@ def test_finds_single_function_with_args(w3):
123
124
  def test_finds_fallback_function(w3):
124
125
  Contract = w3.eth.contract(abi=FALLBACK_FUNCTION)
125
126
 
126
- abi = Contract._find_matching_fn_abi(FallbackFn, [])
127
+ abi = Contract._find_matching_fn_abi(FallbackFn, *[])
127
128
  assert abi["type"] == "fallback"
128
129
 
129
130
 
130
131
  def test_finds_receive_function(w3):
131
132
  Contract = w3.eth.contract(abi=RECEIVE_FUNCTION)
132
133
 
133
- abi = Contract._find_matching_fn_abi(ReceiveFn, [])
134
+ abi = Contract._find_matching_fn_abi(ReceiveFn, *[])
134
135
  assert abi["type"] == "receive"
135
136
 
136
137
 
137
138
  def test_error_when_no_function_name_match(w3):
138
139
  Contract = w3.eth.contract(abi=SINGLE_FN_NO_ARGS)
139
140
 
140
- with pytest.raises(Web3ValidationError):
141
- Contract._find_matching_fn_abi("no_function_name", [1234])
141
+ with pytest.raises(MismatchedABI):
142
+ Contract._find_matching_fn_abi("no_function_name", *[1234])
142
143
 
143
144
 
144
145
  @pytest.mark.parametrize(
@@ -159,7 +160,7 @@ def test_finds_function_with_matching_args_non_strict(
159
160
  ):
160
161
  contract = w3_non_strict_abi.eth.contract(abi=MULTIPLE_FUNCTIONS)
161
162
 
162
- abi = contract._find_matching_fn_abi("a", arguments)
163
+ abi = contract._find_matching_fn_abi("a", *arguments)
163
164
  assert abi["name"] == "a"
164
165
  assert len(abi["inputs"]) == len(expected_types)
165
166
  assert get_abi_input_types(abi) == expected_types
@@ -167,23 +168,23 @@ def test_finds_function_with_matching_args_non_strict(
167
168
 
168
169
  def test_finds_function_with_matching_args_strict_type_checking_by_default(w3):
169
170
  contract = w3.eth.contract(abi=MULTIPLE_FUNCTIONS)
170
- with pytest.raises(Web3ValidationError):
171
- contract._find_matching_fn_abi("a", [""])
171
+ with pytest.raises(MismatchedABI):
172
+ contract._find_matching_fn_abi("a", *[""])
172
173
 
173
174
 
174
175
  def test_error_when_duplicate_match(w3):
175
176
  Contract = w3.eth.contract(abi=MULTIPLE_FUNCTIONS)
176
177
 
177
- with pytest.raises(Web3ValidationError):
178
- Contract._find_matching_fn_abi("a", [100])
178
+ with pytest.raises(MismatchedABI):
179
+ Contract._find_matching_fn_abi("a", *[100])
179
180
 
180
181
 
181
182
  @pytest.mark.parametrize("arguments", (["0xf00b47"], [b""], [""], ["00" * 16]))
182
183
  def test_strict_errors_if_type_is_wrong(w3, arguments):
183
184
  Contract = w3.eth.contract(abi=MULTIPLE_FUNCTIONS)
184
185
 
185
- with pytest.raises(Web3ValidationError):
186
- Contract._find_matching_fn_abi("a", arguments)
186
+ with pytest.raises(MismatchedABI):
187
+ Contract._find_matching_fn_abi("a", *arguments)
187
188
 
188
189
 
189
190
  @pytest.mark.parametrize(
@@ -198,7 +199,7 @@ def test_strict_errors_if_type_is_wrong(w3, arguments):
198
199
  def test_strict_finds_function_with_matching_args(w3, arguments, expected_types):
199
200
  Contract = w3.eth.contract(abi=MULTIPLE_FUNCTIONS)
200
201
 
201
- abi = Contract._find_matching_fn_abi("a", arguments)
202
+ abi = Contract._find_matching_fn_abi("a", *arguments)
202
203
  assert abi["name"] == "a"
203
204
  assert len(abi["inputs"]) == len(expected_types)
204
205
  assert get_abi_input_types(abi) == expected_types