web3 7.0.0b4__tar.gz → 7.0.0b6__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 (362) hide show
  1. {web3-7.0.0b4 → web3-7.0.0b6}/LICENSE +1 -1
  2. web3-7.0.0b6/MANIFEST.in +13 -0
  3. {web3-7.0.0b4/web3.egg-info → web3-7.0.0b6}/PKG-INFO +36 -24
  4. {web3-7.0.0b4 → web3-7.0.0b6}/README.md +4 -2
  5. {web3-7.0.0b4 → web3-7.0.0b6}/setup.py +30 -23
  6. web3-7.0.0b6/tests/.DS_Store +0 -0
  7. web3-7.0.0b6/tests/beacon/test_async_beacon.py +270 -0
  8. web3-7.0.0b6/tests/beacon/test_beacon.py +234 -0
  9. web3-7.0.0b6/tests/conftest.py +124 -0
  10. web3-7.0.0b6/tests/core/admin-module/test_admin_addPeer.py +7 -0
  11. web3-7.0.0b6/tests/core/admin-module/test_admin_nodeInfo.py +7 -0
  12. web3-7.0.0b6/tests/core/admin-module/test_admin_peers.py +4 -0
  13. web3-7.0.0b6/tests/core/block-utils/test_select_method_for_block_identifier.py +48 -0
  14. web3-7.0.0b6/tests/core/caching-utils/test_generate_cache_key.py +51 -0
  15. web3-7.0.0b6/tests/core/caching-utils/test_request_caching.py +309 -0
  16. web3-7.0.0b6/tests/core/conftest.py +131 -0
  17. web3-7.0.0b6/tests/core/contracts/conftest.py +764 -0
  18. web3-7.0.0b6/tests/core/contracts/test_args_and_kwargs_merger.py +109 -0
  19. web3-7.0.0b6/tests/core/contracts/test_contract_ambiguous_functions.py +197 -0
  20. web3-7.0.0b6/tests/core/contracts/test_contract_attributes.py +43 -0
  21. web3-7.0.0b6/tests/core/contracts/test_contract_build_transaction.py +529 -0
  22. web3-7.0.0b6/tests/core/contracts/test_contract_call_interface.py +2339 -0
  23. web3-7.0.0b6/tests/core/contracts/test_contract_caller_interface.py +496 -0
  24. web3-7.0.0b6/tests/core/contracts/test_contract_class_construction.py +88 -0
  25. web3-7.0.0b6/tests/core/contracts/test_contract_constructor.py +600 -0
  26. web3-7.0.0b6/tests/core/contracts/test_contract_constructor_encoding.py +130 -0
  27. web3-7.0.0b6/tests/core/contracts/test_contract_deployment.py +238 -0
  28. web3-7.0.0b6/tests/core/contracts/test_contract_estimate_gas.py +216 -0
  29. web3-7.0.0b6/tests/core/contracts/test_contract_events_build_filter.py +71 -0
  30. web3-7.0.0b6/tests/core/contracts/test_contract_example.py +217 -0
  31. web3-7.0.0b6/tests/core/contracts/test_contract_init.py +76 -0
  32. web3-7.0.0b6/tests/core/contracts/test_contract_method_abi_decoding.py +149 -0
  33. web3-7.0.0b6/tests/core/contracts/test_contract_method_abi_encoding.py +199 -0
  34. web3-7.0.0b6/tests/core/contracts/test_contract_method_to_argument_matching.py +204 -0
  35. web3-7.0.0b6/tests/core/contracts/test_contract_panic_errors.py +48 -0
  36. web3-7.0.0b6/tests/core/contracts/test_contract_transact_interface.py +614 -0
  37. web3-7.0.0b6/tests/core/contracts/test_contract_util_functions.py +128 -0
  38. web3-7.0.0b6/tests/core/contracts/test_extracting_event_data.py +1235 -0
  39. web3-7.0.0b6/tests/core/contracts/test_extracting_event_data_old.py +155 -0
  40. web3-7.0.0b6/tests/core/contracts/test_offchain_lookup.py +210 -0
  41. web3-7.0.0b6/tests/core/contracts/utils.py +27 -0
  42. web3-7.0.0b6/tests/core/datastructures/test_datastructures.py +209 -0
  43. web3-7.0.0b6/tests/core/empty-object/test_empty_object_is_falsy.py +8 -0
  44. web3-7.0.0b6/tests/core/eth-module/conftest.py +6 -0
  45. web3-7.0.0b6/tests/core/eth-module/test_accounts.py +573 -0
  46. web3-7.0.0b6/tests/core/eth-module/test_block_api.py +173 -0
  47. web3-7.0.0b6/tests/core/eth-module/test_default_account_api.py +42 -0
  48. web3-7.0.0b6/tests/core/eth-module/test_eth_contract.py +47 -0
  49. web3-7.0.0b6/tests/core/eth-module/test_eth_fee_history.py +22 -0
  50. web3-7.0.0b6/tests/core/eth-module/test_eth_filter.py +47 -0
  51. web3-7.0.0b6/tests/core/eth-module/test_eth_mining.py +9 -0
  52. web3-7.0.0b6/tests/core/eth-module/test_eth_properties.py +26 -0
  53. web3-7.0.0b6/tests/core/eth-module/test_gas_pricing.py +27 -0
  54. web3-7.0.0b6/tests/core/eth-module/test_poa.py +46 -0
  55. web3-7.0.0b6/tests/core/eth-module/test_transactions.py +426 -0
  56. web3-7.0.0b6/tests/core/eth-tester-api/test_withdrawals.py +55 -0
  57. web3-7.0.0b6/tests/core/exceptions/test_exceptions.py +32 -0
  58. web3-7.0.0b6/tests/core/filtering/conftest.py +108 -0
  59. web3-7.0.0b6/tests/core/filtering/test_basic_filter_tests.py +78 -0
  60. web3-7.0.0b6/tests/core/filtering/test_contract_create_filter_topic_merging.py +16 -0
  61. web3-7.0.0b6/tests/core/filtering/test_contract_data_filters.py +475 -0
  62. web3-7.0.0b6/tests/core/filtering/test_contract_get_logs.py +398 -0
  63. web3-7.0.0b6/tests/core/filtering/test_contract_on_event_filtering.py +476 -0
  64. web3-7.0.0b6/tests/core/filtering/test_contract_past_event_filtering.py +190 -0
  65. web3-7.0.0b6/tests/core/filtering/test_contract_topic_filters.py +440 -0
  66. web3-7.0.0b6/tests/core/filtering/test_existing_filter_instance.py +84 -0
  67. web3-7.0.0b6/tests/core/filtering/test_filter_against_latest_blocks.py +52 -0
  68. web3-7.0.0b6/tests/core/filtering/test_filter_against_pending_transactions.py +60 -0
  69. web3-7.0.0b6/tests/core/filtering/test_filter_against_transaction_logs.py +40 -0
  70. web3-7.0.0b6/tests/core/filtering/test_filters_against_many_blocks.py +315 -0
  71. web3-7.0.0b6/tests/core/filtering/test_utils_functions.py +225 -0
  72. web3-7.0.0b6/tests/core/filtering/utils.py +73 -0
  73. web3-7.0.0b6/tests/core/gas-strategies/test_rpc_gas_pricing_strategies.py +11 -0
  74. web3-7.0.0b6/tests/core/gas-strategies/test_time_based_gas_price_strategy.py +279 -0
  75. web3-7.0.0b6/tests/core/manager/conftest.py +38 -0
  76. web3-7.0.0b6/tests/core/manager/test_default_middlewares.py +24 -0
  77. web3-7.0.0b6/tests/core/manager/test_middleware_can_be_stateful.py +36 -0
  78. web3-7.0.0b6/tests/core/manager/test_middleware_onion_api.py +187 -0
  79. web3-7.0.0b6/tests/core/manager/test_provider_property.py +20 -0
  80. web3-7.0.0b6/tests/core/manager/test_provider_request_wrapping.py +33 -0
  81. web3-7.0.0b6/tests/core/manager/test_response_formatters.py +360 -0
  82. web3-7.0.0b6/tests/core/method-class/test_method.py +387 -0
  83. web3-7.0.0b6/tests/core/method-class/test_result_formatters.py +51 -0
  84. web3-7.0.0b6/tests/core/middleware/test_attrdict_middleware.py +122 -0
  85. web3-7.0.0b6/tests/core/middleware/test_eth_tester_middleware.py +194 -0
  86. web3-7.0.0b6/tests/core/middleware/test_filter_middleware.py +381 -0
  87. web3-7.0.0b6/tests/core/middleware/test_formatting_middleware.py +103 -0
  88. web3-7.0.0b6/tests/core/middleware/test_gas_price_strategy.py +69 -0
  89. web3-7.0.0b6/tests/core/middleware/test_name_to_address_middleware.py +180 -0
  90. web3-7.0.0b6/tests/core/middleware/test_stalecheck.py +234 -0
  91. web3-7.0.0b6/tests/core/middleware/test_transaction_signing.py +596 -0
  92. web3-7.0.0b6/tests/core/module-class/test_module.py +98 -0
  93. web3-7.0.0b6/tests/core/providers/test_async_http_provider.py +118 -0
  94. web3-7.0.0b6/tests/core/providers/test_async_ipc_provider.py +260 -0
  95. web3-7.0.0b6/tests/core/providers/test_async_tester_provider.py +67 -0
  96. web3-7.0.0b6/tests/core/providers/test_auto_provider.py +61 -0
  97. web3-7.0.0b6/tests/core/providers/test_base_provider.py +57 -0
  98. web3-7.0.0b6/tests/core/providers/test_http_provider.py +115 -0
  99. web3-7.0.0b6/tests/core/providers/test_http_request_retry.py +197 -0
  100. web3-7.0.0b6/tests/core/providers/test_ipc_provider.py +187 -0
  101. web3-7.0.0b6/tests/core/providers/test_legacy_websocket_provider.py +79 -0
  102. web3-7.0.0b6/tests/core/providers/test_tester_provider.py +120 -0
  103. web3-7.0.0b6/tests/core/providers/test_websocket_provider.py +367 -0
  104. web3-7.0.0b6/tests/core/test_library_files.py +30 -0
  105. web3-7.0.0b6/tests/core/testing-module/test_testing_mine.py +22 -0
  106. web3-7.0.0b6/tests/core/testing-module/test_testing_snapshot_and_revert.py +47 -0
  107. web3-7.0.0b6/tests/core/testing-module/test_testing_timeTravel.py +9 -0
  108. web3-7.0.0b6/tests/core/txpool-module/conftest.py +11 -0
  109. web3-7.0.0b6/tests/core/txpool-module/test_txpool_content.py +44 -0
  110. web3-7.0.0b6/tests/core/txpool-module/test_txpool_inspect.py +48 -0
  111. web3-7.0.0b6/tests/core/utilities/conftest.py +14 -0
  112. web3-7.0.0b6/tests/core/utilities/test_abi.py +383 -0
  113. web3-7.0.0b6/tests/core/utilities/test_abi_filter_by_abi_name.py +73 -0
  114. web3-7.0.0b6/tests/core/utilities/test_abi_filtering_by_argument_name.py +61 -0
  115. web3-7.0.0b6/tests/core/utilities/test_abi_is_encodable.py +102 -0
  116. web3-7.0.0b6/tests/core/utilities/test_abi_named_tree.py +107 -0
  117. web3-7.0.0b6/tests/core/utilities/test_address.py +71 -0
  118. web3-7.0.0b6/tests/core/utilities/test_async_transaction.py +97 -0
  119. web3-7.0.0b6/tests/core/utilities/test_attach_modules.py +209 -0
  120. web3-7.0.0b6/tests/core/utilities/test_attributedict.py +109 -0
  121. web3-7.0.0b6/tests/core/utilities/test_caching_utils.py +35 -0
  122. web3-7.0.0b6/tests/core/utilities/test_construct_event_data_set.py +150 -0
  123. web3-7.0.0b6/tests/core/utilities/test_construct_event_filter_params.py +103 -0
  124. web3-7.0.0b6/tests/core/utilities/test_construct_event_topics.py +164 -0
  125. web3-7.0.0b6/tests/core/utilities/test_datatypes.py +38 -0
  126. web3-7.0.0b6/tests/core/utilities/test_decorators.py +23 -0
  127. web3-7.0.0b6/tests/core/utilities/test_encoding.py +295 -0
  128. web3-7.0.0b6/tests/core/utilities/test_event_filter_builder.py +80 -0
  129. web3-7.0.0b6/tests/core/utilities/test_event_interface.py +34 -0
  130. web3-7.0.0b6/tests/core/utilities/test_fee_utils.py +48 -0
  131. web3-7.0.0b6/tests/core/utilities/test_formatters.py +56 -0
  132. web3-7.0.0b6/tests/core/utilities/test_is_predefined_block_number.py +22 -0
  133. web3-7.0.0b6/tests/core/utilities/test_is_probably_enum.py +23 -0
  134. web3-7.0.0b6/tests/core/utilities/test_is_recognized_type.py +182 -0
  135. web3-7.0.0b6/tests/core/utilities/test_math.py +57 -0
  136. web3-7.0.0b6/tests/core/utilities/test_method_formatters.py +194 -0
  137. web3-7.0.0b6/tests/core/utilities/test_prepare_transaction_replacement.py +132 -0
  138. web3-7.0.0b6/tests/core/utilities/test_request.py +471 -0
  139. web3-7.0.0b6/tests/core/utilities/test_select_filter_method.py +44 -0
  140. web3-7.0.0b6/tests/core/utilities/test_threads.py +110 -0
  141. web3-7.0.0b6/tests/core/utilities/test_valid_transaction_params.py +178 -0
  142. web3-7.0.0b6/tests/core/utilities/test_validation.py +147 -0
  143. web3-7.0.0b6/tests/core/web3-module/test_api.py +2 -0
  144. web3-7.0.0b6/tests/core/web3-module/test_attach_modules.py +107 -0
  145. web3-7.0.0b6/tests/core/web3-module/test_client_version.py +2 -0
  146. web3-7.0.0b6/tests/core/web3-module/test_conversions.py +255 -0
  147. web3-7.0.0b6/tests/core/web3-module/test_import_and_version.py +5 -0
  148. web3-7.0.0b6/tests/core/web3-module/test_keccak.py +121 -0
  149. web3-7.0.0b6/tests/core/web3-module/test_providers.py +32 -0
  150. web3-7.0.0b6/tests/core/web3-module/test_strict_bytes_type_checking.py +106 -0
  151. web3-7.0.0b6/tests/core/web3-module/test_web3_inheritance.py +12 -0
  152. web3-7.0.0b6/tests/ens/conftest.py +663 -0
  153. web3-7.0.0b6/tests/ens/normalization/normalization_tests.json +1 -0
  154. web3-7.0.0b6/tests/ens/normalization/test_normalize_name_ensip15.py +47 -0
  155. web3-7.0.0b6/tests/ens/test_ens.py +270 -0
  156. web3-7.0.0b6/tests/ens/test_get_registry.py +56 -0
  157. web3-7.0.0b6/tests/ens/test_get_text.py +166 -0
  158. web3-7.0.0b6/tests/ens/test_nameprep.py +37 -0
  159. web3-7.0.0b6/tests/ens/test_offchain_resolution.py +234 -0
  160. web3-7.0.0b6/tests/ens/test_setup_address.py +288 -0
  161. web3-7.0.0b6/tests/ens/test_setup_name.py +250 -0
  162. web3-7.0.0b6/tests/ens/test_utils.py +233 -0
  163. web3-7.0.0b6/tests/ens/test_wildcard_resolution.py +48 -0
  164. web3-7.0.0b6/tests/integration/.DS_Store +0 -0
  165. web3-7.0.0b6/tests/integration/README.md +68 -0
  166. web3-7.0.0b6/tests/integration/common.py +23 -0
  167. web3-7.0.0b6/tests/integration/conftest.py +66 -0
  168. web3-7.0.0b6/tests/integration/generate_fixtures/common.py +240 -0
  169. web3-7.0.0b6/tests/integration/generate_fixtures/go_ethereum.py +369 -0
  170. web3-7.0.0b6/tests/integration/geth-1.13.14-fixture.zip +0 -0
  171. web3-7.0.0b6/tests/integration/go_ethereum/common.py +124 -0
  172. web3-7.0.0b6/tests/integration/go_ethereum/conftest.py +373 -0
  173. web3-7.0.0b6/tests/integration/go_ethereum/test_goethereum_http.py +156 -0
  174. web3-7.0.0b6/tests/integration/go_ethereum/test_goethereum_ipc.py +115 -0
  175. web3-7.0.0b6/tests/integration/go_ethereum/test_goethereum_legacy_ws.py +109 -0
  176. web3-7.0.0b6/tests/integration/go_ethereum/test_goethereum_ws/conftest.py +48 -0
  177. web3-7.0.0b6/tests/integration/go_ethereum/test_goethereum_ws/test_async_await_w3.py +73 -0
  178. web3-7.0.0b6/tests/integration/go_ethereum/test_goethereum_ws/test_async_ctx_manager_w3.py +74 -0
  179. web3-7.0.0b6/tests/integration/go_ethereum/test_goethereum_ws/test_async_iterator_w3.py +74 -0
  180. web3-7.0.0b6/tests/integration/go_ethereum/utils.py +77 -0
  181. web3-7.0.0b6/tests/integration/test_ethereum_tester.py +689 -0
  182. web3-7.0.0b6/tests/utils.py +87 -0
  183. web3-7.0.0b6/web3/_utils/batching.py +217 -0
  184. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/caching.py +26 -2
  185. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/compat/__init__.py +1 -0
  186. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contracts.py +5 -5
  187. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/events.py +20 -20
  188. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/filters.py +6 -6
  189. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/method_formatters.py +0 -23
  190. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module_testing/__init__.py +0 -3
  191. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module_testing/eth_module.py +442 -373
  192. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module_testing/module_testing_utils.py +13 -0
  193. web3-7.0.0b6/web3/_utils/module_testing/web3_module.py +736 -0
  194. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/rpc_abi.py +0 -18
  195. {web3-7.0.0b4 → web3-7.0.0b6}/web3/contract/async_contract.py +11 -11
  196. {web3-7.0.0b4 → web3-7.0.0b6}/web3/contract/base_contract.py +19 -18
  197. {web3-7.0.0b4 → web3-7.0.0b6}/web3/contract/contract.py +13 -13
  198. {web3-7.0.0b4 → web3-7.0.0b6}/web3/contract/utils.py +112 -4
  199. {web3-7.0.0b4 → web3-7.0.0b6}/web3/eth/async_eth.py +10 -8
  200. {web3-7.0.0b4 → web3-7.0.0b6}/web3/eth/eth.py +7 -6
  201. {web3-7.0.0b4 → web3-7.0.0b6}/web3/exceptions.py +75 -21
  202. {web3-7.0.0b4 → web3-7.0.0b6}/web3/gas_strategies/time_based.py +2 -2
  203. {web3-7.0.0b4 → web3-7.0.0b6}/web3/geth.py +0 -188
  204. {web3-7.0.0b4 → web3-7.0.0b6}/web3/main.py +21 -13
  205. {web3-7.0.0b4 → web3-7.0.0b6}/web3/manager.py +237 -74
  206. {web3-7.0.0b4 → web3-7.0.0b6}/web3/method.py +29 -9
  207. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/base.py +43 -0
  208. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/filter.py +18 -6
  209. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/signing.py +2 -2
  210. {web3-7.0.0b4 → web3-7.0.0b6}/web3/module.py +47 -7
  211. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/async_base.py +55 -23
  212. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/base.py +59 -26
  213. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/eth_tester/defaults.py +0 -48
  214. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/eth_tester/main.py +36 -11
  215. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/eth_tester/middleware.py +3 -8
  216. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/ipc.py +23 -8
  217. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/legacy_websocket.py +26 -1
  218. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/persistent/async_ipc.py +60 -76
  219. web3-7.0.0b6/web3/providers/persistent/persistent.py +232 -0
  220. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/persistent/request_processor.py +98 -14
  221. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/persistent/websocket.py +43 -66
  222. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/rpc/async_rpc.py +20 -2
  223. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/rpc/rpc.py +22 -2
  224. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/rpc/utils.py +1 -10
  225. web3-7.0.0b6/web3/py.typed +0 -0
  226. web3-7.0.0b6/web3/scripts/__init__.py +0 -0
  227. web3-7.0.0b6/web3/scripts/release/__init__.py +0 -0
  228. web3-7.0.0b6/web3/tools/benchmark/__init__.py +0 -0
  229. {web3-7.0.0b4 → web3-7.0.0b6}/web3/tools/benchmark/node.py +2 -8
  230. {web3-7.0.0b4 → web3-7.0.0b6}/web3/types.py +8 -2
  231. {web3-7.0.0b4 → web3-7.0.0b6/web3.egg-info}/PKG-INFO +36 -24
  232. web3-7.0.0b6/web3.egg-info/SOURCES.txt +355 -0
  233. {web3-7.0.0b4 → web3-7.0.0b6}/web3.egg-info/requires.txt +22 -14
  234. web3-7.0.0b4/MANIFEST.in +0 -7
  235. web3-7.0.0b4/web3/_utils/module_testing/go_ethereum_personal_module.py +0 -300
  236. web3-7.0.0b4/web3/_utils/module_testing/web3_module.py +0 -315
  237. web3-7.0.0b4/web3/providers/persistent/persistent.py +0 -108
  238. web3-7.0.0b4/web3.egg-info/SOURCES.txt +0 -174
  239. {web3-7.0.0b4 → web3-7.0.0b6}/ens/__init__.py +0 -0
  240. {web3-7.0.0b4 → web3-7.0.0b6}/ens/_normalization.py +0 -0
  241. {web3-7.0.0b4 → web3-7.0.0b6}/ens/abis.py +0 -0
  242. {web3-7.0.0b4 → web3-7.0.0b6}/ens/async_ens.py +0 -0
  243. {web3-7.0.0b4 → web3-7.0.0b6}/ens/auto.py +0 -0
  244. {web3-7.0.0b4 → web3-7.0.0b6}/ens/base_ens.py +0 -0
  245. {web3-7.0.0b4 → web3-7.0.0b6}/ens/constants.py +0 -0
  246. {web3-7.0.0b4 → web3-7.0.0b6}/ens/contract_data.py +0 -0
  247. {web3-7.0.0b4 → web3-7.0.0b6}/ens/ens.py +0 -0
  248. {web3-7.0.0b4 → web3-7.0.0b6}/ens/exceptions.py +0 -0
  249. {web3-7.0.0b4 → web3-7.0.0b6}/ens/specs/nf.json +0 -0
  250. {web3-7.0.0b4 → web3-7.0.0b6}/ens/specs/normalization_spec.json +0 -0
  251. {web3-7.0.0b4 → web3-7.0.0b6}/ens/utils.py +0 -0
  252. {web3-7.0.0b4 → web3-7.0.0b6}/pyproject.toml +8 -8
  253. {web3-7.0.0b4 → web3-7.0.0b6}/setup.cfg +0 -0
  254. {web3-7.0.0b4/web3/_utils → web3-7.0.0b6/tests}/__init__.py +0 -0
  255. {web3-7.0.0b4/web3/_utils/contract_sources → web3-7.0.0b6/tests/core/utilities}/__init__.py +0 -0
  256. {web3-7.0.0b4/web3/_utils/contract_sources/contract_data → web3-7.0.0b6/tests/integration/go_ethereum}/__init__.py +0 -0
  257. {web3-7.0.0b4/web3/gas_strategies → web3-7.0.0b6/tests/integration/go_ethereum/test_goethereum_ws}/__init__.py +0 -0
  258. {web3-7.0.0b4 → web3-7.0.0b6}/web3/__init__.py +0 -0
  259. {web3-7.0.0b4/web3/scripts → web3-7.0.0b6/web3/_utils}/__init__.py +0 -0
  260. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/abi.py +0 -0
  261. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/async_caching.py +0 -0
  262. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/async_transactions.py +0 -0
  263. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/blocks.py +0 -0
  264. {web3-7.0.0b4/web3/scripts/release → web3-7.0.0b6/web3/_utils/contract_sources}/__init__.py +0 -0
  265. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/compile_contracts.py +0 -0
  266. {web3-7.0.0b4/web3/tools/benchmark → web3-7.0.0b6/web3/_utils/contract_sources/contract_data}/__init__.py +0 -0
  267. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/_custom_contract_data.py +0 -0
  268. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/address_reflector.py +0 -0
  269. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/arrays_contract.py +0 -0
  270. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/bytes_contracts.py +0 -0
  271. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/constructor_contracts.py +0 -0
  272. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/contract_caller_tester.py +0 -0
  273. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/emitter_contract.py +0 -0
  274. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/event_contracts.py +0 -0
  275. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/extended_resolver.py +0 -0
  276. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/fallback_function_contract.py +0 -0
  277. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +0 -0
  278. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/math_contract.py +0 -0
  279. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/offchain_lookup.py +0 -0
  280. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/offchain_resolver.py +0 -0
  281. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/panic_errors_contract.py +0 -0
  282. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/payable_tester.py +0 -0
  283. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/receive_function_contracts.py +0 -0
  284. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/reflector_contracts.py +0 -0
  285. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/revert_contract.py +0 -0
  286. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/simple_resolver.py +0 -0
  287. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/storage_contract.py +0 -0
  288. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/string_contract.py +0 -0
  289. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/contract_sources/contract_data/tuple_contracts.py +0 -0
  290. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/datatypes.py +0 -0
  291. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/decorators.py +0 -0
  292. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/empty.py +0 -0
  293. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/encoding.py +0 -0
  294. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/ens.py +0 -0
  295. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/error_formatters_utils.py +0 -0
  296. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/fee_utils.py +0 -0
  297. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/formatters.py +0 -0
  298. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/function_identifiers.py +0 -0
  299. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/http.py +0 -0
  300. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/hypothesis.py +0 -0
  301. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/math.py +0 -0
  302. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module.py +0 -0
  303. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module_testing/go_ethereum_admin_module.py +0 -0
  304. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module_testing/go_ethereum_txpool_module.py +0 -0
  305. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module_testing/net_module.py +0 -0
  306. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module_testing/persistent_connection_provider.py +0 -0
  307. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/module_testing/utils.py +0 -0
  308. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/normalizers.py +0 -0
  309. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/request.py +0 -0
  310. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/threads.py +0 -0
  311. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/transactions.py +0 -0
  312. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/type_conversion.py +0 -0
  313. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/utility_methods.py +0 -0
  314. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/validation.py +0 -0
  315. {web3-7.0.0b4 → web3-7.0.0b6}/web3/_utils/windows.py +0 -0
  316. {web3-7.0.0b4 → web3-7.0.0b6}/web3/auto/__init__.py +0 -0
  317. {web3-7.0.0b4 → web3-7.0.0b6}/web3/auto/gethdev.py +0 -0
  318. {web3-7.0.0b4 → web3-7.0.0b6}/web3/beacon/__init__.py +0 -0
  319. {web3-7.0.0b4 → web3-7.0.0b6}/web3/beacon/api_endpoints.py +0 -0
  320. {web3-7.0.0b4 → web3-7.0.0b6}/web3/beacon/async_beacon.py +0 -0
  321. {web3-7.0.0b4 → web3-7.0.0b6}/web3/beacon/beacon.py +0 -0
  322. {web3-7.0.0b4 → web3-7.0.0b6}/web3/constants.py +0 -0
  323. {web3-7.0.0b4 → web3-7.0.0b6}/web3/contract/__init__.py +0 -0
  324. {web3-7.0.0b4 → web3-7.0.0b6}/web3/datastructures.py +0 -0
  325. {web3-7.0.0b4 → web3-7.0.0b6}/web3/eth/__init__.py +0 -0
  326. {web3-7.0.0b4 → web3-7.0.0b6}/web3/eth/base_eth.py +0 -0
  327. /web3-7.0.0b4/web3/py.typed → /web3-7.0.0b6/web3/gas_strategies/__init__.py +0 -0
  328. {web3-7.0.0b4 → web3-7.0.0b6}/web3/gas_strategies/rpc.py +0 -0
  329. {web3-7.0.0b4 → web3-7.0.0b6}/web3/logs.py +0 -0
  330. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/__init__.py +0 -0
  331. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/attrdict.py +0 -0
  332. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/buffered_gas_estimate.py +0 -0
  333. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/formatting.py +0 -0
  334. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/gas_price_strategy.py +0 -0
  335. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/names.py +0 -0
  336. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/proof_of_authority.py +0 -0
  337. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/pythonic.py +0 -0
  338. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/stalecheck.py +0 -0
  339. {web3-7.0.0b4 → web3-7.0.0b6}/web3/middleware/validation.py +0 -0
  340. {web3-7.0.0b4 → web3-7.0.0b6}/web3/net.py +0 -0
  341. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/__init__.py +0 -0
  342. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/auto.py +0 -0
  343. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/eth_tester/__init__.py +0 -0
  344. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/persistent/__init__.py +0 -0
  345. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/persistent/persistent_connection.py +0 -0
  346. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/persistent/utils.py +0 -0
  347. {web3-7.0.0b4 → web3-7.0.0b6}/web3/providers/rpc/__init__.py +0 -0
  348. {web3-7.0.0b4 → web3-7.0.0b6}/web3/scripts/release/test_package.py +0 -0
  349. {web3-7.0.0b4 → web3-7.0.0b6}/web3/testing.py +0 -0
  350. {web3-7.0.0b4 → web3-7.0.0b6}/web3/tools/benchmark/main.py +0 -0
  351. {web3-7.0.0b4 → web3-7.0.0b6}/web3/tools/benchmark/reporting.py +0 -0
  352. {web3-7.0.0b4 → web3-7.0.0b6}/web3/tools/benchmark/utils.py +0 -0
  353. {web3-7.0.0b4 → web3-7.0.0b6}/web3/tracing.py +0 -0
  354. {web3-7.0.0b4 → web3-7.0.0b6}/web3/utils/__init__.py +0 -0
  355. {web3-7.0.0b4 → web3-7.0.0b6}/web3/utils/abi.py +0 -0
  356. {web3-7.0.0b4 → web3-7.0.0b6}/web3/utils/address.py +0 -0
  357. {web3-7.0.0b4 → web3-7.0.0b6}/web3/utils/async_exception_handling.py +0 -0
  358. {web3-7.0.0b4 → web3-7.0.0b6}/web3/utils/caching.py +0 -0
  359. {web3-7.0.0b4 → web3-7.0.0b6}/web3/utils/exception_handling.py +0 -0
  360. {web3-7.0.0b4 → web3-7.0.0b6}/web3.egg-info/dependency_links.txt +0 -0
  361. {web3-7.0.0b4 → web3-7.0.0b6}/web3.egg-info/not-zip-safe +0 -0
  362. {web3-7.0.0b4 → web3-7.0.0b6}/web3.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016 The Ethereum Foundation
