web3 7.12.0__tar.gz → 7.12.1__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 (364) hide show
  1. {web3-7.12.0/web3.egg-info → web3-7.12.1}/PKG-INFO +1 -1
  2. web3-7.12.1/ens/specs/.DS_Store +0 -0
  3. {web3-7.12.0 → web3-7.12.1}/pyproject.toml +1 -1
  4. {web3-7.12.0 → web3-7.12.1}/setup.py +1 -1
  5. web3-7.12.1/tests/.DS_Store +0 -0
  6. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_accounts.py +4 -3
  7. web3-7.12.1/tests/ens/.DS_Store +0 -0
  8. web3-7.12.1/tests/integration/.DS_Store +0 -0
  9. web3-7.12.1/tests/integration/geth-1.16.0-fixture.zip +0 -0
  10. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/conftest.py +3 -3
  11. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/test_goethereum_http.py +12 -2
  12. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/test_goethereum_ipc.py +12 -2
  13. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/test_goethereum_legacy_ws.py +2 -2
  14. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/test_goethereum_ws/conftest.py +2 -2
  15. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/eth_module.py +14 -40
  16. {web3-7.12.0 → web3-7.12.1}/web3/manager.py +3 -3
  17. {web3-7.12.0 → web3-7.12.1}/web3/providers/auto.py +28 -6
  18. {web3-7.12.0 → web3-7.12.1}/web3/providers/ipc.py +2 -2
  19. {web3-7.12.0 → web3-7.12.1/web3.egg-info}/PKG-INFO +1 -1
  20. {web3-7.12.0 → web3-7.12.1}/web3.egg-info/SOURCES.txt +5 -1
  21. web3-7.12.0/tests/integration/geth-1.15.11-fixture.zip +0 -0
  22. {web3-7.12.0 → web3-7.12.1}/LICENSE +0 -0
  23. {web3-7.12.0 → web3-7.12.1}/MANIFEST.in +0 -0
  24. {web3-7.12.0 → web3-7.12.1}/README.md +0 -0
  25. {web3-7.12.0 → web3-7.12.1}/ens/__init__.py +0 -0
  26. {web3-7.12.0 → web3-7.12.1}/ens/_normalization.py +0 -0
  27. {web3-7.12.0 → web3-7.12.1}/ens/abis.py +0 -0
  28. {web3-7.12.0 → web3-7.12.1}/ens/async_ens.py +0 -0
  29. {web3-7.12.0 → web3-7.12.1}/ens/auto.py +0 -0
  30. {web3-7.12.0 → web3-7.12.1}/ens/base_ens.py +0 -0
  31. {web3-7.12.0 → web3-7.12.1}/ens/constants.py +0 -0
  32. {web3-7.12.0 → web3-7.12.1}/ens/contract_data.py +0 -0
  33. {web3-7.12.0 → web3-7.12.1}/ens/ens.py +0 -0
  34. {web3-7.12.0 → web3-7.12.1}/ens/exceptions.py +0 -0
  35. {web3-7.12.0 → web3-7.12.1}/ens/specs/nf.json +0 -0
  36. {web3-7.12.0 → web3-7.12.1}/ens/specs/normalization_spec.json +0 -0
  37. {web3-7.12.0 → web3-7.12.1}/ens/utils.py +0 -0
  38. {web3-7.12.0 → web3-7.12.1}/scripts/release/test_package.py +0 -0
  39. {web3-7.12.0 → web3-7.12.1}/setup.cfg +0 -0
  40. {web3-7.12.0 → web3-7.12.1}/tests/__init__.py +0 -0
  41. {web3-7.12.0 → web3-7.12.1}/tests/beacon/test_async_beacon.py +0 -0
  42. {web3-7.12.0 → web3-7.12.1}/tests/beacon/test_beacon.py +0 -0
  43. {web3-7.12.0 → web3-7.12.1}/tests/conftest.py +0 -0
  44. {web3-7.12.0 → web3-7.12.1}/tests/core/admin-module/test_admin_addPeer.py +0 -0
  45. {web3-7.12.0 → web3-7.12.1}/tests/core/admin-module/test_admin_nodeInfo.py +0 -0
  46. {web3-7.12.0 → web3-7.12.1}/tests/core/admin-module/test_admin_peers.py +0 -0
  47. {web3-7.12.0 → web3-7.12.1}/tests/core/block-utils/test_select_method_for_block_identifier.py +0 -0
  48. {web3-7.12.0 → web3-7.12.1}/tests/core/caching-utils/test_generate_cache_key.py +0 -0
  49. {web3-7.12.0 → web3-7.12.1}/tests/core/caching-utils/test_request_caching.py +0 -0
  50. {web3-7.12.0 → web3-7.12.1}/tests/core/conftest.py +0 -0
  51. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/conftest.py +0 -0
  52. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_ambiguous_events.py +0 -0
  53. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_ambiguous_functions.py +0 -0
  54. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_attributes.py +0 -0
  55. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_build_transaction.py +0 -0
  56. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_call_interface.py +0 -0
  57. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_caller_interface.py +0 -0
  58. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_class_construction.py +0 -0
  59. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_constructor.py +0 -0
  60. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_constructor_encoding.py +0 -0
  61. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_deployment.py +0 -0
  62. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_estimate_gas.py +0 -0
  63. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_events.py +0 -0
  64. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_events_build_filter.py +0 -0
  65. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_example.py +0 -0
  66. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_init.py +0 -0
  67. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_method_abi_decoding.py +0 -0
  68. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_method_abi_encoding.py +0 -0
  69. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_method_to_argument_matching.py +0 -0
  70. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_panic_errors.py +0 -0
  71. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_transact_interface.py +0 -0
  72. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_contract_util_functions.py +0 -0
  73. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_extracting_event_data.py +0 -0
  74. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_extracting_event_data_old.py +0 -0
  75. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/test_offchain_lookup.py +0 -0
  76. {web3-7.12.0 → web3-7.12.1}/tests/core/contracts/utils.py +0 -0
  77. {web3-7.12.0 → web3-7.12.1}/tests/core/datastructures/test_datastructures.py +0 -0
  78. {web3-7.12.0 → web3-7.12.1}/tests/core/empty-object/test_empty_object_is_falsy.py +0 -0
  79. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/conftest.py +0 -0
  80. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_block_api.py +0 -0
  81. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_default_account_api.py +0 -0
  82. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_eth_contract.py +0 -0
  83. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_eth_fee_history.py +0 -0
  84. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_eth_filter.py +0 -0
  85. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_eth_properties.py +0 -0
  86. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_gas_pricing.py +0 -0
  87. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_poa.py +0 -0
  88. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-module/test_transactions.py +0 -0
  89. {web3-7.12.0 → web3-7.12.1}/tests/core/eth-tester-api/test_withdrawals.py +0 -0
  90. {web3-7.12.0 → web3-7.12.1}/tests/core/exceptions/test_exceptions.py +0 -0
  91. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/conftest.py +0 -0
  92. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_basic_filter_tests.py +0 -0
  93. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_contract_create_filter_topic_merging.py +0 -0
  94. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_contract_data_filters.py +0 -0
  95. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_contract_get_logs.py +0 -0
  96. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_contract_on_event_filtering.py +0 -0
  97. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_contract_past_event_filtering.py +0 -0
  98. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_contract_topic_filters.py +0 -0
  99. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_existing_filter_instance.py +0 -0
  100. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_filter_against_latest_blocks.py +0 -0
  101. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_filter_against_pending_transactions.py +0 -0
  102. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_filter_against_transaction_logs.py +0 -0
  103. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_filters_against_many_blocks.py +0 -0
  104. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/test_utils_functions.py +0 -0
  105. {web3-7.12.0 → web3-7.12.1}/tests/core/filtering/utils.py +0 -0
  106. {web3-7.12.0 → web3-7.12.1}/tests/core/gas-strategies/test_rpc_gas_pricing_strategies.py +0 -0
  107. {web3-7.12.0 → web3-7.12.1}/tests/core/gas-strategies/test_time_based_gas_price_strategy.py +0 -0
  108. {web3-7.12.0 → web3-7.12.1}/tests/core/manager/conftest.py +0 -0
  109. {web3-7.12.0 → web3-7.12.1}/tests/core/manager/test_default_middlewares.py +0 -0
  110. {web3-7.12.0 → web3-7.12.1}/tests/core/manager/test_middleware_can_be_stateful.py +0 -0
  111. {web3-7.12.0 → web3-7.12.1}/tests/core/manager/test_middleware_onion_api.py +0 -0
  112. {web3-7.12.0 → web3-7.12.1}/tests/core/manager/test_provider_property.py +0 -0
  113. {web3-7.12.0 → web3-7.12.1}/tests/core/manager/test_provider_request_wrapping.py +0 -0
  114. {web3-7.12.0 → web3-7.12.1}/tests/core/manager/test_response_formatters.py +0 -0
  115. {web3-7.12.0 → web3-7.12.1}/tests/core/method-class/test_method.py +0 -0
  116. {web3-7.12.0 → web3-7.12.1}/tests/core/method-class/test_result_formatters.py +0 -0
  117. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_attrdict_middleware.py +0 -0
  118. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_eth_tester_middleware.py +0 -0
  119. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_filter_middleware.py +0 -0
  120. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_formatting_middleware.py +0 -0
  121. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_gas_price_strategy.py +0 -0
  122. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_middleware.py +0 -0
  123. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_name_to_address_middleware.py +0 -0
  124. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_stalecheck.py +0 -0
  125. {web3-7.12.0 → web3-7.12.1}/tests/core/middleware/test_transaction_signing.py +0 -0
  126. {web3-7.12.0 → web3-7.12.1}/tests/core/module-class/test_module.py +0 -0
  127. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_async_http_provider.py +0 -0
  128. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_async_ipc_provider.py +0 -0
  129. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_async_tester_provider.py +0 -0
  130. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_auto_provider.py +0 -0
  131. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_base_provider.py +0 -0
  132. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_http_provider.py +0 -0
  133. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_http_request_retry.py +0 -0
  134. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_ipc_provider.py +0 -0
  135. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_legacy_websocket_provider.py +0 -0
  136. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_provider_init.py +0 -0
  137. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_tester_provider.py +0 -0
  138. {web3-7.12.0 → web3-7.12.1}/tests/core/providers/test_websocket_provider.py +0 -0
  139. {web3-7.12.0 → web3-7.12.1}/tests/core/subscriptions/test_subscription_manager.py +0 -0
  140. {web3-7.12.0 → web3-7.12.1}/tests/core/subscriptions/test_subscriptions.py +0 -0
  141. {web3-7.12.0 → web3-7.12.1}/tests/core/test_library_files.py +0 -0
  142. {web3-7.12.0 → web3-7.12.1}/tests/core/testing-module/test_testing_mine.py +0 -0
  143. {web3-7.12.0 → web3-7.12.1}/tests/core/testing-module/test_testing_snapshot_and_revert.py +0 -0
  144. {web3-7.12.0 → web3-7.12.1}/tests/core/testing-module/test_testing_timeTravel.py +0 -0
  145. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/__init__.py +0 -0
  146. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/conftest.py +0 -0
  147. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_abi.py +0 -0
  148. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_abi_filtering_by_argument_name.py +0 -0
  149. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_abi_is_encodable.py +0 -0
  150. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_abi_named_tree.py +0 -0
  151. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_address.py +0 -0
  152. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_async_transaction.py +0 -0
  153. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_attach_modules.py +0 -0
  154. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_attributedict.py +0 -0
  155. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_caching_utils.py +0 -0
  156. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_construct_event_data_set.py +0 -0
  157. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_construct_event_filter_params.py +0 -0
  158. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_construct_event_topics.py +0 -0
  159. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_datatypes.py +0 -0
  160. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_decorators.py +0 -0
  161. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_encoding.py +0 -0
  162. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_event_filter_builder.py +0 -0
  163. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_event_interface.py +0 -0
  164. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_fee_utils.py +0 -0
  165. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_formatters.py +0 -0
  166. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_http_session_manager.py +0 -0
  167. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_is_predefined_block_number.py +0 -0
  168. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_is_probably_enum.py +0 -0
  169. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_is_recognized_type.py +0 -0
  170. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_math.py +0 -0
  171. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_method_formatters.py +0 -0
  172. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_prepare_transaction_replacement.py +0 -0
  173. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_select_filter_method.py +0 -0
  174. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_threads.py +0 -0
  175. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_valid_transaction_params.py +0 -0
  176. {web3-7.12.0 → web3-7.12.1}/tests/core/utilities/test_validation.py +0 -0
  177. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_api.py +0 -0
  178. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_attach_modules.py +0 -0
  179. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_client_version.py +0 -0
  180. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_conversions.py +0 -0
  181. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_import_and_version.py +0 -0
  182. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_keccak.py +0 -0
  183. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_providers.py +0 -0
  184. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_strict_bytes_type_checking.py +0 -0
  185. {web3-7.12.0 → web3-7.12.1}/tests/core/web3-module/test_web3_inheritance.py +0 -0
  186. {web3-7.12.0 → web3-7.12.1}/tests/ens/conftest.py +0 -0
  187. {web3-7.12.0 → web3-7.12.1}/tests/ens/normalization/normalization_tests.json +0 -0
  188. {web3-7.12.0 → web3-7.12.1}/tests/ens/normalization/test_normalize_name_ensip15.py +0 -0
  189. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_ens.py +0 -0
  190. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_get_registry.py +0 -0
  191. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_get_text.py +0 -0
  192. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_nameprep.py +0 -0
  193. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_offchain_resolution.py +0 -0
  194. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_setup_address.py +0 -0
  195. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_setup_name.py +0 -0
  196. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_utils.py +0 -0
  197. {web3-7.12.0 → web3-7.12.1}/tests/ens/test_wildcard_resolution.py +0 -0
  198. {web3-7.12.0 → web3-7.12.1}/tests/integration/README.md +0 -0
  199. {web3-7.12.0 → web3-7.12.1}/tests/integration/common.py +0 -0
  200. {web3-7.12.0 → web3-7.12.1}/tests/integration/conftest.py +0 -0
  201. {web3-7.12.0 → web3-7.12.1}/tests/integration/generate_fixtures/common.py +0 -0
  202. {web3-7.12.0 → web3-7.12.1}/tests/integration/generate_fixtures/go_ethereum.py +0 -0
  203. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/__init__.py +0 -0
  204. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/common.py +0 -0
  205. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/test_goethereum_ws/__init__.py +0 -0
  206. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/test_goethereum_ws/test_async_await_w3.py +0 -0
  207. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/test_goethereum_ws/test_async_ctx_manager_w3.py +0 -0
  208. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/test_goethereum_ws/test_async_iterator_w3.py +0 -0
  209. {web3-7.12.0 → web3-7.12.1}/tests/integration/go_ethereum/utils.py +0 -0
  210. {web3-7.12.0 → web3-7.12.1}/tests/integration/test_ethereum_tester.py +0 -0
  211. {web3-7.12.0 → web3-7.12.1}/tests/utils.py +0 -0
  212. {web3-7.12.0 → web3-7.12.1}/web3/__init__.py +0 -0
  213. {web3-7.12.0 → web3-7.12.1}/web3/_utils/__init__.py +0 -0
  214. {web3-7.12.0 → web3-7.12.1}/web3/_utils/abi.py +0 -0
  215. {web3-7.12.0 → web3-7.12.1}/web3/_utils/abi_element_identifiers.py +0 -0
  216. {web3-7.12.0 → web3-7.12.1}/web3/_utils/async_caching.py +0 -0
  217. {web3-7.12.0 → web3-7.12.1}/web3/_utils/async_transactions.py +0 -0
  218. {web3-7.12.0 → web3-7.12.1}/web3/_utils/batching.py +0 -0
  219. {web3-7.12.0 → web3-7.12.1}/web3/_utils/blocks.py +0 -0
  220. {web3-7.12.0 → web3-7.12.1}/web3/_utils/caching/__init__.py +0 -0
  221. {web3-7.12.0 → web3-7.12.1}/web3/_utils/caching/caching_utils.py +0 -0
  222. {web3-7.12.0 → web3-7.12.1}/web3/_utils/caching/request_caching_validation.py +0 -0
  223. {web3-7.12.0 → web3-7.12.1}/web3/_utils/compat/__init__.py +0 -0
  224. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/__init__.py +0 -0
  225. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/compile_contracts.py +0 -0
  226. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/__init__.py +0 -0
  227. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/_custom_contract_data.py +0 -0
  228. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/ambiguous_function_contract.py +0 -0
  229. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/arrays_contract.py +0 -0
  230. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/bytes_contracts.py +0 -0
  231. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/constructor_contracts.py +0 -0
  232. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/contract_caller_tester.py +0 -0
  233. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/emitter_contract.py +0 -0
  234. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/event_contracts.py +0 -0
  235. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/extended_resolver.py +0 -0
  236. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/fallback_function_contract.py +0 -0
  237. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +0 -0
  238. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/math_contract.py +0 -0
  239. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/offchain_lookup.py +0 -0
  240. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/offchain_resolver.py +0 -0
  241. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/panic_errors_contract.py +0 -0
  242. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/payable_tester.py +0 -0
  243. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/receive_function_contracts.py +0 -0
  244. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/reflector_contracts.py +0 -0
  245. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/revert_contract.py +0 -0
  246. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/simple_resolver.py +0 -0
  247. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/storage_contract.py +0 -0
  248. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/string_contract.py +0 -0
  249. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contract_sources/contract_data/tuple_contracts.py +0 -0
  250. {web3-7.12.0 → web3-7.12.1}/web3/_utils/contracts.py +0 -0
  251. {web3-7.12.0 → web3-7.12.1}/web3/_utils/datatypes.py +0 -0
  252. {web3-7.12.0 → web3-7.12.1}/web3/_utils/decorators.py +0 -0
  253. {web3-7.12.0 → web3-7.12.1}/web3/_utils/empty.py +0 -0
  254. {web3-7.12.0 → web3-7.12.1}/web3/_utils/encoding.py +0 -0
  255. {web3-7.12.0 → web3-7.12.1}/web3/_utils/ens.py +0 -0
  256. {web3-7.12.0 → web3-7.12.1}/web3/_utils/error_formatters_utils.py +0 -0
  257. {web3-7.12.0 → web3-7.12.1}/web3/_utils/events.py +0 -0
  258. {web3-7.12.0 → web3-7.12.1}/web3/_utils/fee_utils.py +0 -0
  259. {web3-7.12.0 → web3-7.12.1}/web3/_utils/filters.py +0 -0
  260. {web3-7.12.0 → web3-7.12.1}/web3/_utils/formatters.py +0 -0
  261. {web3-7.12.0 → web3-7.12.1}/web3/_utils/http.py +0 -0
  262. {web3-7.12.0 → web3-7.12.1}/web3/_utils/http_session_manager.py +0 -0
  263. {web3-7.12.0 → web3-7.12.1}/web3/_utils/hypothesis.py +0 -0
  264. {web3-7.12.0 → web3-7.12.1}/web3/_utils/math.py +0 -0
  265. {web3-7.12.0 → web3-7.12.1}/web3/_utils/method_formatters.py +0 -0
  266. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module.py +0 -0
  267. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/__init__.py +0 -0
  268. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/go_ethereum_admin_module.py +0 -0
  269. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/go_ethereum_debug_module.py +0 -0
  270. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/go_ethereum_txpool_module.py +0 -0
  271. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/module_testing_utils.py +0 -0
  272. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/net_module.py +0 -0
  273. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/persistent_connection_provider.py +0 -0
  274. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/utils.py +0 -0
  275. {web3-7.12.0 → web3-7.12.1}/web3/_utils/module_testing/web3_module.py +0 -0
  276. {web3-7.12.0 → web3-7.12.1}/web3/_utils/normalizers.py +0 -0
  277. {web3-7.12.0 → web3-7.12.1}/web3/_utils/rpc_abi.py +0 -0
  278. {web3-7.12.0 → web3-7.12.1}/web3/_utils/threads.py +0 -0
  279. {web3-7.12.0 → web3-7.12.1}/web3/_utils/transactions.py +0 -0
  280. {web3-7.12.0 → web3-7.12.1}/web3/_utils/type_conversion.py +0 -0
  281. {web3-7.12.0 → web3-7.12.1}/web3/_utils/utility_methods.py +0 -0
  282. {web3-7.12.0 → web3-7.12.1}/web3/_utils/validation.py +0 -0
  283. {web3-7.12.0 → web3-7.12.1}/web3/_utils/windows.py +0 -0
  284. {web3-7.12.0 → web3-7.12.1}/web3/auto/__init__.py +0 -0
  285. {web3-7.12.0 → web3-7.12.1}/web3/auto/gethdev.py +0 -0
  286. {web3-7.12.0 → web3-7.12.1}/web3/beacon/__init__.py +0 -0
  287. {web3-7.12.0 → web3-7.12.1}/web3/beacon/api_endpoints.py +0 -0
  288. {web3-7.12.0 → web3-7.12.1}/web3/beacon/async_beacon.py +0 -0
  289. {web3-7.12.0 → web3-7.12.1}/web3/beacon/beacon.py +0 -0
  290. {web3-7.12.0 → web3-7.12.1}/web3/constants.py +0 -0
  291. {web3-7.12.0 → web3-7.12.1}/web3/contract/__init__.py +0 -0
  292. {web3-7.12.0 → web3-7.12.1}/web3/contract/async_contract.py +0 -0
  293. {web3-7.12.0 → web3-7.12.1}/web3/contract/base_contract.py +0 -0
  294. {web3-7.12.0 → web3-7.12.1}/web3/contract/contract.py +0 -0
  295. {web3-7.12.0 → web3-7.12.1}/web3/contract/utils.py +0 -0
  296. {web3-7.12.0 → web3-7.12.1}/web3/datastructures.py +0 -0
  297. {web3-7.12.0 → web3-7.12.1}/web3/eth/__init__.py +0 -0
  298. {web3-7.12.0 → web3-7.12.1}/web3/eth/async_eth.py +0 -0
  299. {web3-7.12.0 → web3-7.12.1}/web3/eth/base_eth.py +0 -0
  300. {web3-7.12.0 → web3-7.12.1}/web3/eth/eth.py +0 -0
  301. {web3-7.12.0 → web3-7.12.1}/web3/exceptions.py +0 -0
  302. {web3-7.12.0 → web3-7.12.1}/web3/gas_strategies/__init__.py +0 -0
  303. {web3-7.12.0 → web3-7.12.1}/web3/gas_strategies/rpc.py +0 -0
  304. {web3-7.12.0 → web3-7.12.1}/web3/gas_strategies/time_based.py +0 -0
  305. {web3-7.12.0 → web3-7.12.1}/web3/geth.py +0 -0
  306. {web3-7.12.0 → web3-7.12.1}/web3/logs.py +0 -0
  307. {web3-7.12.0 → web3-7.12.1}/web3/main.py +0 -0
  308. {web3-7.12.0 → web3-7.12.1}/web3/method.py +0 -0
  309. {web3-7.12.0 → web3-7.12.1}/web3/middleware/__init__.py +0 -0
  310. {web3-7.12.0 → web3-7.12.1}/web3/middleware/attrdict.py +0 -0
  311. {web3-7.12.0 → web3-7.12.1}/web3/middleware/base.py +0 -0
  312. {web3-7.12.0 → web3-7.12.1}/web3/middleware/buffered_gas_estimate.py +0 -0
  313. {web3-7.12.0 → web3-7.12.1}/web3/middleware/filter.py +0 -0
  314. {web3-7.12.0 → web3-7.12.1}/web3/middleware/formatting.py +0 -0
  315. {web3-7.12.0 → web3-7.12.1}/web3/middleware/gas_price_strategy.py +0 -0
  316. {web3-7.12.0 → web3-7.12.1}/web3/middleware/names.py +0 -0
  317. {web3-7.12.0 → web3-7.12.1}/web3/middleware/proof_of_authority.py +0 -0
  318. {web3-7.12.0 → web3-7.12.1}/web3/middleware/pythonic.py +0 -0
  319. {web3-7.12.0 → web3-7.12.1}/web3/middleware/signing.py +0 -0
  320. {web3-7.12.0 → web3-7.12.1}/web3/middleware/stalecheck.py +0 -0
  321. {web3-7.12.0 → web3-7.12.1}/web3/middleware/validation.py +0 -0
  322. {web3-7.12.0 → web3-7.12.1}/web3/module.py +0 -0
  323. {web3-7.12.0 → web3-7.12.1}/web3/net.py +0 -0
  324. {web3-7.12.0 → web3-7.12.1}/web3/providers/__init__.py +0 -0
  325. {web3-7.12.0 → web3-7.12.1}/web3/providers/async_base.py +0 -0
  326. {web3-7.12.0 → web3-7.12.1}/web3/providers/base.py +0 -0
  327. {web3-7.12.0 → web3-7.12.1}/web3/providers/eth_tester/__init__.py +0 -0
  328. {web3-7.12.0 → web3-7.12.1}/web3/providers/eth_tester/defaults.py +0 -0
  329. {web3-7.12.0 → web3-7.12.1}/web3/providers/eth_tester/main.py +0 -0
  330. {web3-7.12.0 → web3-7.12.1}/web3/providers/eth_tester/middleware.py +0 -0
  331. {web3-7.12.0 → web3-7.12.1}/web3/providers/legacy_websocket.py +0 -0
  332. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/__init__.py +0 -0
  333. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/async_ipc.py +0 -0
  334. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/persistent.py +0 -0
  335. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/persistent_connection.py +0 -0
  336. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/request_processor.py +0 -0
  337. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/subscription_container.py +0 -0
  338. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/subscription_manager.py +0 -0
  339. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/utils.py +0 -0
  340. {web3-7.12.0 → web3-7.12.1}/web3/providers/persistent/websocket.py +0 -0
  341. {web3-7.12.0 → web3-7.12.1}/web3/providers/rpc/__init__.py +0 -0
  342. {web3-7.12.0 → web3-7.12.1}/web3/providers/rpc/async_rpc.py +0 -0
  343. {web3-7.12.0 → web3-7.12.1}/web3/providers/rpc/rpc.py +0 -0
  344. {web3-7.12.0 → web3-7.12.1}/web3/providers/rpc/utils.py +0 -0
  345. {web3-7.12.0 → web3-7.12.1}/web3/py.typed +0 -0
  346. {web3-7.12.0 → web3-7.12.1}/web3/scripts/__init__.py +0 -0
  347. {web3-7.12.0 → web3-7.12.1}/web3/scripts/install_pre_releases.py +0 -0
  348. {web3-7.12.0 → web3-7.12.1}/web3/scripts/parse_pygeth_version.py +0 -0
  349. {web3-7.12.0 → web3-7.12.1}/web3/scripts/release/__init__.py +0 -0
  350. {web3-7.12.0 → web3-7.12.1}/web3/scripts/release/test_package.py +0 -0
  351. {web3-7.12.0 → web3-7.12.1}/web3/testing.py +0 -0
  352. {web3-7.12.0 → web3-7.12.1}/web3/tracing.py +0 -0
  353. {web3-7.12.0 → web3-7.12.1}/web3/types.py +0 -0
  354. {web3-7.12.0 → web3-7.12.1}/web3/utils/__init__.py +0 -0
  355. {web3-7.12.0 → web3-7.12.1}/web3/utils/abi.py +0 -0
  356. {web3-7.12.0 → web3-7.12.1}/web3/utils/address.py +0 -0
  357. {web3-7.12.0 → web3-7.12.1}/web3/utils/async_exception_handling.py +0 -0
  358. {web3-7.12.0 → web3-7.12.1}/web3/utils/caching.py +0 -0
  359. {web3-7.12.0 → web3-7.12.1}/web3/utils/exception_handling.py +0 -0
  360. {web3-7.12.0 → web3-7.12.1}/web3/utils/subscriptions.py +0 -0
  361. {web3-7.12.0 → web3-7.12.1}/web3.egg-info/dependency_links.txt +0 -0
  362. {web3-7.12.0 → web3-7.12.1}/web3.egg-info/not-zip-safe +0 -0
  363. {web3-7.12.0 → web3-7.12.1}/web3.egg-info/requires.txt +0 -0
  364. {web3-7.12.0 → web3-7.12.1}/web3.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: web3
