web3 7.8.0__tar.gz → 7.10.0__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.
- {web3-7.8.0/web3.egg-info → web3-7.10.0}/PKG-INFO +14 -9
- {web3-7.8.0 → web3-7.10.0}/README.md +7 -3
- {web3-7.8.0 → web3-7.10.0}/pyproject.toml +44 -0
- web3-7.10.0/scripts/release/test_package.py +50 -0
- {web3-7.8.0 → web3-7.10.0}/setup.py +5 -5
- {web3-7.8.0 → web3-7.10.0}/tests/conftest.py +2 -2
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_extracting_event_data.py +2 -2
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_async_ipc_provider.py +2 -2
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_ipc_provider.py +4 -2
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_legacy_websocket_provider.py +5 -3
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_websocket_provider.py +57 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/subscriptions/test_subscription_manager.py +26 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_async_transaction.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_threads.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_get_text.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/integration/generate_fixtures/common.py +5 -0
- web3-7.10.0/tests/integration/geth-1.15.5-fixture.zip +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/conftest.py +7 -3
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/test_goethereum_http.py +20 -1
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/test_goethereum_ipc.py +21 -2
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/test_goethereum_legacy_ws.py +3 -2
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/test_goethereum_ws/conftest.py +2 -1
- {web3-7.8.0 → web3-7.10.0}/tests/integration/test_ethereum_tester.py +5 -1
- {web3-7.8.0 → web3-7.10.0}/tests/utils.py +4 -2
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/abi.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/batching.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/ambiguous_function_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/arrays_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/bytes_contracts.py +5 -5
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/constructor_contracts.py +7 -7
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/contract_caller_tester.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/emitter_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/event_contracts.py +7 -7
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/extended_resolver.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/fallback_function_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/math_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/offchain_lookup.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/offchain_resolver.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/panic_errors_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/payable_tester.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/receive_function_contracts.py +5 -5
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/reflector_contracts.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/revert_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/simple_resolver.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/storage_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/string_contract.py +3 -3
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/tuple_contracts.py +5 -5
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/error_formatters_utils.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/formatters.py +28 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/method_formatters.py +121 -20
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/eth_module.py +99 -2
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/rpc_abi.py +1 -0
- web3-7.10.0/web3/_utils/validation.py +404 -0
- {web3-7.8.0 → web3-7.10.0}/web3/eth/async_eth.py +19 -0
- {web3-7.8.0 → web3-7.10.0}/web3/eth/eth.py +15 -0
- {web3-7.8.0 → web3-7.10.0}/web3/gas_strategies/rpc.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/web3/gas_strategies/time_based.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/web3/manager.py +13 -204
- {web3-7.8.0 → web3-7.10.0}/web3/providers/async_base.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/web3/providers/legacy_websocket.py +1 -3
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/persistent.py +35 -5
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/subscription_manager.py +7 -2
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/websocket.py +12 -9
- {web3-7.8.0 → web3-7.10.0}/web3/types.py +26 -2
- {web3-7.8.0 → web3-7.10.0/web3.egg-info}/PKG-INFO +14 -9
- {web3-7.8.0 → web3-7.10.0}/web3.egg-info/SOURCES.txt +2 -1
- {web3-7.8.0 → web3-7.10.0}/web3.egg-info/requires.txt +4 -4
- web3-7.8.0/tests/integration/geth-1.14.12-fixture.zip +0 -0
- web3-7.8.0/web3/_utils/validation.py +0 -213
- {web3-7.8.0 → web3-7.10.0}/LICENSE +0 -0
- {web3-7.8.0 → web3-7.10.0}/MANIFEST.in +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/_normalization.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/abis.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/async_ens.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/auto.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/base_ens.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/constants.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/contract_data.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/ens.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/exceptions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/specs/nf.json +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/specs/normalization_spec.json +0 -0
- {web3-7.8.0 → web3-7.10.0}/ens/utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/setup.cfg +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/.DS_Store +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/beacon/test_async_beacon.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/beacon/test_beacon.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/admin-module/test_admin_addPeer.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/admin-module/test_admin_nodeInfo.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/admin-module/test_admin_peers.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/block-utils/test_select_method_for_block_identifier.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/caching-utils/test_generate_cache_key.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/caching-utils/test_request_caching.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/conftest.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/conftest.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_ambiguous_events.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_ambiguous_functions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_attributes.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_build_transaction.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_call_interface.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_caller_interface.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_class_construction.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_constructor.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_constructor_encoding.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_deployment.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_estimate_gas.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_events.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_events_build_filter.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_example.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_init.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_method_abi_decoding.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_method_abi_encoding.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_method_to_argument_matching.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_panic_errors.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_transact_interface.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_contract_util_functions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_extracting_event_data_old.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/test_offchain_lookup.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/contracts/utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/datastructures/test_datastructures.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/empty-object/test_empty_object_is_falsy.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/conftest.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_accounts.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_block_api.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_default_account_api.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_eth_contract.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_eth_fee_history.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_eth_filter.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_eth_properties.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_gas_pricing.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_poa.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-module/test_transactions.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/eth-tester-api/test_withdrawals.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/exceptions/test_exceptions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/conftest.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_basic_filter_tests.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_contract_create_filter_topic_merging.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_contract_data_filters.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_contract_get_logs.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_contract_on_event_filtering.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_contract_past_event_filtering.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_contract_topic_filters.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_existing_filter_instance.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_filter_against_latest_blocks.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_filter_against_pending_transactions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_filter_against_transaction_logs.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_filters_against_many_blocks.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/test_utils_functions.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/filtering/utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/gas-strategies/test_rpc_gas_pricing_strategies.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/gas-strategies/test_time_based_gas_price_strategy.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/manager/conftest.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/manager/test_default_middlewares.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/manager/test_middleware_can_be_stateful.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/manager/test_middleware_onion_api.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/manager/test_provider_property.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/manager/test_provider_request_wrapping.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/manager/test_response_formatters.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/method-class/test_method.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/method-class/test_result_formatters.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_attrdict_middleware.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_eth_tester_middleware.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_filter_middleware.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_formatting_middleware.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_gas_price_strategy.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_middleware.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_name_to_address_middleware.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_stalecheck.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/middleware/test_transaction_signing.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/module-class/test_module.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_async_http_provider.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_async_tester_provider.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_auto_provider.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_base_provider.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_http_provider.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_http_request_retry.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_provider_init.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/providers/test_tester_provider.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/subscriptions/test_subscriptions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/test_library_files.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/testing-module/test_testing_mine.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/testing-module/test_testing_snapshot_and_revert.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/testing-module/test_testing_timeTravel.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/conftest.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_abi.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_abi_filtering_by_argument_name.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_abi_is_encodable.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_abi_named_tree.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_address.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_attach_modules.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_attributedict.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_caching_utils.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_construct_event_data_set.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_construct_event_filter_params.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_construct_event_topics.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_datatypes.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_decorators.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_encoding.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_event_filter_builder.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_event_interface.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_fee_utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_formatters.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_http_session_manager.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_is_predefined_block_number.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_is_probably_enum.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_is_recognized_type.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_math.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_method_formatters.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_prepare_transaction_replacement.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_select_filter_method.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_valid_transaction_params.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/utilities/test_validation.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_api.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_attach_modules.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_client_version.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_conversions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_import_and_version.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_keccak.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_providers.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_strict_bytes_type_checking.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/core/web3-module/test_web3_inheritance.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/conftest.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/ens/normalization/normalization_tests.json +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/normalization/test_normalize_name_ensip15.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_ens.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_get_registry.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_nameprep.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_offchain_resolution.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_setup_address.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_setup_name.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/ens/test_wildcard_resolution.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/.DS_Store +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/README.md +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/common.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/conftest.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/tests/integration/generate_fixtures/go_ethereum.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/common.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/test_goethereum_ws/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/test_goethereum_ws/test_async_await_w3.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/test_goethereum_ws/test_async_ctx_manager_w3.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/test_goethereum_ws/test_async_iterator_w3.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/tests/integration/go_ethereum/utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/abi_element_identifiers.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/async_caching.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/async_transactions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/blocks.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/caching/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/caching/caching_utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/caching/request_caching_validation.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/compat/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/compile_contracts.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contract_sources/contract_data/_custom_contract_data.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/contracts.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/datatypes.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/decorators.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/empty.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/encoding.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/ens.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/events.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/fee_utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/filters.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/http.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/http_session_manager.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/hypothesis.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/math.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/go_ethereum_admin_module.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/go_ethereum_debug_module.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/go_ethereum_txpool_module.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/module_testing_utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/net_module.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/persistent_connection_provider.py +1 -1
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/module_testing/web3_module.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/normalizers.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/threads.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/transactions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/type_conversion.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/utility_methods.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/_utils/windows.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/auto/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/auto/gethdev.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/beacon/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/beacon/api_endpoints.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/beacon/async_beacon.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/beacon/beacon.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/constants.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/contract/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/contract/async_contract.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/contract/base_contract.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/contract/contract.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/contract/utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/datastructures.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/eth/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/eth/base_eth.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/exceptions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/gas_strategies/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/geth.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/logs.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/main.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/method.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/attrdict.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/base.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/buffered_gas_estimate.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/filter.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/formatting.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/gas_price_strategy.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/names.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/proof_of_authority.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/pythonic.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/signing.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/stalecheck.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/middleware/validation.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/module.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/net.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/auto.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/base.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/eth_tester/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/eth_tester/defaults.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/eth_tester/main.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/eth_tester/middleware.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/ipc.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/async_ipc.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/persistent_connection.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/request_processor.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/subscription_container.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/persistent/utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/rpc/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/rpc/async_rpc.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/rpc/rpc.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/providers/rpc/utils.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/py.typed +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/scripts/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/scripts/install_pre_releases.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/scripts/parse_pygeth_version.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/scripts/release/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/scripts/release/test_package.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/testing.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/tracing.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/utils/__init__.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/utils/abi.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/utils/address.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/utils/async_exception_handling.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/utils/caching.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/utils/exception_handling.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3/utils/subscriptions.py +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3.egg-info/dependency_links.txt +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3.egg-info/not-zip-safe +0 -0
- {web3-7.8.0 → web3-7.10.0}/web3.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: web3
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.10.0
|
|
4
4
|
Summary: web3: A Python library for interacting with Ethereum
|
|
5
5
|
Home-page: https://github.com/ethereum/web3.py
|
|
6
6
|
Author: The Ethereum Foundation
|
|
@@ -33,14 +33,14 @@ Requires-Dist: pywin32>=223; platform_system == "Windows"
|
|
|
33
33
|
Requires-Dist: requests>=2.23.0
|
|
34
34
|
Requires-Dist: typing-extensions>=4.0.1
|
|
35
35
|
Requires-Dist: types-requests>=2.0.0
|
|
36
|
-
Requires-Dist: websockets<
|
|
36
|
+
Requires-Dist: websockets<16.0.0,>=10.0.0
|
|
37
37
|
Requires-Dist: pyunormalize>=15.0.0
|
|
38
38
|
Provides-Extra: tester
|
|
39
39
|
Requires-Dist: eth-tester[py-evm]<0.13.0b1,>=0.12.0b1; extra == "tester"
|
|
40
40
|
Requires-Dist: py-geth>=5.1.0; extra == "tester"
|
|
41
41
|
Provides-Extra: dev
|
|
42
42
|
Requires-Dist: build>=0.9.0; extra == "dev"
|
|
43
|
-
Requires-Dist:
|
|
43
|
+
Requires-Dist: bump_my_version>=0.19.0; extra == "dev"
|
|
44
44
|
Requires-Dist: ipython; extra == "dev"
|
|
45
45
|
Requires-Dist: setuptools>=38.6.0; extra == "dev"
|
|
46
46
|
Requires-Dist: tqdm>4.32; extra == "dev"
|
|
@@ -49,7 +49,7 @@ Requires-Dist: wheel; extra == "dev"
|
|
|
49
49
|
Requires-Dist: sphinx>=6.0.0; extra == "dev"
|
|
50
50
|
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
|
|
51
51
|
Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
|
|
52
|
-
Requires-Dist: towncrier<
|
|
52
|
+
Requires-Dist: towncrier<25,>=24; extra == "dev"
|
|
53
53
|
Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "dev"
|
|
54
54
|
Requires-Dist: pytest-mock>=1.10; extra == "dev"
|
|
55
55
|
Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
|
|
@@ -65,7 +65,7 @@ Provides-Extra: docs
|
|
|
65
65
|
Requires-Dist: sphinx>=6.0.0; extra == "docs"
|
|
66
66
|
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
|
|
67
67
|
Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
|
|
68
|
-
Requires-Dist: towncrier<
|
|
68
|
+
Requires-Dist: towncrier<25,>=24; extra == "docs"
|
|
69
69
|
Provides-Extra: test
|
|
70
70
|
Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "test"
|
|
71
71
|
Requires-Dist: pytest-mock>=1.10; extra == "test"
|
|
@@ -86,6 +86,7 @@ Dynamic: description-content-type
|
|
|
86
86
|
Dynamic: home-page
|
|
87
87
|
Dynamic: keywords
|
|
88
88
|
Dynamic: license
|
|
89
|
+
Dynamic: license-file
|
|
89
90
|
Dynamic: provides-extra
|
|
90
91
|
Dynamic: requires-dist
|
|
91
92
|
Dynamic: requires-python
|
|
@@ -105,14 +106,18 @@ web3.py allows you to interact with the Ethereum blockchain using Python, enabli
|
|
|
105
106
|
|
|
106
107
|
- Python 3.8+ support
|
|
107
108
|
|
|
108
|
-
|
|
109
|
+
## Installation
|
|
110
|
+
|
|
111
|
+
```sh
|
|
112
|
+
python -m pip install web3
|
|
113
|
+
```
|
|
109
114
|
|
|
110
|
-
##
|
|
115
|
+
## Documentation
|
|
111
116
|
|
|
112
117
|
[Get started in 5 minutes](https://web3py.readthedocs.io/en/latest/quickstart.html) or
|
|
113
118
|
[take a tour](https://web3py.readthedocs.io/en/latest/overview.html) of the library.
|
|
114
119
|
|
|
115
|
-
|
|
120
|
+
View the [change log](https://web3py.readthedocs.io/en/latest/release_notes.html).
|
|
116
121
|
|
|
117
122
|
For additional guides, examples, and APIs, see the [documentation](https://web3py.readthedocs.io/en/latest/).
|
|
118
123
|
|
|
@@ -12,14 +12,18 @@ web3.py allows you to interact with the Ethereum blockchain using Python, enabli
|
|
|
12
12
|
|
|
13
13
|
- Python 3.8+ support
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
python -m pip install web3
|
|
19
|
+
```
|
|
16
20
|
|
|
17
|
-
##
|
|
21
|
+
## Documentation
|
|
18
22
|
|
|
19
23
|
[Get started in 5 minutes](https://web3py.readthedocs.io/en/latest/quickstart.html) or
|
|
20
24
|
[take a tour](https://web3py.readthedocs.io/en/latest/overview.html) of the library.
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
View the [change log](https://web3py.readthedocs.io/en/latest/release_notes.html).
|
|
23
27
|
|
|
24
28
|
For additional guides, examples, and APIs, see the [documentation](https://web3py.readthedocs.io/en/latest/).
|
|
25
29
|
|
|
@@ -7,6 +7,7 @@ combine_as_imports = true
|
|
|
7
7
|
extra_standard_library = "pytest"
|
|
8
8
|
force_grid_wrap = 1
|
|
9
9
|
force_sort_within_sections = true
|
|
10
|
+
force_to_top = "pytest"
|
|
10
11
|
honor_noqa = true
|
|
11
12
|
known_first_party = "web3"
|
|
12
13
|
known_third_party = "hypothesis"
|
|
@@ -124,3 +125,46 @@ showcontent = true
|
|
|
124
125
|
directory = "removal"
|
|
125
126
|
name = "Removals"
|
|
126
127
|
showcontent = true
|
|
128
|
+
|
|
129
|
+
[tool.bumpversion]
|
|
130
|
+
current_version = "7.10.0"
|
|
131
|
+
parse = """
|
|
132
|
+
(?P<major>\\d+)
|
|
133
|
+
\\.(?P<minor>\\d+)
|
|
134
|
+
\\.(?P<patch>\\d+)
|
|
135
|
+
(-
|
|
136
|
+
(?P<stage>[^.]*)
|
|
137
|
+
\\.(?P<devnum>\\d+)
|
|
138
|
+
)?
|
|
139
|
+
"""
|
|
140
|
+
serialize = [
|
|
141
|
+
"{major}.{minor}.{patch}-{stage}.{devnum}",
|
|
142
|
+
"{major}.{minor}.{patch}",
|
|
143
|
+
]
|
|
144
|
+
search = "{current_version}"
|
|
145
|
+
replace = "{new_version}"
|
|
146
|
+
regex = false
|
|
147
|
+
ignore_missing_version = false
|
|
148
|
+
tag = true
|
|
149
|
+
sign_tags = true
|
|
150
|
+
tag_name = "v{new_version}"
|
|
151
|
+
tag_message = "Bump version: {current_version} → {new_version}"
|
|
152
|
+
allow_dirty = false
|
|
153
|
+
commit = true
|
|
154
|
+
message = "Bump version: {current_version} → {new_version}"
|
|
155
|
+
|
|
156
|
+
[tool.bumpversion.parts.stage]
|
|
157
|
+
optional_value = "stable"
|
|
158
|
+
first_value = "stable"
|
|
159
|
+
values = [
|
|
160
|
+
"alpha",
|
|
161
|
+
"beta",
|
|
162
|
+
"stable",
|
|
163
|
+
]
|
|
164
|
+
|
|
165
|
+
[tool.bumpversion.part.devnum]
|
|
166
|
+
|
|
167
|
+
[[tool.bumpversion.files]]
|
|
168
|
+
filename = "setup.py"
|
|
169
|
+
search = "version=\"{current_version}\""
|
|
170
|
+
replace = "version=\"{new_version}\""
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from pathlib import (
|
|
2
|
+
Path,
|
|
3
|
+
)
|
|
4
|
+
import subprocess
|
|
5
|
+
from tempfile import (
|
|
6
|
+
TemporaryDirectory,
|
|
7
|
+
)
|
|
8
|
+
import venv
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def create_venv(parent_path: Path) -> Path:
|
|
12
|
+
venv_path = parent_path / "package-smoke-test"
|
|
13
|
+
venv.create(venv_path, with_pip=True)
|
|
14
|
+
subprocess.run(
|
|
15
|
+
[venv_path / "bin" / "pip", "install", "-U", "pip", "setuptools"], check=True
|
|
16
|
+
)
|
|
17
|
+
return venv_path
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def find_wheel(project_path: Path) -> Path:
|
|
21
|
+
wheels = list(project_path.glob("dist/*.whl"))
|
|
22
|
+
|
|
23
|
+
if len(wheels) != 1:
|
|
24
|
+
raise Exception(
|
|
25
|
+
f"Expected one wheel. Instead found: {wheels} "
|
|
26
|
+
f"in project {project_path.absolute()}"
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
return wheels[0]
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def install_wheel(venv_path: Path, wheel_path: Path) -> None:
|
|
33
|
+
subprocess.run(
|
|
34
|
+
[venv_path / "bin" / "pip", "install", f"{wheel_path}"],
|
|
35
|
+
check=True,
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_install_local_wheel() -> None:
|
|
40
|
+
with TemporaryDirectory() as tmpdir:
|
|
41
|
+
venv_path = create_venv(Path(tmpdir))
|
|
42
|
+
wheel_path = find_wheel(Path("."))
|
|
43
|
+
install_wheel(venv_path, wheel_path)
|
|
44
|
+
print("Installed", wheel_path.absolute(), "to", venv_path)
|
|
45
|
+
print(f"Activate with `source {venv_path}/bin/activate`")
|
|
46
|
+
input("Press enter when the test has completed. The directory will be deleted.")
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
if __name__ == "__main__":
|
|
50
|
+
test_install_local_wheel()
|
|
@@ -13,7 +13,7 @@ extras_require = {
|
|
|
13
13
|
],
|
|
14
14
|
"dev": [
|
|
15
15
|
"build>=0.9.0",
|
|
16
|
-
"
|
|
16
|
+
"bump_my_version>=0.19.0",
|
|
17
17
|
"ipython",
|
|
18
18
|
"setuptools>=38.6.0",
|
|
19
19
|
"tqdm>4.32",
|
|
@@ -24,7 +24,7 @@ extras_require = {
|
|
|
24
24
|
"sphinx>=6.0.0",
|
|
25
25
|
"sphinx-autobuild>=2021.3.14",
|
|
26
26
|
"sphinx_rtd_theme>=1.0.0",
|
|
27
|
-
"towncrier>=
|
|
27
|
+
"towncrier>=24,<25",
|
|
28
28
|
],
|
|
29
29
|
"test": [
|
|
30
30
|
"pytest-asyncio>=0.18.1,<0.23",
|
|
@@ -54,8 +54,8 @@ with open("./README.md") as readme:
|
|
|
54
54
|
|
|
55
55
|
setup(
|
|
56
56
|
name="web3",
|
|
57
|
-
# *IMPORTANT*: Don't manually change the version here.
|
|
58
|
-
version="7.
|
|
57
|
+
# *IMPORTANT*: Don't manually change the version here. See Contributing docs for the release process.
|
|
58
|
+
version="7.10.0",
|
|
59
59
|
description="""web3: A Python library for interacting with Ethereum""",
|
|
60
60
|
long_description=long_description,
|
|
61
61
|
long_description_content_type="text/markdown",
|
|
@@ -78,7 +78,7 @@ setup(
|
|
|
78
78
|
"requests>=2.23.0",
|
|
79
79
|
"typing-extensions>=4.0.1",
|
|
80
80
|
"types-requests>=2.0.0",
|
|
81
|
-
"websockets>=10.0.0,<
|
|
81
|
+
"websockets>=10.0.0,<16.0.0",
|
|
82
82
|
"pyunormalize>=15.0.0",
|
|
83
83
|
],
|
|
84
84
|
python_requires=">=3.8, <4",
|
|
@@ -42,7 +42,7 @@ def emitter_contract_data():
|
|
|
42
42
|
return EMITTER_CONTRACT_DATA
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
# This class defines events for the EmitterContract and
|
|
45
|
+
# This class defines events for the EmitterContract and is used to construct
|
|
46
46
|
# a fixture for contract event logs. Parameterized tests that utilize an `emitter`
|
|
47
47
|
# contract fixture will use this data.
|
|
48
48
|
class LogFunctions:
|
|
@@ -71,7 +71,7 @@ def emitter_contract_event_ids():
|
|
|
71
71
|
return LogFunctions
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
# This class defines topics for the EmitterContract and
|
|
74
|
+
# This class defines topics for the EmitterContract and is used to construct
|
|
75
75
|
# a fixture for contract event log topics. Parameterized tests that utilize
|
|
76
76
|
# an `emitter` contract fixture will use this data.
|
|
77
77
|
class LogTopics:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import copy
|
|
2
1
|
import pytest
|
|
2
|
+
import copy
|
|
3
3
|
import re
|
|
4
4
|
|
|
5
5
|
from eth_abi.exceptions import (
|
|
@@ -848,7 +848,7 @@ def test_event_rich_log(
|
|
|
848
848
|
txn_hash = emitter_fn(event_id, *call_args).transact()
|
|
849
849
|
else:
|
|
850
850
|
# Some tests do not rely on the event_id. Rather than
|
|
851
|
-
# changing this test too much,bypass this here and just
|
|
851
|
+
# changing this test too much, bypass this here and just
|
|
852
852
|
# call the function with the provided args.
|
|
853
853
|
txn_hash = emitter_fn(*call_args).transact()
|
|
854
854
|
txn_receipt = wait_for_transaction(w3, txn_hash)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import pytest
|
|
1
2
|
import json
|
|
2
3
|
import os
|
|
3
4
|
import pathlib
|
|
4
|
-
import pytest
|
|
5
5
|
import socket
|
|
6
6
|
import tempfile
|
|
7
7
|
from threading import (
|
|
@@ -360,7 +360,7 @@ async def test_async_ipc_provider_write_messages_end_with_new_line_delimiter(
|
|
|
360
360
|
async with AsyncWeb3(AsyncIPCProvider(pathlib.Path(jsonrpc_ipc_pipe_path))) as w3:
|
|
361
361
|
w3.provider._writer.write = Mock()
|
|
362
362
|
w3.provider._reader.readline = AsyncMock(
|
|
363
|
-
return_value=b'{"id": 0, "result": {}}\n'
|
|
363
|
+
return_value=b'{"id": 0, "jsonrpc": "2.0", "result": {}}\n'
|
|
364
364
|
)
|
|
365
365
|
|
|
366
366
|
await w3.provider.make_request("method", [])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import pytest
|
|
1
2
|
import os
|
|
2
3
|
import pathlib
|
|
3
|
-
import pytest
|
|
4
4
|
import socket
|
|
5
5
|
import sys
|
|
6
6
|
import tempfile
|
|
@@ -191,7 +191,9 @@ def test_web3_auto_gethdev(request_mocker):
|
|
|
191
191
|
def test_ipc_provider_write_messages_end_with_new_line_delimiter(jsonrpc_ipc_pipe_path):
|
|
192
192
|
provider = IPCProvider(pathlib.Path(jsonrpc_ipc_pipe_path), timeout=3)
|
|
193
193
|
provider._socket.sock = Mock()
|
|
194
|
-
provider._socket.sock.recv.return_value =
|
|
194
|
+
provider._socket.sock.recv.return_value = (
|
|
195
|
+
b'{"id":0, "jsonrpc": "2.0", "result": {}}\n'
|
|
196
|
+
)
|
|
195
197
|
|
|
196
198
|
provider.make_request("method", [])
|
|
197
199
|
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
import pytest
|
|
1
2
|
import asyncio
|
|
2
3
|
from asyncio.exceptions import (
|
|
3
4
|
TimeoutError,
|
|
4
5
|
)
|
|
5
|
-
import pytest
|
|
6
6
|
from threading import (
|
|
7
7
|
Thread,
|
|
8
8
|
)
|
|
9
9
|
|
|
10
|
-
import
|
|
10
|
+
from websockets.legacy.server import (
|
|
11
|
+
serve,
|
|
12
|
+
)
|
|
11
13
|
|
|
12
14
|
from tests.utils import (
|
|
13
15
|
wait_for_ws,
|
|
@@ -35,7 +37,7 @@ def start_websocket_server(open_port):
|
|
|
35
37
|
await websocket.send(data)
|
|
36
38
|
|
|
37
39
|
asyncio.set_event_loop(event_loop)
|
|
38
|
-
server =
|
|
40
|
+
server = serve(empty_server, "127.0.0.1", open_port)
|
|
39
41
|
event_loop.run_until_complete(server)
|
|
40
42
|
event_loop.run_forever()
|
|
41
43
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import pytest
|
|
1
2
|
import asyncio
|
|
2
3
|
import json
|
|
3
|
-
import pytest
|
|
4
4
|
from unittest.mock import (
|
|
5
5
|
AsyncMock,
|
|
6
6
|
Mock,
|
|
@@ -55,6 +55,14 @@ class WSException(Exception):
|
|
|
55
55
|
pass
|
|
56
56
|
|
|
57
57
|
|
|
58
|
+
GET_BLOCK_JSON_MESSAGE = {
|
|
59
|
+
"id": 0,
|
|
60
|
+
"jsonrpc": "2.0",
|
|
61
|
+
"method": "eth_getBlockByNumber",
|
|
62
|
+
"params": ["latest", False],
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
|
|
58
66
|
def test_get_endpoint_uri_or_ipc_path_returns_endpoint_uri():
|
|
59
67
|
provider = WebSocketProvider("ws://mocked")
|
|
60
68
|
assert (
|
|
@@ -67,6 +75,14 @@ def test_get_endpoint_uri_or_ipc_path_returns_endpoint_uri():
|
|
|
67
75
|
# -- async -- #
|
|
68
76
|
|
|
69
77
|
|
|
78
|
+
def test_websocket_provider_default_values():
|
|
79
|
+
ws_uri = "ws://127.0.0.1:1337"
|
|
80
|
+
with patch.dict("os.environ", {"WEB3_WS_PROVIDER_URI": ws_uri}):
|
|
81
|
+
provider = WebSocketProvider()
|
|
82
|
+
assert provider.endpoint_uri == ws_uri
|
|
83
|
+
assert provider.use_text_frames is False
|
|
84
|
+
|
|
85
|
+
|
|
70
86
|
@pytest.mark.asyncio
|
|
71
87
|
async def test_disconnect_cleanup():
|
|
72
88
|
provider = WebSocketProvider("ws://mocked")
|
|
@@ -454,3 +470,43 @@ async def test_persistent_connection_provider_empty_batch_response():
|
|
|
454
470
|
# assert that even though there was an error, we have reset the batching
|
|
455
471
|
# state
|
|
456
472
|
assert not async_w3.provider._is_batching
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
@pytest.mark.parametrize(
|
|
476
|
+
"use_text_frames, expected_send_arg",
|
|
477
|
+
(
|
|
478
|
+
(False, to_bytes(text=json.dumps(GET_BLOCK_JSON_MESSAGE))),
|
|
479
|
+
(True, json.dumps(GET_BLOCK_JSON_MESSAGE)),
|
|
480
|
+
),
|
|
481
|
+
)
|
|
482
|
+
@pytest.mark.asyncio
|
|
483
|
+
async def test_websocket_provider_use_text_frames(use_text_frames, expected_send_arg):
|
|
484
|
+
provider = WebSocketProvider("ws://mocked", use_text_frames=use_text_frames)
|
|
485
|
+
assert provider.use_text_frames is use_text_frames
|
|
486
|
+
|
|
487
|
+
# mock provider and add a mocked response to the cache
|
|
488
|
+
_mock_ws(provider)
|
|
489
|
+
provider._ws.send = AsyncMock()
|
|
490
|
+
provider._request_processor._request_response_cache.cache(
|
|
491
|
+
generate_cache_key(0), "0x1337"
|
|
492
|
+
)
|
|
493
|
+
|
|
494
|
+
await provider.make_request(RPCEndpoint("eth_getBlockByNumber"), ["latest", False])
|
|
495
|
+
provider._ws.send.assert_called_once_with(expected_send_arg)
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
@pytest.mark.asyncio
|
|
499
|
+
async def test_websocket_provider_raises_errors_from_cache_not_tied_to_a_request():
|
|
500
|
+
with patch(
|
|
501
|
+
"web3.providers.persistent.websocket.connect",
|
|
502
|
+
new=lambda *_1, **_2: WebSocketMessageStreamMock(
|
|
503
|
+
messages=[
|
|
504
|
+
b'{"id": 0, "jsonrpc": "2.0", "result": "0x0"}\n',
|
|
505
|
+
b'{"id": null, "jsonrpc": "2.0", "error": {"code": 21, "message": "Request shutdown"}}\n', # noqa: E501
|
|
506
|
+
]
|
|
507
|
+
),
|
|
508
|
+
):
|
|
509
|
+
async_w3 = await AsyncWeb3(WebSocketProvider("ws://mocked"))
|
|
510
|
+
with pytest.raises(Web3RPCError, match="Request shutdown"):
|
|
511
|
+
await asyncio.sleep(0.1)
|
|
512
|
+
await async_w3.eth.block_number
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import itertools
|
|
2
1
|
import pytest
|
|
2
|
+
import itertools
|
|
3
3
|
from unittest.mock import (
|
|
4
4
|
AsyncMock,
|
|
5
5
|
)
|
|
@@ -188,3 +188,28 @@ async def test_unsubscribe_with_one_or_multiple(subscription_manager):
|
|
|
188
188
|
# unsubscribe non-existent subscription object
|
|
189
189
|
with pytest.raises(Web3ValueError, match=f"Subscription not found|{sub5.id}"):
|
|
190
190
|
await subscription_manager.unsubscribe(sub5)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
@pytest.mark.asyncio
|
|
194
|
+
async def test_unsubscribe_with_subscriptions_reference_does_not_mutate_the_list(
|
|
195
|
+
subscription_manager,
|
|
196
|
+
):
|
|
197
|
+
sub1 = NewHeadsSubscription()
|
|
198
|
+
sub2 = LogsSubscription()
|
|
199
|
+
sub3 = PendingTxSubscription()
|
|
200
|
+
sub4 = NewHeadsSubscription()
|
|
201
|
+
|
|
202
|
+
await subscription_manager.subscribe([sub1, sub2, sub3, sub4])
|
|
203
|
+
assert subscription_manager.subscriptions == [sub1, sub2, sub3, sub4]
|
|
204
|
+
|
|
205
|
+
# assert not mutating in place
|
|
206
|
+
await subscription_manager.unsubscribe(subscription_manager.subscriptions)
|
|
207
|
+
assert subscription_manager.subscriptions == []
|
|
208
|
+
|
|
209
|
+
# via unsubscribe all
|
|
210
|
+
|
|
211
|
+
await subscription_manager.subscribe([sub1, sub2, sub3, sub4])
|
|
212
|
+
assert subscription_manager.subscriptions == [sub1, sub2, sub3, sub4]
|
|
213
|
+
|
|
214
|
+
await subscription_manager.unsubscribe_all()
|
|
215
|
+
assert subscription_manager.subscriptions == []
|
|
@@ -75,7 +75,7 @@ async def test_async_fill_transaction_defaults_for_all_params(async_w3):
|
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
@pytest.mark.asyncio()
|
|
78
|
-
async def
|
|
78
|
+
async def test_async_fill_transaction_defaults_nondynamic_transaction_fee(async_w3):
|
|
79
79
|
gasPrice_transaction = {
|
|
80
80
|
"gasPrice": 10,
|
|
81
81
|
}
|
|
@@ -100,7 +100,7 @@ def test_with_custom_exception_type():
|
|
|
100
100
|
|
|
101
101
|
|
|
102
102
|
def test_with_custom_exception_instance():
|
|
103
|
-
exc = Web3ValueError("an instance of an
|
|
103
|
+
exc = Web3ValueError("an instance of an exception")
|
|
104
104
|
timeout = Timeout(0.01, exc)
|
|
105
105
|
timeout.start()
|
|
106
106
|
time.sleep(0.02)
|
|
@@ -112,7 +112,7 @@ async def test_async_set_text_fails_with_bad_address(async_ens):
|
|
|
112
112
|
|
|
113
113
|
|
|
114
114
|
@pytest.mark.asyncio
|
|
115
|
-
async def
|
|
115
|
+
async def test_async_set_text_pass_in_transaction_dict(async_ens):
|
|
116
116
|
accounts = await async_ens.w3.eth.accounts
|
|
117
117
|
address = accounts[2]
|
|
118
118
|
|
|
@@ -59,6 +59,11 @@ GENESIS_DATA = {
|
|
|
59
59
|
# post-merge, timestamp is used for network transitions
|
|
60
60
|
"shanghaiTime": 0,
|
|
61
61
|
"cancunTime": 0,
|
|
62
|
+
"pragueTime": 0,
|
|
63
|
+
"blobSchedule": {
|
|
64
|
+
"cancun": {"target": 3, "max": 6, "baseFeeUpdateFraction": 3338477},
|
|
65
|
+
"prague": {"target": 6, "max": 9, "baseFeeUpdateFraction": 5007716},
|
|
66
|
+
},
|
|
62
67
|
},
|
|
63
68
|
"nonce": "0x0",
|
|
64
69
|
"alloc": {
|
|
Binary file
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import pytest
|
|
1
2
|
import json
|
|
2
3
|
import os
|
|
3
4
|
from pathlib import (
|
|
4
5
|
Path,
|
|
5
6
|
)
|
|
6
|
-
import pytest
|
|
7
7
|
import subprocess
|
|
8
8
|
import zipfile
|
|
9
9
|
|
|
@@ -34,7 +34,7 @@ from .utils import (
|
|
|
34
34
|
)
|
|
35
35
|
|
|
36
36
|
KEYFILE_PW = "web3py-test"
|
|
37
|
-
GETH_FIXTURE_ZIP = "geth-1.
|
|
37
|
+
GETH_FIXTURE_ZIP = "geth-1.15.5-fixture.zip"
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
@pytest.fixture(scope="module")
|
|
@@ -97,12 +97,16 @@ def base_geth_command_arguments(geth_binary, datadir):
|
|
|
97
97
|
"2",
|
|
98
98
|
"--password",
|
|
99
99
|
os.path.join(datadir, "keystore", "pw.txt"),
|
|
100
|
+
# in order to raise on underpriced transactions, ``txpool.nolocals`` is now
|
|
101
|
+
# necessary: https://github.com/ethereum/go-ethereum/pull/31202
|
|
102
|
+
"--txpool.nolocals",
|
|
100
103
|
)
|
|
101
104
|
|
|
102
105
|
|
|
103
106
|
@pytest.fixture(scope="module")
|
|
104
107
|
def geth_zipfile_version(get_geth_version):
|
|
105
|
-
|
|
108
|
+
# TODO: Remove support for 1.13.x in next major version
|
|
109
|
+
if get_geth_version.major == 1 and get_geth_version.minor in [13, 14, 15]:
|
|
106
110
|
return GETH_FIXTURE_ZIP
|
|
107
111
|
raise AssertionError("Unsupported geth version")
|
|
108
112
|
|
|
@@ -76,6 +76,17 @@ def w3(geth_process, endpoint_uri):
|
|
|
76
76
|
return Web3(Web3.HTTPProvider(endpoint_uri, request_kwargs={"timeout": 10}))
|
|
77
77
|
|
|
78
78
|
|
|
79
|
+
@pytest.fixture(scope="module")
|
|
80
|
+
def auto_w3(geth_process, endpoint_uri):
|
|
81
|
+
wait_for_http(endpoint_uri)
|
|
82
|
+
|
|
83
|
+
from web3.auto import (
|
|
84
|
+
w3,
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
return w3
|
|
88
|
+
|
|
89
|
+
|
|
79
90
|
class TestGoEthereumWeb3ModuleTest(GoEthereumWeb3ModuleTest):
|
|
80
91
|
pass
|
|
81
92
|
|
|
@@ -105,7 +116,15 @@ class TestGoEthereumDebugModuleTest(GoEthereumDebugModuleTest):
|
|
|
105
116
|
|
|
106
117
|
|
|
107
118
|
class TestGoEthereumEthModuleTest(GoEthereumEthModuleTest):
|
|
108
|
-
|
|
119
|
+
def test_auto_provider_batching(
|
|
120
|
+
self,
|
|
121
|
+
auto_w3: "Web3",
|
|
122
|
+
monkeypatch,
|
|
123
|
+
endpoint_uri,
|
|
124
|
+
) -> None:
|
|
125
|
+
monkeypatch.setenv("WEB3_PROVIDER_URI", endpoint_uri)
|
|
126
|
+
# test that batch_requests doesn't error out when using the auto provider
|
|
127
|
+
auto_w3.batch_requests()
|
|
109
128
|
|
|
110
129
|
|
|
111
130
|
class TestGoEthereumNetModuleTest(GoEthereumNetModuleTest):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import pytest
|
|
2
|
+
import os
|
|
3
3
|
import tempfile
|
|
4
4
|
|
|
5
5
|
import pytest_asyncio
|
|
@@ -53,6 +53,17 @@ def geth_ipc_path(datadir):
|
|
|
53
53
|
os.remove(_geth_ipc_path)
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
@pytest.fixture(scope="module")
|
|
57
|
+
def auto_w3(geth_process, geth_ipc_path):
|
|
58
|
+
wait_for_socket(geth_ipc_path)
|
|
59
|
+
|
|
60
|
+
from web3.auto import (
|
|
61
|
+
w3,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
return w3
|
|
65
|
+
|
|
66
|
+
|
|
56
67
|
@pytest.fixture(scope="module")
|
|
57
68
|
def w3(geth_process, geth_ipc_path):
|
|
58
69
|
wait_for_socket(geth_ipc_path)
|
|
@@ -68,7 +79,15 @@ class TestGoEthereumDebugModuleTest(GoEthereumDebugModuleTest):
|
|
|
68
79
|
|
|
69
80
|
|
|
70
81
|
class TestGoEthereumEthModuleTest(GoEthereumEthModuleTest):
|
|
71
|
-
|
|
82
|
+
def test_auto_provider_batching(
|
|
83
|
+
self,
|
|
84
|
+
auto_w3: "Web3",
|
|
85
|
+
monkeypatch,
|
|
86
|
+
geth_ipc_path,
|
|
87
|
+
) -> None:
|
|
88
|
+
monkeypatch.setenv("WEB3_PROVIDER_URI", f"file:///{geth_ipc_path}")
|
|
89
|
+
# test that batch_requests doesn't error out when using the auto provider
|
|
90
|
+
auto_w3.batch_requests()
|
|
72
91
|
|
|
73
92
|
|
|
74
93
|
class TestGoEthereumNetModuleTest(GoEthereumNetModuleTest):
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import asyncio
|
|
2
1
|
import pytest
|
|
2
|
+
import asyncio
|
|
3
3
|
|
|
4
4
|
from tests.integration.common import (
|
|
5
5
|
COINBASE,
|
|
@@ -48,7 +48,8 @@ def _geth_command_arguments(ws_port, base_geth_command_arguments, geth_version):
|
|
|
48
48
|
"--ipcdisable",
|
|
49
49
|
"--allow-insecure-unlock",
|
|
50
50
|
)
|
|
51
|
-
if geth_version.minor not in [13, 14]:
|
|
51
|
+
if geth_version.minor not in [13, 14, 15]:
|
|
52
|
+
# TODO: remove support for 1.13.x in next major version
|
|
52
53
|
raise AssertionError("Unsupported Geth version")
|
|
53
54
|
else:
|
|
54
55
|
raise AssertionError("Unsupported Geth version")
|
|
@@ -33,7 +33,8 @@ def _geth_command_arguments(ws_port, base_geth_command_arguments, geth_version):
|
|
|
33
33
|
"*",
|
|
34
34
|
"--ipcdisable",
|
|
35
35
|
)
|
|
36
|
-
if geth_version.minor not in [13, 14]:
|
|
36
|
+
if geth_version.minor not in [13, 14, 15]:
|
|
37
|
+
# TODO: remove support for 1.13.x in the next major release
|
|
37
38
|
raise AssertionError("Unsupported Geth version")
|
|
38
39
|
else:
|
|
39
40
|
raise AssertionError("Unsupported Geth version")
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import functools
|
|
2
1
|
import pytest
|
|
2
|
+
import functools
|
|
3
3
|
from typing import (
|
|
4
4
|
cast,
|
|
5
5
|
)
|
|
@@ -338,6 +338,10 @@ class TestEthereumTesterEthModule(EthModuleTest):
|
|
|
338
338
|
EthModuleTest.test_eth_getBlockReceipts_finalized,
|
|
339
339
|
MethodUnavailable,
|
|
340
340
|
)
|
|
341
|
+
test_eth_simulate_v1 = not_implemented(
|
|
342
|
+
EthModuleTest.test_eth_simulate_v1,
|
|
343
|
+
MethodUnavailable,
|
|
344
|
+
)
|
|
341
345
|
|
|
342
346
|
def test_eth_getBlockByHash_pending(self, w3: "Web3") -> None:
|
|
343
347
|
block = w3.eth.get_block("pending")
|