3
+ Copyright (c) 2016-2024 The Ethereum Foundation
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,13 @@
1
+ include LICENSE
2
+ include README.md
3
+
4
+ recursive-include ens/specs *
5
+ recursive-include scripts *
6
+ recursive-include tests *
7
+
8
+ global-include *.pyi
9
+
10
+ recursive-exclude * __pycache__
11
+ recursive-exclude * *.py[co]
12
+ prune .tox
13
+ prune venv*
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: web3
3
- Version: 7.0.0b4
4
- Summary: web3.py
3
+ Version: 7.0.0b6
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
7
7
  Author-email: snakecharmers@ethereum.org
@@ -16,12 +16,13 @@ Classifier: Programming Language :: Python :: 3.8
16
16
  Classifier: Programming Language :: Python :: 3.9
17
17
  Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
- Requires-Python: >=3.8
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Requires-Python: >=3.8, <4
20
21
  Description-Content-Type: text/markdown
21
22
  License-File: LICENSE
22
23
  Requires-Dist: aiohttp>=3.7.4.post0
23
24
  Requires-Dist: eth-abi>=5.0.1
24
- Requires-Dist: eth-account>=0.12.0
25
+ Requires-Dist: eth-account>=0.12.2
25
26
  Requires-Dist: eth-hash[pycryptodome]>=0.5.1