3
- Version: 7.12.0
3
+ Version: 7.12.1
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
Binary file
@@ -127,7 +127,7 @@ name = "Removals"
127
127
  showcontent = true
128
128
 
129
129
  [tool.bumpversion]
130
- current_version = "7.12.0"
130
+ current_version = "7.12.1"
131
131
  parse = """
132
132
  (?P<major>\\d+)
133
133
  \\.(?P<minor>\\d+)
@@ -55,7 +55,7 @@ with open("./README.md") as readme:
55
55
  setup(
56
56
  name="web3",
57
57
  # *IMPORTANT*: Don't manually change the version here. See Contributing docs for the release process.
58
- version="7.12.0",
58
+ version="7.12.1",
59
59
  description="""web3: A Python library for interacting with Ethereum""",
60
60
  long_description=long_description,
61
61
  long_description_content_type="text/markdown",
Binary file
@@ -264,6 +264,7 @@ def test_eth_account_sign(
264
264
  acct, message_text, key, expected_bytes, expected_hash, v, r, s, signature
265
265
  ):
266
266
  message = encode_defunct(text=message_text)
267
+ assert message.body == expected_bytes
267
268
  signed_message = Web3.keccak(
268
269
  b"\x19Ethereum Signed Message:\n"
269
270
  + bytes(f"{len(message.body)}", encoding="utf-8")
@@ -357,9 +358,9 @@ def test_eth_account_sign(
357
358
  ),
358
359
  (
359
360
  {
360
- "gas": 100000,
361
- "maxFeePerGas": 2000000000,
362
- "maxPriorityFeePerGas": 2000000000,
361
+ "gas": "0x186a0",
362
+ "maxFeePerGas": "0x77359400",
363
+ "maxPriorityFeePerGas": "0x77359400",
363
364
  "data": "0x5544",
364
365
  "nonce": "0x2",
365
366
  "to": "0x96216849c49358B10257cb55b28eA603c874b05E",
Binary file
Binary file
@@ -35,7 +35,7 @@ from .utils import (
35
35
  )
36
36
 
37
37
  KEYFILE_PW = "web3py-test"
38
- GETH_FIXTURE_ZIP = "geth-1.15.11-fixture.zip"
38
+ GETH_FIXTURE_ZIP = "geth-1.16.0-fixture.zip"
39
39
 
40
40
 
41
41
  @pytest.fixture
@@ -106,8 +106,8 @@ def base_geth_command_arguments(geth_binary, datadir):
106
106
 
107
107
  @pytest.fixture
108
108
  def geth_zipfile_version(get_geth_version):
109
- # TODO: Remove support for 1.13.x in next major version
110
- if get_geth_version.major == 1 and get_geth_version.minor in [13, 14, 15]:
109
+ # TODO: Remove support for 13 + 14 in next major version
110
+ if get_geth_version.major == 1 and get_geth_version.minor in [13, 14, 15, 16]:
111
111
  return GETH_FIXTURE_ZIP
112
112
  raise AssertionError("Unsupported geth version")
113
113
 
@@ -7,6 +7,7 @@ import pytest_asyncio
7
7
 
8
8
  from web3 import (
9
9
  AsyncWeb3,
10
+ AutoProvider,
10
11
  Web3,
11
12
  )
12
13
  from web3._utils.module_testing.go_ethereum_admin_module import (
@@ -102,8 +103,17 @@ class TestGoEthereumDebugModuleTest(GoEthereumDebugModuleTest):
102
103
 
103
104
  class TestGoEthereumEthModuleTest(GoEthereumEthModuleTest):
104
105
  def test_auto_provider_batching(self, auto_w3: "Web3") -> None:
105
- # test that batch_requests doesn't error out when using the auto provider
106
- auto_w3.batch_requests()
106
+ with auto_w3.batch_requests() as batch:
107
+ assert isinstance(auto_w3.provider, AutoProvider)
108
+ assert auto_w3.provider._is_batching
109
+ assert auto_w3.provider._batching_context is not None
110
+ batch.add(auto_w3.eth.get_block("latest"))
111
+ batch.add(auto_w3.eth.get_block("earliest"))
112
+ batch.add(auto_w3.eth.get_block("pending"))
113
+ results = batch.execute()
114
+
115
+ assert not auto_w3.provider._is_batching
116
+ assert len(results) == 3
107
117
 
108
118
 
109
119
  class TestGoEthereumNetModuleTest(GoEthereumNetModuleTest):
@@ -7,6 +7,7 @@ import pytest_asyncio
7
7
  from web3 import (
8
8
  AsyncIPCProvider,
9
9
  AsyncWeb3,
10
+ AutoProvider,
10
11
  Web3,
11
12
  )
12
13
  from web3._utils.module_testing.persistent_connection_provider import (
@@ -81,8 +82,17 @@ class TestGoEthereumDebugModuleTest(GoEthereumDebugModuleTest):
81
82
 
82
83
  class TestGoEthereumEthModuleTest(GoEthereumEthModuleTest):
83
84
  def test_auto_provider_batching(self, auto_w3: "Web3") -> None:
84
- # test that batch_requests doesn't error out when using the auto provider
85
- auto_w3.batch_requests()
85
+ with auto_w3.batch_requests() as batch:
86
+ assert isinstance(auto_w3.provider, AutoProvider)
87
+ assert auto_w3.provider._is_batching
88
+ assert auto_w3.provider._batching_context is not None
89
+ batch.add(auto_w3.eth.get_block("latest"))
90
+ batch.add(auto_w3.eth.get_block("earliest"))
91
+ batch.add(auto_w3.eth.get_block("pending"))
92
+ results = batch.execute()
93
+
94
+ assert not auto_w3.provider._is_batching
95
+ assert len(results) == 3
86
96
 
87
97
 
88
98
  class TestGoEthereumNetModuleTest(GoEthereumNetModuleTest):
@@ -33,8 +33,8 @@ def _geth_command_arguments(base_geth_command_arguments, geth_version):
33
33
  "--ipcdisable",
34
34
  "--allow-insecure-unlock",
35
35
  )
36
- if geth_version.minor not in [13, 14, 15]:
37
- # TODO: remove support for 1.13.x in next major version
36
+ if geth_version.minor not in [13, 14, 15, 16]:
37
+ # TODO: remove support for 13 + 14 in next major version
38
38
  raise AssertionError("Unsupported Geth version")
39
39
  else:
40
40
  raise AssertionError("Unsupported Geth version")
@@ -20,8 +20,8 @@ def _geth_command_arguments(base_geth_command_arguments, geth_version):
20
20
  "*",
21
21
  "--ipcdisable",
22
22
  )
23
- if geth_version.minor not in [13, 14, 15]:
24
- # TODO: remove support for 1.13.x in the next major release
23
+ if geth_version.minor not in [13, 14, 15, 16]:
24
+ # TODO: remove support for 13 + 14 in the next major release
25
25
  raise AssertionError("Unsupported Geth version")
26
26
  else:
27
27
  raise AssertionError("Unsupported Geth version")
@@ -724,8 +724,6 @@ class AsyncEthModuleTest:
724
724
  keyfile_account_pkey: HexStr,
725
725
  async_math_contract: "AsyncContract",
726
726
  ) -> None:
727
- # TODO: remove blockNumber block_id from eth_call and eth_getCode calls once
728
- # geth behavior for "latest" seems stable again.
729
727
  keyfile_account = async_w3.eth.account.from_key(keyfile_account_pkey)
730
728
 
731
729
  chain_id = await async_w3.eth.chain_id
@@ -757,13 +755,9 @@ class AsyncEthModuleTest:
757
755
  signed = keyfile_account.sign_transaction(txn)
758
756
  tx_hash = await async_w3.eth.send_raw_transaction(signed.raw_transaction)
759
757
  get_tx = await async_w3.eth.get_transaction(tx_hash)
760
- tx_receipt = await async_w3.eth.wait_for_transaction_receipt(
761
- tx_hash, timeout=10
762
- )
758
+ await async_w3.eth.wait_for_transaction_receipt(tx_hash)
763
759
 
764
- code = await async_w3.eth.get_code(
765
- keyfile_account.address, block_identifier=tx_receipt["blockNumber"]
766
- )
760
+ code = await async_w3.eth.get_code(keyfile_account.address)
767
761
  assert code.to_0x_hex() == f"0xef0100{async_math_contract.address[2:].lower()}"
768
762
  delegated = async_w3.eth.contract(
769
763
  address=keyfile_account.address, abi=async_math_contract.abi
@@ -772,7 +766,7 @@ class AsyncEthModuleTest:
772
766
  # assert the math counter is increased by 1337 only in delegated acct
773
767
  assert await async_math_contract.functions.counter().call() == math_counter
774
768
  delegated_call = await delegated.functions.counter().call(
775
- block_identifier=tx_receipt["blockNumber"]
769
+ block_identifier="latest"
776
770
  )
777
771
  assert delegated_call == math_counter + 1337
778
772
 
@@ -803,13 +797,9 @@ class AsyncEthModuleTest:
803
797
 
804
798
  # test eth_sendTransaction
805
799
  reset_tx_hash = await async_w3.eth.send_transaction(reset_code_txn)
806
- reset_tx_receipt = await async_w3.eth.wait_for_transaction_receipt(
807
- reset_tx_hash, timeout=10
808
- )
800
+ await async_w3.eth.wait_for_transaction_receipt(reset_tx_hash, timeout=10)
809
801
 
810
- reset_code = await async_w3.eth.get_code(
811
- keyfile_account.address, reset_tx_receipt["blockNumber"]
812
- )
802
+ reset_code = await async_w3.eth.get_code(keyfile_account.address)
813
803
  assert reset_code == HexBytes("0x")
814
804
 
815
805
  @pytest.mark.asyncio
@@ -3875,8 +3865,6 @@ class EthModuleTest:
3875
3865
  def test_sign_authorization_send_raw_and_send_set_code_transactions(
3876
3866
  self, w3: "Web3", keyfile_account_pkey: HexStr, math_contract: "Contract"
3877
3867
  ) -> None:
3878
- # TODO: remove blockNumber block_id from eth_call and eth_getCode calls once
3879
- # geth behavior for "latest" seems stable again.
3880
3868
  keyfile_account = w3.eth.account.from_key(keyfile_account_pkey)
3881
3869
 
3882
3870
  chain_id = w3.eth.chain_id
@@ -3906,28 +3894,18 @@ class EthModuleTest:
3906
3894
 
3907
3895
  # test eth_sendRawTransaction
3908
3896
  signed = keyfile_account.sign_transaction(txn)
3909
- tx_hash = w3.eth.send_raw_transaction(signed.raw_transaction)
3910
- get_tx = w3.eth.get_transaction(tx_hash)
3911
- receipt = w3.eth.wait_for_transaction_receipt(tx_hash, timeout=10)
3897
+ w3.eth.send_raw_transaction(signed.raw_transaction)
3898
+ get_tx = w3.eth.get_transaction(signed.hash)
3899
+ w3.eth.wait_for_transaction_receipt(signed.hash)
3912
3900
 
3913
- code = w3.eth.get_code(
3914
- keyfile_account.address, block_identifier=receipt["blockNumber"]
3915
- )
3901
+ code = w3.eth.get_code(keyfile_account.address)
3916
3902
  assert code.to_0x_hex() == f"0xef0100{math_contract.address[2:].lower()}"
3917
3903
  delegated = w3.eth.contract(
3918
3904
  address=keyfile_account.address, abi=math_contract.abi
3919
3905
  )
3920
3906
  # assert the math counter is increased by 1337 only in delegated acct
3921
- assert (
3922
- math_contract.functions.counter().call(
3923
- block_identifier=receipt["blockNumber"]
3924
- )
3925
- == math_counter
3926
- )
3927
- assert (
3928
- delegated.functions.counter().call(block_identifier=receipt["blockNumber"])
3929
- == math_counter + 1337
3930
- )
3907
+ assert math_contract.functions.counter().call() == math_counter
3908
+ assert delegated.functions.counter().call() == math_counter + 1337
3931
3909
 
3932
3910
  assert len(get_tx["authorizationList"]) == 1
3933
3911
  get_auth = get_tx["authorizationList"][0]
@@ -3938,7 +3916,7 @@ class EthModuleTest:
3938
3916
  assert isinstance(get_auth["r"], HexBytes)
3939
3917
  assert isinstance(get_auth["s"], HexBytes)
3940
3918
 
3941
- # reset storage value and code
3919
+ # reset code
3942
3920
  reset_auth = {
3943
3921
  "chainId": chain_id,
3944
3922
  "address": "0x" + ("00" * 20),
@@ -3956,13 +3934,9 @@ class EthModuleTest:
3956
3934
 
3957
3935
  # test eth_sendTransaction
3958
3936
  reset_tx_hash = w3.eth.send_transaction(reset_code_txn)
3959
- reset_tx_receipt = w3.eth.wait_for_transaction_receipt(
3960
- reset_tx_hash, timeout=10
3961
- )
3937
+ w3.eth.wait_for_transaction_receipt(reset_tx_hash)
3962
3938
 
3963
- reset_code = w3.eth.get_code(
3964
- keyfile_account.address, block_identifier=reset_tx_receipt["blockNumber"]
3965
- )
3939
+ reset_code = w3.eth.get_code(keyfile_account.address)
3966
3940
  assert reset_code == HexBytes("0x")
3967
3941
 
3968
3942
  def test_eth_call(self, w3: "Web3", math_contract: "Contract") -> None:
@@ -254,9 +254,9 @@ class RequestManager:
254
254
  """
