web3 6.20.0__tar.gz → 6.20.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 (455) hide show
  1. {web3-6.20.0 → web3-6.20.1}/PKG-INFO +1 -1
  2. {web3-6.20.0 → web3-6.20.1}/setup.py +1 -1
  3. web3-6.20.1/tests/.DS_Store +0 -0
  4. web3-6.20.1/tests/beacon/test_async_beacon.py +267 -0
  5. web3-6.20.1/tests/beacon/test_beacon.py +231 -0
  6. web3-6.20.1/tests/conftest.py +109 -0
  7. web3-6.20.1/tests/core/admin-module/test_admin_addPeer.py +7 -0
  8. web3-6.20.1/tests/core/admin-module/test_admin_nodeInfo.py +7 -0
  9. web3-6.20.1/tests/core/admin-module/test_admin_peers.py +4 -0
  10. web3-6.20.1/tests/core/block-utils/test_select_method_for_block_identifier.py +45 -0
  11. web3-6.20.1/tests/core/caching-utils/test_generate_cache_key.py +51 -0
  12. web3-6.20.1/tests/core/conftest.py +131 -0
  13. web3-6.20.1/tests/core/contracts/conftest.py +749 -0
  14. web3-6.20.1/tests/core/contracts/test_args_and_kwargs_merger.py +109 -0
  15. web3-6.20.1/tests/core/contracts/test_contract_ambiguous_functions.py +193 -0
  16. web3-6.20.1/tests/core/contracts/test_contract_attributes.py +43 -0
  17. web3-6.20.1/tests/core/contracts/test_contract_build_transaction.py +528 -0
  18. web3-6.20.1/tests/core/contracts/test_contract_call_interface.py +2315 -0
  19. web3-6.20.1/tests/core/contracts/test_contract_caller_interface.py +415 -0
  20. web3-6.20.1/tests/core/contracts/test_contract_class_construction.py +87 -0
  21. web3-6.20.1/tests/core/contracts/test_contract_constructor.py +597 -0
  22. web3-6.20.1/tests/core/contracts/test_contract_constructor_encoding.py +130 -0
  23. web3-6.20.1/tests/core/contracts/test_contract_deployment.py +238 -0
  24. web3-6.20.1/tests/core/contracts/test_contract_estimate_gas.py +216 -0
  25. web3-6.20.1/tests/core/contracts/test_contract_events_build_filter.py +67 -0
  26. web3-6.20.1/tests/core/contracts/test_contract_example.py +220 -0
  27. web3-6.20.1/tests/core/contracts/test_contract_init.py +76 -0
  28. web3-6.20.1/tests/core/contracts/test_contract_method_abi_decoding.py +149 -0
  29. web3-6.20.1/tests/core/contracts/test_contract_method_abi_encoding.py +233 -0
  30. web3-6.20.1/tests/core/contracts/test_contract_method_to_argument_matching.py +204 -0
  31. web3-6.20.1/tests/core/contracts/test_contract_panic_errors.py +48 -0
  32. web3-6.20.1/tests/core/contracts/test_contract_transact_interface.py +614 -0
  33. web3-6.20.1/tests/core/contracts/test_contract_util_functions.py +128 -0
  34. web3-6.20.1/tests/core/contracts/test_extracting_event_data.py +1162 -0
  35. web3-6.20.1/tests/core/contracts/test_extracting_event_data_old.py +155 -0
  36. web3-6.20.1/tests/core/contracts/test_offchain_lookup.py +210 -0
  37. web3-6.20.1/tests/core/contracts/utils.py +27 -0
  38. web3-6.20.1/tests/core/datastructures/test_datastructures.py +209 -0
  39. web3-6.20.1/tests/core/empty-object/test_empty_object_is_falsy.py +8 -0
  40. web3-6.20.1/tests/core/eth-module/conftest.py +16 -0
  41. web3-6.20.1/tests/core/eth-module/test_accounts.py +578 -0
  42. web3-6.20.1/tests/core/eth-module/test_block_api.py +191 -0
  43. web3-6.20.1/tests/core/eth-module/test_default_account_api.py +41 -0
  44. web3-6.20.1/tests/core/eth-module/test_eth_contract.py +47 -0
  45. web3-6.20.1/tests/core/eth-module/test_eth_fee_history.py +22 -0
  46. web3-6.20.1/tests/core/eth-module/test_eth_filter.py +50 -0
  47. web3-6.20.1/tests/core/eth-module/test_eth_properties.py +33 -0
  48. web3-6.20.1/tests/core/eth-module/test_gas_pricing.py +27 -0
  49. web3-6.20.1/tests/core/eth-module/test_poa.py +58 -0
  50. web3-6.20.1/tests/core/eth-module/test_transactions.py +466 -0
  51. web3-6.20.1/tests/core/eth-tester-api/test_withdrawals.py +55 -0
  52. web3-6.20.1/tests/core/exceptions/test_exceptions.py +32 -0
  53. web3-6.20.1/tests/core/filtering/conftest.py +108 -0
  54. web3-6.20.1/tests/core/filtering/test_basic_filter_tests.py +78 -0
  55. web3-6.20.1/tests/core/filtering/test_contract_create_filter_topic_merging.py +16 -0
  56. web3-6.20.1/tests/core/filtering/test_contract_data_filters.py +475 -0
  57. web3-6.20.1/tests/core/filtering/test_contract_get_logs.py +394 -0
  58. web3-6.20.1/tests/core/filtering/test_contract_on_event_filtering.py +476 -0
  59. web3-6.20.1/tests/core/filtering/test_contract_past_event_filtering.py +190 -0
  60. web3-6.20.1/tests/core/filtering/test_contract_topic_filters.py +440 -0
  61. web3-6.20.1/tests/core/filtering/test_existing_filter_instance.py +84 -0
  62. web3-6.20.1/tests/core/filtering/test_filter_against_latest_blocks.py +52 -0
  63. web3-6.20.1/tests/core/filtering/test_filter_against_pending_transactions.py +60 -0
  64. web3-6.20.1/tests/core/filtering/test_filter_against_transaction_logs.py +40 -0
  65. web3-6.20.1/tests/core/filtering/test_filters_against_many_blocks.py +311 -0
  66. web3-6.20.1/tests/core/filtering/test_utils_functions.py +222 -0
  67. web3-6.20.1/tests/core/filtering/utils.py +77 -0
  68. web3-6.20.1/tests/core/gas-strategies/test_rpc_gas_pricing_strategies.py +11 -0
  69. web3-6.20.1/tests/core/gas-strategies/test_time_based_gas_price_strategy.py +291 -0
  70. web3-6.20.1/tests/core/manager/conftest.py +30 -0
  71. web3-6.20.1/tests/core/manager/test_default_middlewares.py +49 -0
  72. web3-6.20.1/tests/core/manager/test_middleware_can_be_stateful.py +30 -0
  73. web3-6.20.1/tests/core/manager/test_middleware_onion_api.py +184 -0
  74. web3-6.20.1/tests/core/manager/test_provider_property.py +20 -0
  75. web3-6.20.1/tests/core/manager/test_provider_request_wrapping.py +31 -0
  76. web3-6.20.1/tests/core/manager/test_response_formatters.py +342 -0
  77. web3-6.20.1/tests/core/method-class/test_method.py +384 -0
  78. web3-6.20.1/tests/core/method-class/test_result_formatters.py +58 -0
  79. web3-6.20.1/tests/core/middleware/test_attrdict_middleware.py +157 -0
  80. web3-6.20.1/tests/core/middleware/test_eth_tester_middleware.py +205 -0
  81. web3-6.20.1/tests/core/middleware/test_filter_middleware.py +404 -0
  82. web3-6.20.1/tests/core/middleware/test_formatting_middleware.py +126 -0
  83. web3-6.20.1/tests/core/middleware/test_gas_price_strategy.py +93 -0
  84. web3-6.20.1/tests/core/middleware/test_name_to_address_middleware.py +182 -0
  85. web3-6.20.1/tests/core/middleware/test_stalecheck.py +224 -0
  86. web3-6.20.1/tests/core/middleware/test_transaction_signing.py +617 -0
  87. web3-6.20.1/tests/core/module-class/test_module.py +98 -0
  88. web3-6.20.1/tests/core/providers/test_async_http_provider.py +109 -0
  89. web3-6.20.1/tests/core/providers/test_async_tester_provider.py +67 -0
  90. web3-6.20.1/tests/core/providers/test_auto_provider.py +57 -0
  91. web3-6.20.1/tests/core/providers/test_base_provider.py +57 -0
  92. web3-6.20.1/tests/core/providers/test_http_provider.py +112 -0
  93. web3-6.20.1/tests/core/providers/test_ipc_provider.py +103 -0
  94. web3-6.20.1/tests/core/providers/test_tester_provider.py +120 -0
  95. web3-6.20.1/tests/core/providers/test_websocket_provider.py +86 -0
  96. web3-6.20.1/tests/core/testing-module/test_testing_mine.py +22 -0
  97. web3-6.20.1/tests/core/testing-module/test_testing_snapshot_and_revert.py +47 -0
  98. web3-6.20.1/tests/core/testing-module/test_testing_timeTravel.py +9 -0
  99. web3-6.20.1/tests/core/utilities/conftest.py +14 -0
  100. web3-6.20.1/tests/core/utilities/test_abi.py +384 -0
  101. web3-6.20.1/tests/core/utilities/test_abi_filter_by_abi_name.py +73 -0
  102. web3-6.20.1/tests/core/utilities/test_abi_filtering_by_argument_name.py +61 -0
  103. web3-6.20.1/tests/core/utilities/test_abi_is_encodable.py +102 -0
  104. web3-6.20.1/tests/core/utilities/test_abi_named_tree.py +107 -0
  105. web3-6.20.1/tests/core/utilities/test_address.py +71 -0
  106. web3-6.20.1/tests/core/utilities/test_async_transaction.py +97 -0
  107. web3-6.20.1/tests/core/utilities/test_attach_modules.py +215 -0
  108. web3-6.20.1/tests/core/utilities/test_attributedict.py +109 -0
  109. web3-6.20.1/tests/core/utilities/test_caching_utils.py +35 -0
  110. web3-6.20.1/tests/core/utilities/test_construct_event_data_set.py +150 -0
  111. web3-6.20.1/tests/core/utilities/test_construct_event_filter_params.py +103 -0
  112. web3-6.20.1/tests/core/utilities/test_construct_event_topics.py +164 -0
  113. web3-6.20.1/tests/core/utilities/test_datatypes.py +35 -0
  114. web3-6.20.1/tests/core/utilities/test_decorators.py +23 -0
  115. web3-6.20.1/tests/core/utilities/test_encoding.py +291 -0
  116. web3-6.20.1/tests/core/utilities/test_event_filter_builder.py +80 -0
  117. web3-6.20.1/tests/core/utilities/test_event_interface.py +34 -0
  118. web3-6.20.1/tests/core/utilities/test_fee_utils.py +64 -0
  119. web3-6.20.1/tests/core/utilities/test_formatters.py +53 -0
  120. web3-6.20.1/tests/core/utilities/test_is_predefined_block_number.py +22 -0
  121. web3-6.20.1/tests/core/utilities/test_is_probably_enum.py +23 -0
  122. web3-6.20.1/tests/core/utilities/test_is_recognized_type.py +182 -0
  123. web3-6.20.1/tests/core/utilities/test_math.py +48 -0
  124. web3-6.20.1/tests/core/utilities/test_method_formatters.py +194 -0
  125. web3-6.20.1/tests/core/utilities/test_prepare_transaction_replacement.py +129 -0
  126. web3-6.20.1/tests/core/utilities/test_select_filter_method.py +44 -0
  127. web3-6.20.1/tests/core/utilities/test_threads.py +107 -0
  128. web3-6.20.1/tests/core/utilities/test_valid_transaction_params.py +174 -0
  129. web3-6.20.1/tests/core/utilities/test_validation.py +145 -0
  130. web3-6.20.1/tests/core/web3-module/test_api.py +2 -0
  131. web3-6.20.1/tests/core/web3-module/test_attach_modules.py +107 -0
  132. web3-6.20.1/tests/core/web3-module/test_client_version.py +2 -0
  133. web3-6.20.1/tests/core/web3-module/test_conversions.py +257 -0
  134. web3-6.20.1/tests/core/web3-module/test_import_and_version.py +5 -0
  135. web3-6.20.1/tests/core/web3-module/test_keccak.py +123 -0
  136. web3-6.20.1/tests/core/web3-module/test_providers.py +32 -0
  137. web3-6.20.1/tests/core/web3-module/test_strict_bytes_type_checking.py +106 -0
  138. web3-6.20.1/tests/core/web3-module/test_web3_inheritance.py +12 -0
  139. web3-6.20.1/tests/ens/conftest.py +661 -0
  140. web3-6.20.1/tests/ens/normalization/normalization_tests.json +1 -0
  141. web3-6.20.1/tests/ens/normalization/test_normalize_name_ensip15.py +47 -0
  142. web3-6.20.1/tests/ens/test_ens.py +279 -0
  143. web3-6.20.1/tests/ens/test_get_registry.py +53 -0
  144. web3-6.20.1/tests/ens/test_get_text.py +166 -0
  145. web3-6.20.1/tests/ens/test_nameprep.py +37 -0
  146. web3-6.20.1/tests/ens/test_offchain_resolution.py +234 -0
  147. web3-6.20.1/tests/ens/test_setup_address.py +288 -0
  148. web3-6.20.1/tests/ens/test_setup_name.py +250 -0
  149. web3-6.20.1/tests/ens/test_utils.py +229 -0
  150. web3-6.20.1/tests/ens/test_wildcard_resolution.py +48 -0
  151. web3-6.20.1/tests/integration/.DS_Store +0 -0
  152. web3-6.20.1/tests/integration/README.md +94 -0
  153. web3-6.20.1/tests/integration/common.py +23 -0
  154. web3-6.20.1/tests/integration/conftest.py +108 -0
  155. web3-6.20.1/tests/integration/generate_fixtures/common.py +236 -0
  156. web3-6.20.1/tests/integration/generate_fixtures/go_ethereum.py +370 -0
  157. web3-6.20.1/tests/integration/go_ethereum/common.py +116 -0
  158. web3-6.20.1/tests/integration/go_ethereum/conftest.py +413 -0
  159. web3-6.20.1/tests/integration/go_ethereum/test_goethereum_http.py +170 -0
  160. web3-6.20.1/tests/integration/go_ethereum/test_goethereum_ipc.py +90 -0
  161. web3-6.20.1/tests/integration/go_ethereum/utils.py +65 -0
  162. web3-6.20.1/tests/integration/test_ethereum_tester.py +673 -0
  163. web3-6.20.1/tests/utils.py +87 -0
  164. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/module_testing_utils.py +12 -9
  165. {web3-6.20.0 → web3-6.20.1}/web3/providers/persistent.py +10 -4
  166. {web3-6.20.0 → web3-6.20.1}/web3/providers/websocket/websocket_v2.py +2 -3
  167. web3-6.20.1/web3/scripts/release/__init__.py +0 -0
  168. web3-6.20.1/web3/tools/benchmark/__init__.py +0 -0
  169. web3-6.20.1/web3/tools/pytest_ethereum/__init__.py +0 -0
  170. {web3-6.20.0 → web3-6.20.1}/web3.egg-info/PKG-INFO +1 -1
  171. {web3-6.20.0 → web3-6.20.1}/web3.egg-info/SOURCES.txt +164 -0
  172. {web3-6.20.0 → web3-6.20.1}/LICENSE +0 -0
  173. {web3-6.20.0 → web3-6.20.1}/MANIFEST.in +0 -0
  174. {web3-6.20.0 → web3-6.20.1}/README.md +0 -0
  175. {web3-6.20.0 → web3-6.20.1}/ens/__init__.py +0 -0
  176. {web3-6.20.0 → web3-6.20.1}/ens/_normalization.py +0 -0
  177. {web3-6.20.0 → web3-6.20.1}/ens/abis.py +0 -0
  178. {web3-6.20.0 → web3-6.20.1}/ens/async_ens.py +0 -0
  179. {web3-6.20.0 → web3-6.20.1}/ens/auto.py +0 -0
  180. {web3-6.20.0 → web3-6.20.1}/ens/base_ens.py +0 -0
  181. {web3-6.20.0 → web3-6.20.1}/ens/constants.py +0 -0
  182. {web3-6.20.0 → web3-6.20.1}/ens/contract_data.py +0 -0
  183. {web3-6.20.0 → web3-6.20.1}/ens/ens.py +0 -0
  184. {web3-6.20.0 → web3-6.20.1}/ens/exceptions.py +0 -0
  185. {web3-6.20.0 → web3-6.20.1}/ens/specs/nf.json +0 -0
  186. {web3-6.20.0 → web3-6.20.1}/ens/specs/normalization_spec.json +0 -0
  187. {web3-6.20.0 → web3-6.20.1}/ens/utils.py +0 -0
  188. {web3-6.20.0 → web3-6.20.1}/ethpm/__init__.py +0 -0
  189. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/__init__.py +0 -0
  190. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/backend.py +0 -0
  191. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/cache.py +0 -0
  192. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/chains.py +0 -0
  193. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/contract.py +0 -0
  194. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/deployments.py +0 -0
  195. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/ipfs.py +0 -0
  196. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/protobuf/__init__.py +0 -0
  197. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/protobuf/ipfs_file_pb2.py +0 -0
  198. {web3-6.20.0 → web3-6.20.1}/ethpm/_utils/registry.py +0 -0
  199. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/__init__.py +0 -0
  200. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/ens/v3.json +0 -0
  201. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/escrow/with_bytecode_v3.json +0 -0
  202. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/ipfs_file.proto +0 -0
  203. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/owned/output_v3.json +0 -0
  204. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/owned/with_contract_type_v3.json +0 -0
  205. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/contracts/Authority.sol +0 -0
  206. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/contracts/IndexedOrderedSetLib.sol +0 -0
  207. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/contracts/PackageDB.sol +0 -0
  208. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/contracts/PackageRegistry.sol +0 -0
  209. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/contracts/PackageRegistryInterface.sol +0 -0
  210. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/contracts/ReleaseDB.sol +0 -0
  211. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/contracts/ReleaseValidator.sol +0 -0
  212. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/solc_input.json +0 -0
  213. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/solc_output.json +0 -0
  214. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/registry/v3.json +0 -0
  215. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/safe-math-lib/v3-strict-no-deployments.json +0 -0
  216. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/simple-registry/contracts/Ownable.sol +0 -0
  217. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/simple-registry/contracts/PackageRegistry.sol +0 -0
  218. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/simple-registry/contracts/PackageRegistryInterface.sol +0 -0
  219. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/simple-registry/solc_input.json +0 -0
  220. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/simple-registry/solc_output.json +0 -0
  221. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/simple-registry/v3.json +0 -0
  222. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/standard-token/output_v3.json +0 -0
  223. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/standard-token/with_bytecode_v3.json +0 -0
  224. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/vyper_registry/0.1.0.json +0 -0
  225. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/vyper_registry/registry.vy +0 -0
  226. {web3-6.20.0 → web3-6.20.1}/ethpm/assets/vyper_registry/registry_with_delete.vy +0 -0
  227. {web3-6.20.0 → web3-6.20.1}/ethpm/backends/__init__.py +0 -0
  228. {web3-6.20.0 → web3-6.20.1}/ethpm/backends/base.py +0 -0
  229. {web3-6.20.0 → web3-6.20.1}/ethpm/backends/http.py +0 -0
  230. {web3-6.20.0 → web3-6.20.1}/ethpm/backends/ipfs.py +0 -0
  231. {web3-6.20.0 → web3-6.20.1}/ethpm/backends/registry.py +0 -0
  232. {web3-6.20.0 → web3-6.20.1}/ethpm/constants.py +0 -0
  233. {web3-6.20.0 → web3-6.20.1}/ethpm/contract.py +0 -0
  234. {web3-6.20.0 → web3-6.20.1}/ethpm/dependencies.py +0 -0
  235. {web3-6.20.0 → web3-6.20.1}/ethpm/deployments.py +0 -0
  236. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/escrow/1.0.0-pretty.json +0 -0
  237. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/escrow/1.0.0.json +0 -0
  238. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/escrow/contracts/Escrow.sol +0 -0
  239. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/escrow/contracts/SafeSendLib.sol +0 -0
  240. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/escrow/v3-pretty.json +0 -0
  241. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/escrow/v3.json +0 -0
  242. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/owned/1.0.0-pretty.json +0 -0
  243. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/owned/1.0.0.json +0 -0
  244. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/owned/contracts/Owned.sol +0 -0
  245. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/owned/v3-pretty.json +0 -0
  246. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/owned/v3.json +0 -0
  247. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/piper-coin/1.0.0-pretty.json +0 -0
  248. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/piper-coin/1.0.0.json +0 -0
  249. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/piper-coin/v3-pretty.json +0 -0
  250. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/piper-coin/v3.json +0 -0
  251. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/safe-math-lib/1.0.0-pretty.json +0 -0
  252. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/safe-math-lib/1.0.0.json +0 -0
  253. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/safe-math-lib/contracts/SafeMathLib.sol +0 -0
  254. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/safe-math-lib/v3-pretty.json +0 -0
  255. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/safe-math-lib/v3.json +0 -0
  256. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/standard-token/1.0.0-pretty.json +0 -0
  257. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/standard-token/1.0.0.json +0 -0
  258. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/standard-token/contracts/AbstractToken.sol +0 -0
  259. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/standard-token/contracts/StandardToken.sol +0 -0
  260. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/standard-token/v3-pretty.json +0 -0
  261. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/standard-token/v3.json +0 -0
  262. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/transferable/1.0.0-pretty.json +0 -0
  263. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/transferable/1.0.0.json +0 -0
  264. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/transferable/contracts/Transferable.sol +0 -0
  265. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/transferable/v3-pretty.json +0 -0
  266. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/transferable/v3.json +0 -0
  267. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet/1.0.0-pretty.json +0 -0
  268. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet/1.0.0.json +0 -0
  269. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet/contracts/Wallet.sol +0 -0
  270. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet/v3-pretty.json +0 -0
  271. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet/v3.json +0 -0
  272. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet-with-send/1.0.0-pretty.json +0 -0
  273. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet-with-send/1.0.0.json +0 -0
  274. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet-with-send/contracts/WalletWithSend.sol +0 -0
  275. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet-with-send/v3-pretty.json +0 -0
  276. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/examples/wallet-with-send/v3.json +0 -0
  277. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/spec/package.spec.json +0 -0
  278. {web3-6.20.0 → web3-6.20.1}/ethpm/ethpm-spec/spec/v3.spec.json +0 -0
  279. {web3-6.20.0 → web3-6.20.1}/ethpm/exceptions.py +0 -0
  280. {web3-6.20.0 → web3-6.20.1}/ethpm/package.py +0 -0
  281. {web3-6.20.0 → web3-6.20.1}/ethpm/tools/__init__.py +0 -0
  282. {web3-6.20.0 → web3-6.20.1}/ethpm/tools/builder.py +0 -0
  283. {web3-6.20.0 → web3-6.20.1}/ethpm/tools/checker.py +0 -0
  284. {web3-6.20.0 → web3-6.20.1}/ethpm/tools/get_manifest.py +0 -0
  285. {web3-6.20.0 → web3-6.20.1}/ethpm/uri.py +0 -0
  286. {web3-6.20.0 → web3-6.20.1}/ethpm/validation/__init__.py +0 -0
  287. {web3-6.20.0 → web3-6.20.1}/ethpm/validation/manifest.py +0 -0
  288. {web3-6.20.0 → web3-6.20.1}/ethpm/validation/misc.py +0 -0
  289. {web3-6.20.0 → web3-6.20.1}/ethpm/validation/package.py +0 -0
  290. {web3-6.20.0 → web3-6.20.1}/ethpm/validation/uri.py +0 -0
  291. {web3-6.20.0 → web3-6.20.1}/pyproject.toml +0 -0
  292. {web3-6.20.0 → web3-6.20.1}/setup.cfg +0 -0
  293. {web3-6.20.0/web3/_utils → web3-6.20.1/tests}/__init__.py +0 -0
  294. {web3-6.20.0/web3/_utils/contract_sources → web3-6.20.1/tests/core/utilities}/__init__.py +0 -0
  295. {web3-6.20.0/web3/_utils/contract_sources/contract_data → web3-6.20.1/tests/integration/go_ethereum}/__init__.py +0 -0
  296. {web3-6.20.0 → web3-6.20.1}/web3/__init__.py +0 -0
  297. {web3-6.20.0/web3/gas_strategies → web3-6.20.1/web3/_utils}/__init__.py +0 -0
  298. {web3-6.20.0 → web3-6.20.1}/web3/_utils/abi.py +0 -0
  299. {web3-6.20.0 → web3-6.20.1}/web3/_utils/async_caching.py +0 -0
  300. {web3-6.20.0 → web3-6.20.1}/web3/_utils/async_transactions.py +0 -0
  301. {web3-6.20.0 → web3-6.20.1}/web3/_utils/blocks.py +0 -0
  302. {web3-6.20.0 → web3-6.20.1}/web3/_utils/caching.py +0 -0
  303. {web3-6.20.0 → web3-6.20.1}/web3/_utils/compat/__init__.py +0 -0
  304. {web3-6.20.0/web3/scripts → web3-6.20.1/web3/_utils/contract_sources}/__init__.py +0 -0
  305. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/compile_contracts.py +0 -0
  306. {web3-6.20.0/web3/scripts/release → web3-6.20.1/web3/_utils/contract_sources/contract_data}/__init__.py +0 -0
  307. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/_custom_contract_data.py +0 -0
  308. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/address_reflector.py +0 -0
  309. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/arrays_contract.py +0 -0
  310. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/bytes_contracts.py +0 -0
  311. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/constructor_contracts.py +0 -0
  312. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/contract_caller_tester.py +0 -0
  313. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/emitter_contract.py +0 -0
  314. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/event_contracts.py +0 -0
  315. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/extended_resolver.py +0 -0
  316. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/fallback_function_contract.py +0 -0
  317. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +0 -0
  318. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/math_contract.py +0 -0
  319. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/offchain_lookup.py +0 -0
  320. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/offchain_resolver.py +0 -0
  321. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/panic_errors_contract.py +0 -0
  322. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/payable_tester.py +0 -0
  323. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/receive_function_contracts.py +0 -0
  324. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/reflector_contracts.py +0 -0
  325. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/revert_contract.py +0 -0
  326. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/simple_resolver.py +0 -0
  327. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/storage_contract.py +0 -0
  328. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/string_contract.py +0 -0
  329. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contract_sources/contract_data/tuple_contracts.py +0 -0
  330. {web3-6.20.0 → web3-6.20.1}/web3/_utils/contracts.py +0 -0
  331. {web3-6.20.0 → web3-6.20.1}/web3/_utils/datatypes.py +0 -0
  332. {web3-6.20.0 → web3-6.20.1}/web3/_utils/decorators.py +0 -0
  333. {web3-6.20.0 → web3-6.20.1}/web3/_utils/empty.py +0 -0
  334. {web3-6.20.0 → web3-6.20.1}/web3/_utils/encoding.py +0 -0
  335. {web3-6.20.0 → web3-6.20.1}/web3/_utils/ens.py +0 -0
  336. {web3-6.20.0 → web3-6.20.1}/web3/_utils/error_formatters_utils.py +0 -0
  337. {web3-6.20.0 → web3-6.20.1}/web3/_utils/events.py +0 -0
  338. {web3-6.20.0 → web3-6.20.1}/web3/_utils/fee_utils.py +0 -0
  339. {web3-6.20.0 → web3-6.20.1}/web3/_utils/filters.py +0 -0
  340. {web3-6.20.0 → web3-6.20.1}/web3/_utils/formatters.py +0 -0
  341. {web3-6.20.0 → web3-6.20.1}/web3/_utils/function_identifiers.py +0 -0
  342. {web3-6.20.0 → web3-6.20.1}/web3/_utils/http.py +0 -0
  343. {web3-6.20.0 → web3-6.20.1}/web3/_utils/hypothesis.py +0 -0
  344. {web3-6.20.0 → web3-6.20.1}/web3/_utils/math.py +0 -0
  345. {web3-6.20.0 → web3-6.20.1}/web3/_utils/method_formatters.py +0 -0
  346. {web3-6.20.0 → web3-6.20.1}/web3/_utils/miner.py +0 -0
  347. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module.py +0 -0
  348. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/__init__.py +0 -0
  349. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/eth_module.py +0 -0
  350. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/go_ethereum_admin_module.py +0 -0
  351. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/go_ethereum_personal_module.py +0 -0
  352. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/go_ethereum_txpool_module.py +0 -0
  353. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/net_module.py +0 -0
  354. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/persistent_connection_provider.py +0 -0
  355. {web3-6.20.0 → web3-6.20.1}/web3/_utils/module_testing/web3_module.py +0 -0
  356. {web3-6.20.0 → web3-6.20.1}/web3/_utils/normalizers.py +0 -0
  357. {web3-6.20.0 → web3-6.20.1}/web3/_utils/request.py +0 -0
  358. {web3-6.20.0 → web3-6.20.1}/web3/_utils/rpc_abi.py +0 -0
  359. {web3-6.20.0 → web3-6.20.1}/web3/_utils/threads.py +0 -0
  360. {web3-6.20.0 → web3-6.20.1}/web3/_utils/transactions.py +0 -0
  361. {web3-6.20.0 → web3-6.20.1}/web3/_utils/type_conversion.py +0 -0
  362. {web3-6.20.0 → web3-6.20.1}/web3/_utils/utility_methods.py +0 -0
  363. {web3-6.20.0 → web3-6.20.1}/web3/_utils/validation.py +0 -0
  364. {web3-6.20.0 → web3-6.20.1}/web3/_utils/windows.py +0 -0
  365. {web3-6.20.0 → web3-6.20.1}/web3/auto/__init__.py +0 -0
  366. {web3-6.20.0 → web3-6.20.1}/web3/auto/gethdev.py +0 -0
  367. {web3-6.20.0 → web3-6.20.1}/web3/beacon/__init__.py +0 -0
  368. {web3-6.20.0 → web3-6.20.1}/web3/beacon/api_endpoints.py +0 -0
  369. {web3-6.20.0 → web3-6.20.1}/web3/beacon/async_beacon.py +0 -0
  370. {web3-6.20.0 → web3-6.20.1}/web3/beacon/main.py +0 -0
  371. {web3-6.20.0 → web3-6.20.1}/web3/constants.py +0 -0
  372. {web3-6.20.0 → web3-6.20.1}/web3/contract/__init__.py +0 -0
  373. {web3-6.20.0 → web3-6.20.1}/web3/contract/async_contract.py +0 -0
  374. {web3-6.20.0 → web3-6.20.1}/web3/contract/base_contract.py +0 -0
  375. {web3-6.20.0 → web3-6.20.1}/web3/contract/contract.py +0 -0
  376. {web3-6.20.0 → web3-6.20.1}/web3/contract/utils.py +0 -0
  377. {web3-6.20.0 → web3-6.20.1}/web3/datastructures.py +0 -0
  378. {web3-6.20.0 → web3-6.20.1}/web3/eth/__init__.py +0 -0
  379. {web3-6.20.0 → web3-6.20.1}/web3/eth/async_eth.py +0 -0
  380. {web3-6.20.0 → web3-6.20.1}/web3/eth/base_eth.py +0 -0
  381. {web3-6.20.0 → web3-6.20.1}/web3/eth/eth.py +0 -0
  382. {web3-6.20.0 → web3-6.20.1}/web3/exceptions.py +0 -0
  383. {web3-6.20.0/web3/tools/benchmark → web3-6.20.1/web3/gas_strategies}/__init__.py +0 -0
  384. {web3-6.20.0 → web3-6.20.1}/web3/gas_strategies/rpc.py +0 -0
  385. {web3-6.20.0 → web3-6.20.1}/web3/gas_strategies/time_based.py +0 -0
  386. {web3-6.20.0 → web3-6.20.1}/web3/geth.py +0 -0
  387. {web3-6.20.0 → web3-6.20.1}/web3/logs.py +0 -0
  388. {web3-6.20.0 → web3-6.20.1}/web3/main.py +0 -0
  389. {web3-6.20.0 → web3-6.20.1}/web3/manager.py +0 -0
  390. {web3-6.20.0 → web3-6.20.1}/web3/method.py +0 -0
  391. {web3-6.20.0 → web3-6.20.1}/web3/middleware/__init__.py +0 -0
  392. {web3-6.20.0 → web3-6.20.1}/web3/middleware/abi.py +0 -0
  393. {web3-6.20.0 → web3-6.20.1}/web3/middleware/async_cache.py +0 -0
  394. {web3-6.20.0 → web3-6.20.1}/web3/middleware/attrdict.py +0 -0
  395. {web3-6.20.0 → web3-6.20.1}/web3/middleware/buffered_gas_estimate.py +0 -0
  396. {web3-6.20.0 → web3-6.20.1}/web3/middleware/cache.py +0 -0
  397. {web3-6.20.0 → web3-6.20.1}/web3/middleware/exception_handling.py +0 -0
  398. {web3-6.20.0 → web3-6.20.1}/web3/middleware/exception_retry_request.py +0 -0
  399. {web3-6.20.0 → web3-6.20.1}/web3/middleware/filter.py +0 -0
  400. {web3-6.20.0 → web3-6.20.1}/web3/middleware/fixture.py +0 -0
  401. {web3-6.20.0 → web3-6.20.1}/web3/middleware/formatting.py +0 -0
  402. {web3-6.20.0 → web3-6.20.1}/web3/middleware/gas_price_strategy.py +0 -0
  403. {web3-6.20.0 → web3-6.20.1}/web3/middleware/geth_poa.py +0 -0
  404. {web3-6.20.0 → web3-6.20.1}/web3/middleware/names.py +0 -0
  405. {web3-6.20.0 → web3-6.20.1}/web3/middleware/normalize_request_parameters.py +0 -0
  406. {web3-6.20.0 → web3-6.20.1}/web3/middleware/pythonic.py +0 -0
  407. {web3-6.20.0 → web3-6.20.1}/web3/middleware/signing.py +0 -0
  408. {web3-6.20.0 → web3-6.20.1}/web3/middleware/simulate_unmined_transaction.py +0 -0
  409. {web3-6.20.0 → web3-6.20.1}/web3/middleware/stalecheck.py +0 -0
  410. {web3-6.20.0 → web3-6.20.1}/web3/middleware/validation.py +0 -0
  411. {web3-6.20.0 → web3-6.20.1}/web3/module.py +0 -0
  412. {web3-6.20.0 → web3-6.20.1}/web3/net.py +0 -0
  413. {web3-6.20.0 → web3-6.20.1}/web3/pm.py +0 -0
  414. {web3-6.20.0 → web3-6.20.1}/web3/providers/__init__.py +0 -0
  415. {web3-6.20.0 → web3-6.20.1}/web3/providers/async_base.py +0 -0
  416. {web3-6.20.0 → web3-6.20.1}/web3/providers/async_rpc.py +0 -0
  417. {web3-6.20.0 → web3-6.20.1}/web3/providers/auto.py +0 -0
  418. {web3-6.20.0 → web3-6.20.1}/web3/providers/base.py +0 -0
  419. {web3-6.20.0 → web3-6.20.1}/web3/providers/eth_tester/__init__.py +0 -0
  420. {web3-6.20.0 → web3-6.20.1}/web3/providers/eth_tester/defaults.py +0 -0
  421. {web3-6.20.0 → web3-6.20.1}/web3/providers/eth_tester/main.py +0 -0
  422. {web3-6.20.0 → web3-6.20.1}/web3/providers/eth_tester/middleware.py +0 -0
  423. {web3-6.20.0 → web3-6.20.1}/web3/providers/ipc.py +0 -0
  424. {web3-6.20.0 → web3-6.20.1}/web3/providers/rpc.py +0 -0
  425. {web3-6.20.0 → web3-6.20.1}/web3/providers/websocket/__init__.py +0 -0
  426. {web3-6.20.0 → web3-6.20.1}/web3/providers/websocket/request_processor.py +0 -0
  427. {web3-6.20.0 → web3-6.20.1}/web3/providers/websocket/websocket.py +0 -0
  428. {web3-6.20.0 → web3-6.20.1}/web3/providers/websocket/websocket_connection.py +0 -0
  429. {web3-6.20.0 → web3-6.20.1}/web3/py.typed +0 -0
  430. {web3-6.20.0/web3/tools/pytest_ethereum → web3-6.20.1/web3/scripts}/__init__.py +0 -0
  431. {web3-6.20.0 → web3-6.20.1}/web3/scripts/release/test_package.py +0 -0
  432. {web3-6.20.0 → web3-6.20.1}/web3/testing.py +0 -0
  433. {web3-6.20.0 → web3-6.20.1}/web3/tools/__init__.py +0 -0
  434. {web3-6.20.0 → web3-6.20.1}/web3/tools/benchmark/main.py +0 -0
  435. {web3-6.20.0 → web3-6.20.1}/web3/tools/benchmark/node.py +0 -0
  436. {web3-6.20.0 → web3-6.20.1}/web3/tools/benchmark/reporting.py +0 -0
  437. {web3-6.20.0 → web3-6.20.1}/web3/tools/benchmark/utils.py +0 -0
  438. {web3-6.20.0 → web3-6.20.1}/web3/tools/pytest_ethereum/_utils.py +0 -0
  439. {web3-6.20.0 → web3-6.20.1}/web3/tools/pytest_ethereum/deployer.py +0 -0
  440. {web3-6.20.0 → web3-6.20.1}/web3/tools/pytest_ethereum/exceptions.py +0 -0
  441. {web3-6.20.0 → web3-6.20.1}/web3/tools/pytest_ethereum/linker.py +0 -0
  442. {web3-6.20.0 → web3-6.20.1}/web3/tools/pytest_ethereum/plugins.py +0 -0
  443. {web3-6.20.0 → web3-6.20.1}/web3/tracing.py +0 -0
  444. {web3-6.20.0 → web3-6.20.1}/web3/types.py +0 -0
  445. {web3-6.20.0 → web3-6.20.1}/web3/utils/__init__.py +0 -0
  446. {web3-6.20.0 → web3-6.20.1}/web3/utils/abi.py +0 -0
  447. {web3-6.20.0 → web3-6.20.1}/web3/utils/address.py +0 -0
  448. {web3-6.20.0 → web3-6.20.1}/web3/utils/async_exception_handling.py +0 -0
  449. {web3-6.20.0 → web3-6.20.1}/web3/utils/caching.py +0 -0
  450. {web3-6.20.0 → web3-6.20.1}/web3/utils/exception_handling.py +0 -0
  451. {web3-6.20.0 → web3-6.20.1}/web3.egg-info/dependency_links.txt +0 -0
  452. {web3-6.20.0 → web3-6.20.1}/web3.egg-info/entry_points.txt +0 -0
  453. {web3-6.20.0 → web3-6.20.1}/web3.egg-info/not-zip-safe +0 -0
  454. {web3-6.20.0 → web3-6.20.1}/web3.egg-info/requires.txt +0 -0
  455. {web3-6.20.0 → web3-6.20.1}/web3.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: web3