26
27
  Requires-Dist: eth-typing>=4.0.0
27
28
  Requires-Dist: eth-utils>=4.0.0
@@ -32,39 +33,50 @@ Requires-Dist: requests>=2.16.0
32
33
  Requires-Dist: typing-extensions>=4.0.1
33
34
  Requires-Dist: websockets>=10.0.0
34
35
  Requires-Dist: pyunormalize>=15.0.0
35
- Provides-Extra: tester
36
- Requires-Dist: eth-tester[py-evm]<0.12.0b1,>=0.11.0b1; extra == "tester"
37
- Requires-Dist: py-geth>=4.1.0; extra == "tester"
38
- Provides-Extra: docs
39
- Requires-Dist: sphinx>=5.3.0; extra == "docs"
40
- Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
41
- Requires-Dist: towncrier<22,>=21; extra == "docs"
42
36
  Provides-Extra: dev
43
- Requires-Dist: eth-tester[py-evm]<0.12.0b1,>=0.11.0b1; extra == "dev"
44
- Requires-Dist: py-geth>=4.1.0; extra == "dev"
45
- Requires-Dist: sphinx>=5.3.0; extra == "dev"
46
- Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
47
- Requires-Dist: towncrier<22,>=21; extra == "dev"
48
37
  Requires-Dist: build>=0.9.0; extra == "dev"