255
255
  Context manager for making batch requests
256
256
  """
257
- if isinstance(self.provider, AutoProvider):
258
- self.provider = self.provider._get_active_provider(use_cache=True)
259
- if not isinstance(self.provider, (AsyncJSONBaseProvider, JSONBaseProvider)):
257
+ if not isinstance(
258
+ self.provider, (AsyncJSONBaseProvider, JSONBaseProvider, AutoProvider)
259
+ ):
260
260
  raise Web3TypeError("Batch requests are not supported by this provider.")
261
261
  return RequestBatcher(self.w3)
262
262
 
@@ -3,6 +3,7 @@ from typing import (
3
3
  Any,
4
4
  Callable,
5
5
  Dict,
6
+ List,
6
7
  Optional,
7
8
  Sequence,
8
9
  Tuple,
@@ -21,9 +22,9 @@ from web3.exceptions import (
21
22
  CannotHandleRequest,
22
23
  )
23
24
  from web3.providers import (
24
- BaseProvider,
25
25
  HTTPProvider,
26
26
  IPCProvider,
27
+ JSONBaseProvider,
27
28
  LegacyWebSocketProvider,
28
29
  )
29
30
  from web3.types import (
@@ -35,7 +36,7 @@ HTTP_SCHEMES = {"http", "https"}
35
36
  WS_SCHEMES = {"ws", "wss"}
36
37
 
37
38
 
38
- def load_provider_from_environment() -> BaseProvider:
39
+ def load_provider_from_environment() -> Optional[JSONBaseProvider]:
39
40
  uri_string = URI(os.environ.get("WEB3_PROVIDER_URI", ""))
40
41
  if not uri_string:
41
42
  return None
@@ -45,7 +46,7 @@ def load_provider_from_environment() -> BaseProvider:
45
46
 
46
47
  def load_provider_from_uri(
47
48
  uri_string: URI, headers: Optional[Dict[str, Tuple[str, str]]] = None
48
- ) -> BaseProvider:
49
+ ) -> JSONBaseProvider:
49
50
  uri = urlparse(uri_string)
50
51
  if uri.scheme == "file":
51
52
  return IPCProvider(uri.path)
@@ -60,7 +61,7 @@ def load_provider_from_uri(
60
61
  )
61
62
 
62
63
 
63
- class AutoProvider(BaseProvider):
64
+ class AutoProvider(JSONBaseProvider):
64
65
  default_providers = (
65
66
  load_provider_from_environment,
66
67
  IPCProvider,
@@ -72,7 +73,7 @@ class AutoProvider(BaseProvider):
72
73
  def __init__(
73
74
  self,
74
75
  potential_providers: Optional[
75
- Sequence[Union[Callable[..., BaseProvider], Type[BaseProvider]]]
76
+ Sequence[Union[Callable[..., JSONBaseProvider], Type[JSONBaseProvider]]]
76
77
  ] = None,
77
78
  ) -> None:
78
79
  """