3
- Version: 6.20.0
3
+ Version: 6.20.1
4
4
  Summary: web3.py
5
5
  Home-page: https://github.com/ethereum/web3.py
6
6
  Author: The Ethereum Foundation
@@ -51,7 +51,7 @@ with open("./README.md") as readme:
51
51
  setup(
52
52
  name="web3",
53
53
  # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
54
- version="6.20.0",
54
+ version="6.20.1",
55
55
  description="""web3.py""",
56
56
  long_description_content_type="text/markdown",
57
57
  long_description=long_description,
Binary file
@@ -0,0 +1,267 @@
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
+
15
+ # tested against lighthouse which uses port 5052 by default
16
+ BASE_URL = "http://localhost:5052"
17
+
18
+
19
+ def _assert_valid_response(response):
20
+ # assert valid response according to Beacon API spec
21
+ assert isinstance(response, dict)
22
+ assert "data" in response
23
+
24
+
25
+ @pytest.fixture
26
+ def async_beacon():
27
+ return AsyncBeacon(base_url=BASE_URL)
28
+
29
+
30
+ @pytest_asyncio.fixture(autouse=True)
31
+ async def _cleanup():
32
+ yield
33
+ [await session.close() for _, session in _async_session_cache.items()]
34
+ _async_session_cache.clear()
35
+
36
+
37
+ # sanity check to make sure the positive test cases are valid
38
+ @pytest.mark.asyncio
39
+ async def test_async_cl_beacon_raises_exception_on_invalid_url(async_beacon):
40
+ with pytest.raises(ValueError):
41
+ await async_beacon._async_make_get_request(
42
+ BASE_URL + "/eth/v1/beacon/nonexistent"
43
+ )
44
+
45
+
46
+ @pytest.mark.asyncio
47
+ async def test_async_beacon_user_request_timeout():
48
+ beacon = AsyncBeacon(base_url=BASE_URL, request_timeout=0.001)
49
+ with pytest.raises(TimeoutError):
50
+ await beacon.get_validators()
51
+
52
+
53
+ # Beacon endpoint tests:
54
+
55
+
56
+ @pytest.mark.asyncio
57
+ async def test_async_cl_beacon_get_genesis(async_beacon):
58
+ response = await async_beacon.get_genesis()
59
+ _assert_valid_response(response)
60
+
61
+
62
+ @pytest.mark.asyncio
63
+ async def test_async_cl_beacon_get_hash_root(async_beacon):
64
+ response = await async_beacon.get_hash_root()
65
+ _assert_valid_response(response)
66
+
67
+
68
+ @pytest.mark.asyncio
69
+ async def test_async_cl_beacon_get_fork_data(async_beacon):
70
+ response = await async_beacon.get_fork_data()
71
+ _assert_valid_response(response)
72
+
73
+
74
+ @pytest.mark.asyncio
75
+ async def test_async_cl_beacon_get_finality_checkpoint(async_beacon):
76
+ response = await async_beacon.get_finality_checkpoint()
77
+ _assert_valid_response(response)
78
+
79
+
80
+ @pytest.mark.asyncio
81
+ async def test_async_cl_beacon_get_validators(async_beacon):
82
+ response = await async_beacon.get_validators()
83
+ _assert_valid_response(response)
84
+
85
+
86
+ @pytest.mark.asyncio
87
+ async def test_async_cl_beacon_get_validator(async_beacon):
88
+ validators_response = await async_beacon.get_validators()
89
+ _assert_valid_response(validators_response)
90
+
91
+ validators = validators_response["data"]
92
+ random_validator = validators[randint(0, len(validators))]
93
+ random_validator_pubkey = random_validator["validator"]["pubkey"]
94
+
95
+ response = await async_beacon.get_validator(random_validator_pubkey)
96
+ _assert_valid_response(response)
97
+
98
+
99
+ @pytest.mark.asyncio
100
+ async def test_async_cl_beacon_get_validator_balances(async_beacon):
101
+ response = await async_beacon.get_validator_balances()
102
+ _assert_valid_response(response)
103
+
104
+
105
+ @pytest.mark.asyncio
106
+ async def test_async_cl_beacon_get_epoch_committees(async_beacon):
107
+ response = await async_beacon.get_epoch_committees()
108
+ _assert_valid_response(response)
109
+
110
+
111
+ @pytest.mark.asyncio
112
+ async def test_async_cl_beacon_get_epoch_sync_committees(async_beacon):
113
+ response = await async_beacon.get_epoch_sync_committees()
114
+ _assert_valid_response(response)
115
+
116
+
117
+ @pytest.mark.asyncio
118
+ async def test_async_cl_beacon_get_epoch_randao(async_beacon):
119
+ response = await async_beacon.get_epoch_randao()
120
+ _assert_valid_response(response)
121
+
122
+
123
+ @pytest.mark.asyncio
124
+ async def test_async_cl_beacon_get_block_headers(async_beacon):
125
+ response = await async_beacon.get_block_headers()
126
+ _assert_valid_response(response)
127
+
128
+
129
+ @pytest.mark.asyncio
130
+ async def test_async_cl_beacon_get_block_header(async_beacon):
131
+ response = await async_beacon.get_block_header("head")
132
+ _assert_valid_response(response)
133
+
134
+
135
+ @pytest.mark.asyncio
136
+ async def test_async_cl_beacon_get_block(async_beacon):
137
+ response = await async_beacon.get_block("head")
138
+ _assert_valid_response(response)
139
+
140
+
141
+ @pytest.mark.asyncio
142
+ async def test_async_cl_beacon_get_block_root(async_beacon):
143
+ response = await async_beacon.get_block_root("head")
144
+ _assert_valid_response(response)
145
+
146
+
147
+ @pytest.mark.asyncio
148
+ async def test_async_cl_beacon_get_blinded_blocks(async_beacon):
149
+ response = await async_beacon.get_blinded_blocks("head")
150
+ _assert_valid_response(response)
151
+
152
+
153
+ @pytest.mark.asyncio
154
+ async def test_async_cl_beacon_get_rewards(async_beacon):
155
+ response = await async_beacon.get_rewards("head")
156
+ _assert_valid_response(response)
157
+
158
+
159
+ @pytest.mark.asyncio
160
+ async def test_async_cl_beacon_get_block_attestations(async_beacon):
161
+ response = await async_beacon.get_block_attestations("head")
162
+ _assert_valid_response(response)
163
+
164
+
165
+ @pytest.mark.asyncio
166
+ async def test_async_cl_beacon_get_attestations(async_beacon):
167
+ response = await async_beacon.get_attestations()
168
+ _assert_valid_response(response)
169
+
170
+
171
+ @pytest.mark.asyncio
172
+ async def test_async_cl_beacon_get_attester_slashings(async_beacon):
173
+ response = await async_beacon.get_attester_slashings()
174
+ _assert_valid_response(response)
175
+
176
+
177
+ @pytest.mark.asyncio
178
+ async def test_async_cl_beacon_get_proposer_slashings(async_beacon):
179
+ response = await async_beacon.get_proposer_slashings()
180
+ _assert_valid_response(response)
181
+
182
+
183
+ @pytest.mark.asyncio
184
+ async def test_async_cl_beacon_get_voluntary_exits(async_beacon):
185
+ response = await async_beacon.get_voluntary_exits()
186
+ _assert_valid_response(response)
187
+
188
+
189
+ @pytest.mark.asyncio
190
+ async def test_async_cl_beacon_get_bls_to_execution_changes(async_beacon):
191
+ response = await async_beacon.get_bls_to_execution_changes()
192
+ _assert_valid_response(response)
193
+
194
+
195
+ # Config endpoint tests:
196
+
197
+
198
+ @pytest.mark.asyncio
199
+ async def test_async_cl_config_get_fork_schedule(async_beacon):
200
+ response = await async_beacon.get_fork_schedule()
201
+ _assert_valid_response(response)
202
+
203
+
204
+ @pytest.mark.asyncio
205
+ async def test_async_cl_config_get_spec(async_beacon):
206
+ response = await async_beacon.get_spec()
207
+ _assert_valid_response(response)
208
+
209
+
210
+ @pytest.mark.asyncio
211
+ async def test_async_cl_config_get_deposit_contract(async_beacon):
212
+ response = await async_beacon.get_deposit_contract()
213
+ _assert_valid_response(response)
214
+
215
+
216
+ # Debug endpoint tests:
217
+
218
+
219
+ @pytest.mark.asyncio
220
+ async def test_async_cl_debug_get_beacon_state(async_beacon):
221
+ response = await async_beacon.get_beacon_state()
222
+ _assert_valid_response(response)
223
+
224
+
225
+ @pytest.mark.asyncio
226
+ async def test_async_cl_debug_get_beacon_heads(async_beacon):
227
+ response = await async_beacon.get_beacon_heads()
228
+ _assert_valid_response(response)
229
+
230
+
231
+ # Node endpoint tests:
232
+
233
+
234
+ @pytest.mark.asyncio
235
+ async def test_async_cl_node_get_node_identity(async_beacon):
236
+ response = await async_beacon.get_node_identity()
237
+ _assert_valid_response(response)
238
+
239
+
240
+ @pytest.mark.asyncio
241
+ async def test_async_cl_node_get_peers(async_beacon):
242
+ response = await async_beacon.get_peers()
243
+ _assert_valid_response(response)
244
+
245
+
246
+ @pytest.mark.asyncio
247
+ async def test_async_cl_node_get_peer(async_beacon):
248
+ response = await async_beacon.get_peer("")
249
+ _assert_valid_response(response)
250
+
251
+
252
+ @pytest.mark.asyncio
253
+ async def test_async_cl_node_get_health(async_beacon):
254
+ response = await async_beacon.get_health()
255
+ assert isinstance(response, int)
256
+
257
+
258
+ @pytest.mark.asyncio
259
+ async def test_async_cl_node_get_version(async_beacon):
260
+ response = await async_beacon.get_version()
261
+ _assert_valid_response(response)
262
+
263
+
264
+ @pytest.mark.asyncio
265
+ async def test_async_cl_node_get_syncing(async_beacon):
266
+ response = await async_beacon.get_syncing()
267
+ _assert_valid_response(response)
@@ -0,0 +1,231 @@
1
+ import pytest
2
+ from random import (
3
+ randint,
4
+ )
5
+
6
+ from requests import (
7
+ Timeout,
8
+ )
9
+
10
+ from web3._utils.request import (
11
+ _session_cache,
12
+ )
13
+ from web3.beacon import (
14
+ Beacon,
15
+ )
16
+
17
+ # tested against lighthouse which uses port 5052 by default
18
+ BASE_URL = "http://localhost:5052"
19
+
20
+
21
+ def _assert_valid_response(response):
22
+ # assert valid response according to Beacon API spec
23
+ assert isinstance(response, dict)
24
+ assert "data" in response
25
+
26
+
27
+ @pytest.fixture
28
+ def beacon():
29
+ return Beacon(base_url=BASE_URL)
30
+
31
+
32
+ @pytest.fixture(autouse=True)
33
+ def _cleanup():
34
+ yield
35
+ _session_cache.clear()
36
+
37
+
38
+ # sanity check to make sure the positive test cases are valid
39
+ def test_cl_beacon_raises_exception_on_invalid_url(beacon):
40
+ with pytest.raises(ValueError):
41
+ beacon._make_get_request(BASE_URL + "/eth/v1/beacon/nonexistent")
42
+
43
+
44
+ def test_beacon_user_defined_request_timeout():
45
+ beacon = Beacon(base_url=BASE_URL, request_timeout=0.001)
46
+ with pytest.raises(Timeout):
47
+ beacon.get_validators()
48
+
49
+
50
+ # Beacon endpoint tests:
51
+
52
+
53
+ def test_cl_beacon_get_genesis(beacon):
54
+ response = beacon.get_genesis()
55
+ _assert_valid_response(response)
56
+
57
+
58
+ def test_cl_beacon_get_hash_root(beacon):
59
+ response = beacon.get_hash_root()
60
+ _assert_valid_response(response)
61
+
62
+
63
+ def test_cl_beacon_get_fork_data(beacon):
64
+ response = beacon.get_fork_data()
65
+ _assert_valid_response(response)
66
+
67
+
68
+ def test_cl_beacon_get_finality_checkpoint(beacon):
69
+ response = beacon.get_finality_checkpoint()
70
+ _assert_valid_response(response)
71
+
72
+
73
+ def test_cl_beacon_get_validators(beacon):
74
+ response = beacon.get_validators()
75
+ _assert_valid_response(response)
76
+
77
+
78
+ def test_cl_beacon_get_validator(beacon):
79
+ validators_response = beacon.get_validators()
80
+ _assert_valid_response(validators_response)
81
+
82
+ validators = validators_response["data"]
83
+ random_validator = validators[randint(0, len(validators))]
84
+ random_validator_pubkey = random_validator["validator"]["pubkey"]
85
+
86
+ response = beacon.get_validator(random_validator_pubkey)
87
+ _assert_valid_response(response)
88
+
89
+
90
+ def test_cl_beacon_get_validator_balances(beacon):
91
+ response = beacon.get_validator_balances()
92
+ _assert_valid_response(response)
93
+
94
+
95
+ def test_cl_beacon_get_epoch_committees(beacon):
96
+ response = beacon.get_epoch_committees()
97
+ _assert_valid_response(response)
98
+
99
+
100
+ def test_cl_beacon_get_epoch_sync_committees(beacon):
101
+ response = beacon.get_epoch_sync_committees()
102
+ _assert_valid_response(response)
103
+
104
+
105
+ def test_cl_beacon_get_epoch_randao(beacon):
106
+ response = beacon.get_epoch_randao()
107
+ _assert_valid_response(response)
108
+
109
+
110
+ def test_cl_beacon_get_block_headers(beacon):
111
+ response = beacon.get_block_headers()
112
+ _assert_valid_response(response)
113
+
114
+
115
+ def test_cl_beacon_get_block_header(beacon):
116
+ response = beacon.get_block_header("head")
117
+ _assert_valid_response(response)
118
+
119
+
120
+ def test_cl_beacon_get_block(beacon):
121
+ response = beacon.get_block("head")
122
+ _assert_valid_response(response)
123
+
124
+
125
+ def test_cl_beacon_get_block_root(beacon):
126
+ response = beacon.get_block_root("head")
127
+ _assert_valid_response(response)
128
+
129
+
130
+ def test_cl_beacon_get_blinded_blocks(beacon):
131
+ response = beacon.get_blinded_blocks("head")
132
+ _assert_valid_response(response)
133
+
134
+
135
+ def test_cl_beacon_get_rewards(beacon):
136
+ response = beacon.get_rewards("head")
137
+ _assert_valid_response(response)
138
+
139
+
140
+ def test_cl_beacon_get_block_attestations(beacon):
141
+ response = beacon.get_block_attestations("head")
142
+ _assert_valid_response(response)
143
+
144
+
145
+ def test_cl_beacon_get_attestations(beacon):
146
+ response = beacon.get_attestations()
147
+ _assert_valid_response(response)
148
+
149
+
150
+ def test_cl_beacon_get_attester_slashings(beacon):
151
+ response = beacon.get_attester_slashings()
152
+ _assert_valid_response(response)
153
+
154
+
155
+ def test_cl_beacon_get_proposer_slashings(beacon):
156
+ response = beacon.get_proposer_slashings()
157
+ _assert_valid_response(response)
158
+
159
+
160
+ def test_cl_beacon_get_voluntary_exits(beacon):
161
+ response = beacon.get_voluntary_exits()
162
+ _assert_valid_response(response)
163
+
164
+
165
+ def test_cl_beacon_get_bls_to_execution_changes(beacon):
166
+ response = beacon.get_bls_to_execution_changes()
167
+ _assert_valid_response(response)
168
+
169
+
170
+ # Config endpoint tests:
171
+
172
+
173
+ def test_cl_config_get_fork_schedule(beacon):
174
+ response = beacon.get_fork_schedule()
175
+ _assert_valid_response(response)
176
+
177
+
178
+ def test_cl_config_get_spec(beacon):
179
+ response = beacon.get_spec()
180
+ _assert_valid_response(response)
181
+
182
+
183
+ def test_cl_config_get_deposit_contract(beacon):
184
+ response = beacon.get_deposit_contract()
185
+ _assert_valid_response(response)
186
+
187
+
188
+ # Debug endpoint tests:
189
+
190
+
191
+ def test_cl_debug_get_beacon_state(beacon):
192
+ response = beacon.get_beacon_state()
193
+ _assert_valid_response(response)
194
+
195
+
196
+ def test_cl_debug_get_beacon_heads(beacon):
197
+ response = beacon.get_beacon_heads()
198
+ _assert_valid_response(response)
199
+
200
+
201
+ # Node endpoint tests:
202
+
203
+
204
+ def test_cl_node_get_node_identity(beacon):
205
+ response = beacon.get_node_identity()
206
+ _assert_valid_response(response)
207
+
208
+
209
+ def test_cl_node_get_peers(beacon):
210
+ response = beacon.get_peers()
211
+ _assert_valid_response(response)
212
+
213
+
214
+ def test_cl_node_get_peer(beacon):
215
+ response = beacon.get_peer("")
216
+ _assert_valid_response(response)
217
+
218
+
219
+ def test_cl_node_get_health(beacon):
220
+ response = beacon.get_health()
221
+ assert isinstance(response, int)
222
+
223
+
224
+ def test_cl_node_get_version(beacon):
225
+ response = beacon.get_version()
226
+ _assert_valid_response(response)
227
+
228
+
229
+ def test_cl_node_get_syncing(beacon):
230
+ response = beacon.get_syncing()
231
+ _assert_valid_response(response)
@@ -0,0 +1,109 @@
1
+ import pytest
2
+
3
+ from eth_utils import (
4
+ event_signature_to_log_topic,
5
+ to_bytes,
6
+ )
7
+ from eth_utils.toolz import (
8
+ identity,
9
+ )
10
+
11
+ from web3._utils.contract_sources.contract_data.emitter_contract import (
12
+ EMITTER_CONTRACT_DATA,
13
+ )
14
+
15
+ from .utils import (
16
+ get_open_port,
17
+ )
18
+
19
+
20
+ @pytest.fixture(scope="module", params=[lambda x: to_bytes(hexstr=x), identity])
21
+ def address_conversion_func(request):
22
+ return request.param
23
+
24
+
25
+ @pytest.fixture()
26
+ def open_port():
27
+ return get_open_port()
28
+
29
+
30
+ def pytest_addoption(parser):
31
+ parser.addoption("--flaky", action="store_true")
32
+
33
+
34
+ # --- session-scoped constants --- #
35
+
36
+
37
+ @pytest.fixture(scope="session")
38
+ def emitter_contract_data():
39
+ return EMITTER_CONTRACT_DATA
40
+
41
+
42
+ class LogFunctions:
43
+ # These appear to be for a very specific test and this doesn't need to be updated
44
+ # for every event in the emitter contract. That ends up breaking that test.
45
+ LogAnonymous = 0
46
+ LogNoArguments = 1
47
+ LogSingleArg = 2
48
+ LogDoubleArg = 3
49
+ LogTripleArg = 4
50
+ LogQuadrupleArg = 5
51
+ LogSingleAnonymous = 6
52
+ LogSingleWithIndex = 7
53
+ LogDoubleAnonymous = 8
54
+ LogDoubleWithIndex = 9
55
+ LogTripleWithIndex = 10
56
+ LogQuadrupleWithIndex = 11
57
+ LogBytes = 12
58
+ LogString = 13
59
+ LogDynamicArgs = 14
60
+ LogListArgs = 15
61
+ LogAddressIndexed = 16
62
+ LogAddressNotIndexed = 17
63
+
64
+
65
+ @pytest.fixture(scope="session")
66
+ def emitter_contract_event_ids():
67
+ return LogFunctions
68
+
69
+
70
+ class LogTopics:
71
+ LogAnonymous = event_signature_to_log_topic("LogAnonymous()")
72
+ LogNoArguments = event_signature_to_log_topic("LogNoArguments()")
73
+ LogSingleArg = event_signature_to_log_topic("LogSingleArg(uint256)")
74
+ LogSingleAnonymous = event_signature_to_log_topic("LogSingleAnonymous(uint256)")
75
+ LogSingleWithIndex = event_signature_to_log_topic("LogSingleWithIndex(uint256)")
76
+ LogDoubleArg = event_signature_to_log_topic("LogDoubleArg(uint256,uint256)")
77
+ LogDoubleAnonymous = event_signature_to_log_topic(
78
+ "LogDoubleAnonymous(uint256,uint256)"
79
+ )
80
+ LogDoubleWithIndex = event_signature_to_log_topic(
81
+ "LogDoubleWithIndex(uint256,uint256)"
82
+ )
83
+ LogTripleArg = event_signature_to_log_topic("LogTripleArg(uint256,uint256,uint256)")
84
+ LogTripleWithIndex = event_signature_to_log_topic(
85
+ "LogTripleWithIndex(uint256,uint256,uint256)"
86
+ )
87
+ LogQuadrupleArg = event_signature_to_log_topic(
88
+ "LogQuadrupleArg(uint256,uint256,uint256,uint256)"
89
+ )
90
+ LogQuadrupleWithIndex = event_signature_to_log_topic(
91
+ "LogQuadrupleWithIndex(uint256,uint256,uint256,uint256)",
92
+ )
93
+ LogBytes = event_signature_to_log_topic("LogBytes(bytes)")
94
+ LogString = event_signature_to_log_topic("LogString(string)")
95
+ LogDynamicArgs = event_signature_to_log_topic("LogDynamicArgs(string,string)")
96
+ LogListArgs = event_signature_to_log_topic("LogListArgs(bytes2[],bytes2[])")
97
+ LogAddressIndexed = event_signature_to_log_topic(
98
+ "LogAddressIndexed(address,address)"
99
+ )
100
+ LogAddressNotIndexed = event_signature_to_log_topic(
101
+ "LogAddressNotIndexed(address,address)"
102
+ )
103
+ LogStructArgs = event_signature_to_log_topic("LogStructArgs(uint256,tuple)")
104
+ LogIndexedAndNotIndexed = event_signature_to_log_topic("LogIndexedAndNotIndexed()")
105
+
106
+
107
+ @pytest.fixture(scope="session")
108
+ def emitter_contract_log_topics():
109
+ return LogTopics
@@ -0,0 +1,7 @@
1
+ def test_admin_add_peer(w3, skip_if_testrpc):
2
+ skip_if_testrpc(w3)
3
+
4
+ result = w3.geth.admin.add_peer(
5
+ "enode://44826a5d6a55f88a18298bca4773fca5749cdc3a5c9f308aa7d810e9b31123f3e7c5fba0b1d70aac5308426f47df2a128a6747040a3815cc7dd7167d03be320d@127.0.0.1:30304", # noqa: E501
6
+ )
7
+ assert result is True
@@ -0,0 +1,7 @@
1
+ def test_admin_node_info(w3, skip_if_testrpc):
2
+ skip_if_testrpc(w3)
3
+
4
+ node_info = w3.geth.admin.node_info
5
+
6
+ assert "enode" in node_info
7
+ assert "id" in node_info
@@ -0,0 +1,4 @@
1
+ def test_admin_peers(w3, skip_if_testrpc):
2
+ skip_if_testrpc(w3)
3
+
4
+ assert w3.geth.admin.peers == []
@@ -0,0 +1,45 @@
1
+ import pytest
2
+
3
+ from eth_utils.toolz import (
4
+ partial,
5
+ )
6
+
7
+ from web3._utils.blocks import (
8
+ select_method_for_block_identifier,
9
+ )
10
+
11
+ selector_fn = partial(
12
+ select_method_for_block_identifier,
13
+ if_hash="test_hash",
14
+ if_number="test_number",
15
+ if_predefined="test_predefined",
16
+ )
17
+
18
+
19
+ @pytest.mark.parametrize(
20
+ "input,expected",
21
+ (
22
+ ("latest", "test_predefined"),
23
+ ("pending", "test_predefined"),
24
+ ("earliest", "test_predefined"),
25
+ ("safe", "test_predefined"),
26
+ ("finalized", "test_predefined"),
27
+ (-1, ValueError),
28
+ (0, "test_number"),
29
+ (1, "test_number"),
30
+ (4000000, "test_number"),
31
+ ("0x0", "test_number"),
32
+ ("0x00", "test_number"),
33
+ ("0x1", "test_number"),
34
+ ("0x01", "test_number"),
35
+ (hex(4000000), "test_number"),
36
+ ("0x" + "".zfill(64), "test_hash"),
37
+ ),
38
+ )
39
+ def test_select_method_for_block_identifier(input, expected):
40
+ if isinstance(expected, type) and issubclass(expected, Exception):
41
+ with pytest.raises(expected):
42
+ selector_fn(input)
43
+ else:
44
+ actual = selector_fn(input)
45
+ assert actual == expected