49
- Requires-Dist: bumpversion; extra == "dev"
38
+ Requires-Dist: bumpversion>=0.5.3; extra == "dev"
50
39
  Requires-Dist: flaky>=3.7.0; extra == "dev"
51
40
  Requires-Dist: hypothesis>=3.31.2; extra == "dev"
41
+ Requires-Dist: ipython; extra == "dev"
52
42
  Requires-Dist: pre-commit>=3.4.0; extra == "dev"
53
- Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "dev"
43
+ Requires-Dist: pytest-asyncio<0.23,>=0.21.2; extra == "dev"
54
44
  Requires-Dist: pytest-mock>=1.10; extra == "dev"
55
- Requires-Dist: pytest-watch>=4.2; extra == "dev"
56
- Requires-Dist: pytest-xdist>=1.29; extra == "dev"
57
- Requires-Dist: pytest>=7.0.0; extra == "dev"
58
45
  Requires-Dist: setuptools>=38.6.0; extra == "dev"
59
- Requires-Dist: tox>=3.18.0; extra == "dev"
46
+ Requires-Dist: tox>=4.0.0; extra == "dev"
60
47
  Requires-Dist: tqdm>4.32; extra == "dev"
61
48
  Requires-Dist: twine>=1.13; extra == "dev"
49
+ Requires-Dist: wheel; extra == "dev"
50
+ Requires-Dist: sphinx>=6.0.0; extra == "dev"
51
+ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
52
+ Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
53
+ Requires-Dist: towncrier<22,>=21; extra == "dev"
54
+ Requires-Dist: eth-tester[py-evm]<0.12.0b1,>=0.11.0b1; extra == "dev"
55
+ Requires-Dist: py-geth>=4.1.0; extra == "dev"
56
+ Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "dev"
57
+ Requires-Dist: pytest-mock>=1.10; extra == "dev"
58
+ Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
59
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
60
+ Provides-Extra: docs
61
+ Requires-Dist: sphinx>=6.0.0; extra == "docs"
62
+ Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
63
+ Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
64
+ Requires-Dist: towncrier<22,>=21; extra == "docs"
65
+ Provides-Extra: test
66
+ Requires-Dist: eth-tester[py-evm]<0.12.0b1,>=0.11.0b1; extra == "test"
67
+ Requires-Dist: py-geth>=4.1.0; extra == "test"
68
+ Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "test"
69
+ Requires-Dist: pytest-mock>=1.10; extra == "test"
70
+ Requires-Dist: pytest-xdist>=2.4.0; extra == "test"
71
+ Requires-Dist: pytest>=7.0.0; extra == "test"
62
72
 
63
73
  # web3.py
64
74
 
65
- [![Documentation Status](https://readthedocs.org/projects/web3py/badge/?version=latest)](https://web3py.readthedocs.io/en/latest/?badge=latest)
66
- [![Discord](https://img.shields.io/discord/809793915578089484?color=blue&label=chat&logo=discord&logoColor=white)](https://discord.gg/GHryRvPB84)
75
+ [![Join the conversation on Discord](https://img.shields.io/discord/809793915578089484?color=blue&label=chat&logo=discord&logoColor=white)](https://discord.gg/GHryRvPB84)
67
76
  [![Build Status](https://circleci.com/gh/ethereum/web3.py.svg?style=shield)](https://circleci.com/gh/ethereum/web3.py)
77
+ [![PyPI version](https://badge.fury.io/py/web3.svg)](https://badge.fury.io/py/web3)
78
+ [![Python versions](https://img.shields.io/pypi/pyversions/web3.svg)](https://pypi.python.org/pypi/web3)
79
+ [![Docs build](https://readthedocs.org/projects/web3py/badge/?version=latest)](https://web3py.readthedocs.io/en/latest/?badge=latest)
68
80
 
69
81
  A Python library for interacting with Ethereum.
70
82
 
@@ -1,8 +1,10 @@
1
1
  # web3.py
2
2
 
3
- [![Documentation Status](https://readthedocs.org/projects/web3py/badge/?version=latest)](https://web3py.readthedocs.io/en/latest/?badge=latest)
4
- [![Discord](https://img.shields.io/discord/809793915578089484?color=blue&label=chat&logo=discord&logoColor=white)](https://discord.gg/GHryRvPB84)
3
+ [![Join the conversation on Discord](https://img.shields.io/discord/809793915578089484?color=blue&label=chat&logo=discord&logoColor=white)](https://discord.gg/GHryRvPB84)
5
4
  [![Build Status](https://circleci.com/gh/ethereum/web3.py.svg?style=shield)](https://circleci.com/gh/ethereum/web3.py)
5
+ [![PyPI version](https://badge.fury.io/py/web3.svg)](https://badge.fury.io/py/web3)
6
+ [![Python versions](https://img.shields.io/pypi/pyversions/web3.svg)](https://pypi.python.org/pypi/web3)
7
+ [![Docs build](https://readthedocs.org/projects/web3py/badge/?version=latest)](https://web3py.readthedocs.io/en/latest/?badge=latest)
6
8
 
7
9
  A Python library for interacting with Ethereum.
8
10
 
@@ -5,47 +5,53 @@ from setuptools import (
5
5
  )
6
6
 
7
7
  extras_require = {
8
- "tester": [
9
- "eth-tester[py-evm]>=0.11.0b1,<0.12.0b1",
10
- "py-geth>=4.1.0",
11
- ],
12
- "docs": [
13
- "sphinx>=5.3.0",
14
- "sphinx_rtd_theme>=1.0.0",
15
- "towncrier>=21,<22",
16
- ],
17
8
  "dev": [
18
9
  "build>=0.9.0",
19
- "bumpversion",
10
+ "bumpversion>=0.5.3",
20
11
  "flaky>=3.7.0",
21
12
  "hypothesis>=3.31.2",
13
+ "ipython",
22
14
  "pre-commit>=3.4.0",
23
- "pytest-asyncio>=0.18.1,<0.23",
15
+ "pytest-asyncio>=0.21.2,<0.23",
24
16
  "pytest-mock>=1.10",
25
- "pytest-watch>=4.2",
26
- "pytest-xdist>=1.29",
27
- "pytest>=7.0.0",
28
17
  "setuptools>=38.6.0",
29
- "tox>=3.18.0",
18
+ "tox>=4.0.0",
30
19
  "tqdm>4.32",
31
20
  "twine>=1.13",
21
+ "wheel",
22
+ ],
23
+ "docs": [
24
+ "sphinx>=6.0.0",
25
+ "sphinx-autobuild>=2021.3.14",
26
+ "sphinx_rtd_theme>=1.0.0",
27
+ "towncrier>=21,<22",
28
+ ],
29
+ "test": [
30
+ "eth-tester[py-evm]>=0.11.0b1,<0.12.0b1",
31
+ "py-geth>=4.1.0",
32
+ "pytest-asyncio>=0.18.1,<0.23",
33
+ "pytest-mock>=1.10",
34
+ "pytest-xdist>=2.4.0",
35
+ "pytest>=7.0.0",
32
36
  ],
33
37
  }
34
38
 
35
39
  extras_require["dev"] = (
36
- extras_require["tester"] + extras_require["docs"] + extras_require["dev"]
40
+ extras_require["dev"] + extras_require["docs"] + extras_require["test"]
37
41
  )
38
42
 
43
+
39
44
  with open("./README.md") as readme:
40
45
  long_description = readme.read()
41
46
 
47
+
42
48
  setup(
43
49
  name="web3",
44
- # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
45
- version="7.0.0-beta.4",
46
- description="""web3.py""",
47
- long_description_content_type="text/markdown",
50
+ # *IMPORTANT*: Don't manually change the version here. Use `make bump`, as described in readme
51
+ version="7.0.0-beta.6",
52
+ description="""web3: A Python library for interacting with Ethereum""",
48
53
  long_description=long_description,
54
+ long_description_content_type="text/markdown",
49
55
  author="The Ethereum Foundation",
50
56
  author_email="snakecharmers@ethereum.org",
51
57
  url="https://github.com/ethereum/web3.py",
@@ -53,7 +59,7 @@ setup(
53
59
  install_requires=[
54
60
  "aiohttp>=3.7.4.post0",
55
61
  "eth-abi>=5.0.1",
56
- "eth-account>=0.12.0",
62
+ "eth-account>=0.12.2",
57
63
  "eth-hash[pycryptodome]>=0.5.1",
58
64
  "eth-typing>=4.0.0",
59
65
  "eth-utils>=4.0.0",
@@ -65,13 +71,13 @@ setup(
65
71
  "websockets>=10.0.0",
66
72
  "pyunormalize>=15.0.0",
67
73
  ],
68
- python_requires=">=3.8",
74
+ python_requires=">=3.8, <4",
69
75
  extras_require=extras_require,
70
76
  py_modules=["web3", "ens"],
71
77
  license="MIT",
72
78
  zip_safe=False,
73
79
  keywords="ethereum",
74
- packages=find_packages(exclude=["tests", "tests.*"]),
80
+ packages=find_packages(exclude=["scripts", "scripts.*", "tests", "tests.*"]),
75
81
  package_data={"web3": ["py.typed"]},
76
82
  classifiers=[
77
83
  "Development Status :: 5 - Production/Stable",
@@ -83,5 +89,6 @@ setup(
83
89
  "Programming Language :: Python :: 3.9",
84
90
  "Programming Language :: Python :: 3.10",
85
91
  "Programming Language :: Python :: 3.11",
92
+ "Programming Language :: Python :: 3.12",
86
93
  ],
87
94
  )
Binary file
@@ -0,0 +1,270 @@
1
+ import pytest
2
+ from random import (
3
+ randint,
4
+ )
5
+
6
+ import pytest_asyncio
7
+
8
+ from web3._utils.request import (
9
+ _async_session_cache,
10
+ )
11
+ from web3.beacon import (
12
+ AsyncBeacon,
13
+ )
14
+ from web3.exceptions import (
15
+ Web3ValueError,
16
+ )
17
+
18
+ # tested against lighthouse which uses port 5052 by default
19
+ BASE_URL = "http://localhost:5052"
20
+
21
+
22
+ def _assert_valid_response(response):
23
+ # assert valid response according to Beacon API spec
24
+ assert isinstance(response, dict)
25
+ assert "data" in response
26
+
27
+
28
+ @pytest.fixture
29
+ def async_beacon():
30
+ return AsyncBeacon(base_url=BASE_URL)
31
+
32
+
33
+ @pytest_asyncio.fixture(autouse=True)
34
+ async def _cleanup():
35
+ yield
36
+ [await session.close() for _, session in _async_session_cache.items()]
37
+ _async_session_cache.clear()
38
+
39
+
40
+ # sanity check to make sure the positive test cases are valid
41
+ @pytest.mark.asyncio
42
+ async def test_async_cl_beacon_raises_exception_on_invalid_url(async_beacon):
43
+ with pytest.raises(Web3ValueError):
44
+ await async_beacon._async_make_get_request(
45
+ BASE_URL + "/eth/v1/beacon/nonexistent"
46
+ )
47
+
48
+
49
+ @pytest.mark.asyncio
50
+ async def test_async_beacon_user_request_timeout():
51
+ beacon = AsyncBeacon(base_url=BASE_URL, request_timeout=0.001)
52
+ with pytest.raises(TimeoutError):
53
+ await beacon.get_validators()
54
+
55
+
56
+ # Beacon endpoint tests:
57
+
58
+
59
+ @pytest.mark.asyncio
60
+ async def test_async_cl_beacon_get_genesis(async_beacon):
61
+ response = await async_beacon.get_genesis()
62
+ _assert_valid_response(response)
63
+
64
+
65
+ @pytest.mark.asyncio
66
+ async def test_async_cl_beacon_get_hash_root(async_beacon):
67
+ response = await async_beacon.get_hash_root()
68
+ _assert_valid_response(response)
69
+
70
+
71
+ @pytest.mark.asyncio
72
+ async def test_async_cl_beacon_get_fork_data(async_beacon):
73
+ response = await async_beacon.get_fork_data()
74
+ _assert_valid_response(response)
75
+
76
+
77
+ @pytest.mark.asyncio
78
+ async def test_async_cl_beacon_get_finality_checkpoint(async_beacon):
79
+ response = await async_beacon.get_finality_checkpoint()
80
+ _assert_valid_response(response)
81
+
82
+
83
+ @pytest.mark.asyncio
84
+ async def test_async_cl_beacon_get_validators(async_beacon):
85
+ response = await async_beacon.get_validators()
86
+ _assert_valid_response(response)
87
+
88
+
89
+ @pytest.mark.asyncio
90
+ async def test_async_cl_beacon_get_validator(async_beacon):
91
+ validators_response = await async_beacon.get_validators()
92
+ _assert_valid_response(validators_response)
93
+
94
+ validators = validators_response["data"]
95
+ random_validator = validators[randint(0, len(validators))]
96
+ random_validator_pubkey = random_validator["validator"]["pubkey"]
97
+
98
+ response = await async_beacon.get_validator(random_validator_pubkey)
99
+ _assert_valid_response(response)
100
+
101
+
102
+ @pytest.mark.asyncio
103
+ async def test_async_cl_beacon_get_validator_balances(async_beacon):
104
+ response = await async_beacon.get_validator_balances()
105
+ _assert_valid_response(response)
106
+
107
+
108
+ @pytest.mark.asyncio
109
+ async def test_async_cl_beacon_get_epoch_committees(async_beacon):
110
+ response = await async_beacon.get_epoch_committees()
111
+ _assert_valid_response(response)
112
+
113
+
114
+ @pytest.mark.asyncio
115
+ async def test_async_cl_beacon_get_epoch_sync_committees(async_beacon):
116
+ response = await async_beacon.get_epoch_sync_committees()
117
+ _assert_valid_response(response)
118
+
119
+
120
+ @pytest.mark.asyncio
121
+ async def test_async_cl_beacon_get_epoch_randao(async_beacon):
122
+ response = await async_beacon.get_epoch_randao()
123
+ _assert_valid_response(response)
124
+
125
+
126
+ @pytest.mark.asyncio
127
+ async def test_async_cl_beacon_get_block_headers(async_beacon):
128
+ response = await async_beacon.get_block_headers()
129
+ _assert_valid_response(response)
130
+
131
+
132
+ @pytest.mark.asyncio
133
+ async def test_async_cl_beacon_get_block_header(async_beacon):
134
+ response = await async_beacon.get_block_header("head")
135
+ _assert_valid_response(response)
136
+
137
+
138
+ @pytest.mark.asyncio
139
+ async def test_async_cl_beacon_get_block(async_beacon):
140
+ response = await async_beacon.get_block("head")
141
+ _assert_valid_response(response)
142
+
143
+
144
+ @pytest.mark.asyncio
145
+ async def test_async_cl_beacon_get_block_root(async_beacon):
146
+ response = await async_beacon.get_block_root("head")
147
+ _assert_valid_response(response)
148
+
149
+
150
+ @pytest.mark.asyncio
151
+ async def test_async_cl_beacon_get_blinded_blocks(async_beacon):
152
+ response = await async_beacon.get_blinded_blocks("head")
153
+ _assert_valid_response(response)
154
+
155
+
156
+ @pytest.mark.asyncio
157
+ async def test_async_cl_beacon_get_rewards(async_beacon):
158
+ response = await async_beacon.get_rewards("head")
159
+ _assert_valid_response(response)
160
+
161
+
162
+ @pytest.mark.asyncio
163
+ async def test_async_cl_beacon_get_block_attestations(async_beacon):
164
+ response = await async_beacon.get_block_attestations("head")
165
+ _assert_valid_response(response)
166
+
167
+
168
+ @pytest.mark.asyncio
169
+ async def test_async_cl_beacon_get_attestations(async_beacon):
170
+ response = await async_beacon.get_attestations()
171
+ _assert_valid_response(response)
172
+
173
+
174
+ @pytest.mark.asyncio
175
+ async def test_async_cl_beacon_get_attester_slashings(async_beacon):
176
+ response = await async_beacon.get_attester_slashings()
177
+ _assert_valid_response(response)
178
+
179
+
180
+ @pytest.mark.asyncio
181
+ async def test_async_cl_beacon_get_proposer_slashings(async_beacon):
182
+ response = await async_beacon.get_proposer_slashings()
183
+ _assert_valid_response(response)
184
+
185
+
186
+ @pytest.mark.asyncio
187
+ async def test_async_cl_beacon_get_voluntary_exits(async_beacon):
188
+ response = await async_beacon.get_voluntary_exits()
189
+ _assert_valid_response(response)
190
+
191
+
192
+ @pytest.mark.asyncio
193
+ async def test_async_cl_beacon_get_bls_to_execution_changes(async_beacon):
194
+ response = await async_beacon.get_bls_to_execution_changes()
195
+ _assert_valid_response(response)
196
+
197
+
198
+ # Config endpoint tests:
199
+
200
+
201
+ @pytest.mark.asyncio
202
+ async def test_async_cl_config_get_fork_schedule(async_beacon):
203
+ response = await async_beacon.get_fork_schedule()
204
+ _assert_valid_response(response)
205
+
206
+
207
+ @pytest.mark.asyncio
208
+ async def test_async_cl_config_get_spec(async_beacon):
209
+ response = await async_beacon.get_spec()
210
+ _assert_valid_response(response)
211
+
212
+
213
+ @pytest.mark.asyncio
214
+ async def test_async_cl_config_get_deposit_contract(async_beacon):
215
+ response = await async_beacon.get_deposit_contract()
216
+ _assert_valid_response(response)
217
+
218
+
219
+ # Debug endpoint tests:
220
+
221
+
222
+ @pytest.mark.asyncio
223
+ async def test_async_cl_debug_get_beacon_state(async_beacon):
224
+ response = await async_beacon.get_beacon_state()
225
+ _assert_valid_response(response)
226
+
227
+
228
+ @pytest.mark.asyncio
229
+ async def test_async_cl_debug_get_beacon_heads(async_beacon):
230
+ response = await async_beacon.get_beacon_heads()
231
+ _assert_valid_response(response)
232
+
233
+
234
+ # Node endpoint tests:
235
+
236
+
237
+ @pytest.mark.asyncio
238
+ async def test_async_cl_node_get_node_identity(async_beacon):
239
+ response = await async_beacon.get_node_identity()
240
+ _assert_valid_response(response)
241
+
242
+
243
+ @pytest.mark.asyncio
244
+ async def test_async_cl_node_get_peers(async_beacon):
245
+ response = await async_beacon.get_peers()
246
+ _assert_valid_response(response)
247
+
248
+
249
+ @pytest.mark.asyncio
250
+ async def test_async_cl_node_get_peer(async_beacon):
251
+ response = await async_beacon.get_peer("")
252
+ _assert_valid_response(response)
253
+
254
+
255
+ @pytest.mark.asyncio
256
+ async def test_async_cl_node_get_health(async_beacon):
257
+ response = await async_beacon.get_health()
258
+ assert isinstance(response, int)
259
+
260
+
261
+ @pytest.mark.asyncio
262
+ async def test_async_cl_node_get_version(async_beacon):
263
+ response = await async_beacon.get_version()
264
+ _assert_valid_response(response)
265
+
266
+
267
+ @pytest.mark.asyncio
268
+ async def test_async_cl_node_get_syncing(async_beacon):
269
+ response = await async_beacon.get_syncing()
270
+ _assert_valid_response(response)