@@ -83,6 +84,7 @@ class AutoProvider(BaseProvider):
83
84
  in an attempt to find an active node. The list will default to
84
85
  :attribute:`default_providers`.
85
86
  """
87
+ super().__init__()
86
88
  if potential_providers:
87
89
  self._potential_providers = potential_providers
88
90
  else:
@@ -94,6 +96,14 @@ class AutoProvider(BaseProvider):
94
96
  except OSError:
95
97
  return self._proxy_request(method, params, use_cache=False)
96
98
 
99
+ def make_batch_request(
100
+ self, requests: List[Tuple[RPCEndpoint, Any]]
101
+ ) -> Union[List[RPCResponse], RPCResponse]:
102
+ try:
103
+ return self._proxy_batch_request(requests)
104
+ except OSError:
105
+ return self._proxy_batch_request(requests, use_cache=False)
106
+
97
107
  def is_connected(self, show_traceback: bool = False) -> bool:
98
108
  provider = self._get_active_provider(use_cache=True)
99
109
  return provider is not None and provider.is_connected(show_traceback)
@@ -110,7 +120,19 @@ class AutoProvider(BaseProvider):
110
120
 
111
121
  return provider.make_request(method, params)
112
122
 
113
- def _get_active_provider(self, use_cache: bool) -> Optional[BaseProvider]:
123
+ def _proxy_batch_request(
124
+ self, requests: List[Tuple[RPCEndpoint, Any]], use_cache: bool = True
125
+ ) -> Union[List[RPCResponse], RPCResponse]:
126
+ provider = self._get_active_provider(use_cache)
127
+ if provider is None:
128
+ raise CannotHandleRequest(
129
+ "Could not discover provider while making batch request: "
130
+ f"requests:{requests}\n"
131
+ )
132
+
133
+ return provider.make_batch_request(requests)
134
+
135
+ def _get_active_provider(self, use_cache: bool) -> Optional[JSONBaseProvider]:
114
136
  if use_cache and self._active_provider is not None:
115
137
  return self._active_provider
116
138
 
@@ -59,7 +59,7 @@ def get_ipc_socket(ipc_path: str, timeout: float = 2.0) -> socket.socket:
59
59
  return sock
60
60
 
61
61
 
62
- class PersistantSocket:
62
+ class PersistentSocket:
63
63
  sock = None
64
64
 
65
65
  def __init__(self, ipc_path: str) -> None:
@@ -157,7 +157,7 @@ class IPCProvider(JSONBaseProvider):
157
157
 
158
158
  self.timeout = timeout
159
159
  self._lock = threading.Lock()
160
- self._socket = PersistantSocket(self.ipc_path)
160
+ self._socket = PersistentSocket(self.ipc_path)
161
161
 
162
162
  def __str__(self) -> str:
163
163
  return f"<{self.__class__.__name__} {self.ipc_path}>"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: web3
3
- Version: 7.12.0
3
+ Version: 7.12.1
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
@@ -14,9 +14,11 @@ ens/contract_data.py
14
14
  ens/ens.py
15
15
  ens/exceptions.py
16
16
  ens/utils.py
17
+ ens/specs/.DS_Store
17
18
  ens/specs/nf.json
18
19
  ens/specs/normalization_spec.json
19
20
  scripts/release/test_package.py
21
+ tests/.DS_Store
20
22
  tests/__init__.py
21
23
  tests/conftest.py
22
24
  tests/utils.py
@@ -165,6 +167,7 @@ tests/core/web3-module/test_keccak.py
165
167
  tests/core/web3-module/test_providers.py
166
168
  tests/core/web3-module/test_strict_bytes_type_checking.py
167
169
  tests/core/web3-module/test_web3_inheritance.py
170
+ tests/ens/.DS_Store
168
171
  tests/ens/conftest.py
169
172
  tests/ens/test_ens.py
170
173
  tests/ens/test_get_registry.py
@@ -177,10 +180,11 @@ tests/ens/test_utils.py
177
180
  tests/ens/test_wildcard_resolution.py
178
181
  tests/ens/normalization/normalization_tests.json
179
182
  tests/ens/normalization/test_normalize_name_ensip15.py
183
+ tests/integration/.DS_Store
180
184
  tests/integration/README.md
181
185
  tests/integration/common.py
182
186
  tests/integration/conftest.py
183
- tests/integration/geth-1.15.11-fixture.zip
187
+ tests/integration/geth-1.16.0-fixture.zip
184
188
  tests/integration/test_ethereum_tester.py
185
189
  tests/integration/generate_fixtures/common.py
186
190
  tests/integration/generate_fixtures/go_ethereum.py
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes