web3 7.0.0b9__tar.gz → 7.2.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.0.0b9/web3.egg-info → web3-7.2.0}/PKG-INFO +6 -8
- {web3-7.0.0b9 → web3-7.2.0}/setup.py +9 -8
- web3-7.2.0/tests/.DS_Store +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/beacon/test_async_beacon.py +13 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/beacon/test_beacon.py +12 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_build_transaction.py +29 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_call_interface.py +10 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_estimate_gas.py +31 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_transact_interface.py +30 -0
- web3-7.2.0/tests/core/middleware/test_middleware.py +81 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_async_http_provider.py +2 -2
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_http_provider.py +2 -2
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/test_library_files.py +1 -3
- web3-7.2.0/tests/integration/.DS_Store +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/generate_fixtures/go_ethereum.py +29 -3
- web3-7.2.0/web3/_utils/http.py +12 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/eth_module.py +40 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/beacon/api_endpoints.py +3 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/beacon/async_beacon.py +18 -2
- {web3-7.0.0b9 → web3-7.2.0}/web3/beacon/beacon.py +18 -2
- {web3-7.0.0b9 → web3-7.2.0}/web3/contract/async_contract.py +8 -8
- {web3-7.0.0b9 → web3-7.2.0}/web3/contract/contract.py +10 -8
- {web3-7.0.0b9 → web3-7.2.0}/web3/datastructures.py +21 -11
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/base.py +8 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/signing.py +2 -2
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/rpc/async_rpc.py +10 -2
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/rpc/rpc.py +11 -2
- web3-7.2.0/web3/scripts/install_pre_releases.py +33 -0
- web3-7.2.0/web3/scripts/parse_pygeth_version.py +16 -0
- {web3-7.0.0b9 → web3-7.2.0/web3.egg-info}/PKG-INFO +6 -8
- {web3-7.0.0b9 → web3-7.2.0}/web3.egg-info/SOURCES.txt +5 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3.egg-info/requires.txt +5 -7
- web3-7.0.0b9/web3/_utils/http.py +0 -9
- {web3-7.0.0b9 → web3-7.2.0}/LICENSE +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/MANIFEST.in +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/README.md +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/_normalization.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/abis.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/async_ens.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/auto.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/base_ens.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/constants.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/contract_data.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/ens.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/exceptions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/specs/nf.json +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/specs/normalization_spec.json +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/ens/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/pyproject.toml +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/setup.cfg +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/admin-module/test_admin_addPeer.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/admin-module/test_admin_nodeInfo.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/admin-module/test_admin_peers.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/block-utils/test_select_method_for_block_identifier.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/caching-utils/test_generate_cache_key.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/caching-utils/test_request_caching.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_ambiguous_functions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_attributes.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_caller_interface.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_class_construction.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_constructor.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_constructor_encoding.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_deployment.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_events_build_filter.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_example.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_init.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_method_abi_decoding.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_method_abi_encoding.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_method_to_argument_matching.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_panic_errors.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_contract_util_functions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_extracting_event_data.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_extracting_event_data_old.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/test_offchain_lookup.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/contracts/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/datastructures/test_datastructures.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/empty-object/test_empty_object_is_falsy.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_accounts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_block_api.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_default_account_api.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_eth_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_eth_fee_history.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_eth_filter.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_eth_properties.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_gas_pricing.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_poa.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-module/test_transactions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/eth-tester-api/test_withdrawals.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/exceptions/test_exceptions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_basic_filter_tests.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_contract_create_filter_topic_merging.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_contract_data_filters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_contract_get_logs.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_contract_on_event_filtering.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_contract_past_event_filtering.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_contract_topic_filters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_existing_filter_instance.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_filter_against_latest_blocks.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_filter_against_pending_transactions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_filter_against_transaction_logs.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_filters_against_many_blocks.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/test_utils_functions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/filtering/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/gas-strategies/test_rpc_gas_pricing_strategies.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/gas-strategies/test_time_based_gas_price_strategy.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/manager/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/manager/test_default_middlewares.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/manager/test_middleware_can_be_stateful.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/manager/test_middleware_onion_api.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/manager/test_provider_property.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/manager/test_provider_request_wrapping.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/manager/test_response_formatters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/method-class/test_method.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/method-class/test_result_formatters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/middleware/test_attrdict_middleware.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/middleware/test_eth_tester_middleware.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/middleware/test_filter_middleware.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/middleware/test_formatting_middleware.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/middleware/test_gas_price_strategy.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/middleware/test_name_to_address_middleware.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/middleware/test_stalecheck.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/middleware/test_transaction_signing.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/module-class/test_module.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_async_ipc_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_async_tester_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_auto_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_base_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_http_request_retry.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_ipc_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_legacy_websocket_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_tester_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/providers/test_websocket_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/testing-module/test_testing_mine.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/testing-module/test_testing_snapshot_and_revert.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/testing-module/test_testing_timeTravel.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_abi.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_abi_filtering_by_argument_name.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_abi_is_encodable.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_abi_named_tree.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_address.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_async_transaction.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_attach_modules.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_attributedict.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_caching_utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_construct_event_data_set.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_construct_event_filter_params.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_construct_event_topics.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_datatypes.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_decorators.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_encoding.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_event_filter_builder.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_event_interface.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_fee_utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_formatters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_http_session_manager.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_is_predefined_block_number.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_is_probably_enum.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_is_recognized_type.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_math.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_method_formatters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_prepare_transaction_replacement.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_select_filter_method.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_threads.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_valid_transaction_params.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/utilities/test_validation.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_api.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_attach_modules.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_client_version.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_conversions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_import_and_version.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_keccak.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_providers.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_strict_bytes_type_checking.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/core/web3-module/test_web3_inheritance.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/normalization/normalization_tests.json +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/normalization/test_normalize_name_ensip15.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_ens.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_get_registry.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_get_text.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_nameprep.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_offchain_resolution.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_setup_address.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_setup_name.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/ens/test_wildcard_resolution.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/README.md +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/common.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/generate_fixtures/common.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/geth-1.14.5-fixture.zip +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/common.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/test_goethereum_http.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/test_goethereum_ipc.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/test_goethereum_legacy_ws.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/test_goethereum_ws/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/test_goethereum_ws/conftest.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/test_goethereum_ws/test_async_await_w3.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/test_goethereum_ws/test_async_ctx_manager_w3.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/test_goethereum_ws/test_async_iterator_w3.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/go_ethereum/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/integration/test_ethereum_tester.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/tests/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/abi.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/abi_element_identifiers.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/async_caching.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/async_transactions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/batching.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/blocks.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/caching.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/compat/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/compile_contracts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/_custom_contract_data.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/arrays_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/bytes_contracts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/constructor_contracts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/contract_caller_tester.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/emitter_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/event_contracts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/extended_resolver.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/fallback_function_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/math_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/offchain_lookup.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/offchain_resolver.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/panic_errors_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/payable_tester.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/receive_function_contracts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/reflector_contracts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/revert_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/simple_resolver.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/storage_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/string_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contract_sources/contract_data/tuple_contracts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/contracts.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/datatypes.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/decorators.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/empty.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/encoding.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/ens.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/error_formatters_utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/events.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/fee_utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/filters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/formatters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/http_session_manager.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/hypothesis.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/math.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/method_formatters.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/go_ethereum_admin_module.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/go_ethereum_txpool_module.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/module_testing_utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/net_module.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/persistent_connection_provider.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/module_testing/web3_module.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/normalizers.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/rpc_abi.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/threads.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/transactions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/type_conversion.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/utility_methods.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/validation.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/_utils/windows.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/auto/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/auto/gethdev.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/beacon/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/constants.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/contract/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/contract/base_contract.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/contract/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/eth/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/eth/async_eth.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/eth/base_eth.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/eth/eth.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/exceptions.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/gas_strategies/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/gas_strategies/rpc.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/gas_strategies/time_based.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/geth.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/logs.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/main.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/manager.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/method.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/attrdict.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/buffered_gas_estimate.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/filter.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/formatting.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/gas_price_strategy.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/names.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/proof_of_authority.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/pythonic.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/stalecheck.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/middleware/validation.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/module.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/net.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/async_base.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/auto.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/base.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/eth_tester/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/eth_tester/defaults.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/eth_tester/main.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/eth_tester/middleware.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/ipc.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/legacy_websocket.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/persistent/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/persistent/async_ipc.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/persistent/persistent.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/persistent/persistent_connection.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/persistent/request_processor.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/persistent/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/persistent/websocket.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/rpc/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/providers/rpc/utils.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/py.typed +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/scripts/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/scripts/release/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/scripts/release/test_package.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/testing.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/tracing.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/types.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/utils/__init__.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/utils/abi.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/utils/address.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/utils/async_exception_handling.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/utils/caching.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3/utils/exception_handling.py +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3.egg-info/dependency_links.txt +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3.egg-info/not-zip-safe +0 -0
- {web3-7.0.0b9 → web3-7.2.0}/web3.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: web3
|
|
3
|
-
Version: 7.0
|
|
3
|
+
Version: 7.2.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
|
|
@@ -20,13 +20,13 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
20
20
|
Requires-Python: >=3.8, <4
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
License-File: LICENSE
|
|
23
|
-
Requires-Dist: aiohttp>=3.7.4.post0
|
|
24
23
|
Requires-Dist: eth-abi>=5.0.1
|
|
25
24
|
Requires-Dist: eth-account>=0.13.1
|
|
26
25
|
Requires-Dist: eth-hash[pycryptodome]>=0.5.1
|
|
27
|
-
Requires-Dist: eth-typing>=5.0.
|
|
28
|
-
Requires-Dist: eth-utils>=5.0.
|
|
26
|
+
Requires-Dist: eth-typing>=5.0.0
|
|
27
|
+
Requires-Dist: eth-utils>=5.0.0
|
|
29
28
|
Requires-Dist: hexbytes>=1.2.0
|
|
29
|
+
Requires-Dist: aiohttp>=3.7.4.post0
|
|
30
30
|
Requires-Dist: pydantic>=2.4.0
|
|
31
31
|
Requires-Dist: pywin32>=223; platform_system == "Windows"
|
|
32
32
|
Requires-Dist: requests>=2.23.0
|
|
@@ -53,9 +53,8 @@ Requires-Dist: sphinx>=6.0.0; extra == "dev"
|
|
|
53
53
|
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "dev"
|
|
54
54
|
Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "dev"
|
|
55
55
|
Requires-Dist: towncrier<22,>=21; extra == "dev"
|
|
56
|
-
Requires-Dist: eth-account>=0.13.0; extra == "dev"
|
|
57
56
|
Requires-Dist: eth-tester[py-evm]<0.13.0b1,>=0.11.0b1; extra == "dev"
|
|
58
|
-
Requires-Dist: py-geth>=5.0.
|
|
57
|
+
Requires-Dist: py-geth>=5.0.0; extra == "dev"
|
|
59
58
|
Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "dev"
|
|
60
59
|
Requires-Dist: pytest-mock>=1.10; extra == "dev"
|
|
61
60
|
Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
|
|
@@ -65,10 +64,9 @@ Requires-Dist: sphinx>=6.0.0; extra == "docs"
|
|
|
65
64
|
Requires-Dist: sphinx-autobuild>=2021.3.14; extra == "docs"
|
|
66
65
|
Requires-Dist: sphinx_rtd_theme>=1.0.0; extra == "docs"
|
|
67
66
|
Requires-Dist: towncrier<22,>=21; extra == "docs"
|
|
68
|
-
Requires-Dist: eth-account>=0.13.0; extra == "docs"
|
|
69
67
|
Provides-Extra: test
|
|
70
68
|
Requires-Dist: eth-tester[py-evm]<0.13.0b1,>=0.11.0b1; extra == "test"
|
|
71
|
-
Requires-Dist: py-geth>=5.0.
|
|
69
|
+
Requires-Dist: py-geth>=5.0.0; extra == "test"
|
|
72
70
|
Requires-Dist: pytest-asyncio<0.23,>=0.18.1; extra == "test"
|
|
73
71
|
Requires-Dist: pytest-mock>=1.10; extra == "test"
|
|
74
72
|
Requires-Dist: pytest-xdist>=2.4.0; extra == "test"
|
|
@@ -26,13 +26,12 @@ extras_require = {
|
|
|
26
26
|
"sphinx-autobuild>=2021.3.14",
|
|
27
27
|
"sphinx_rtd_theme>=1.0.0",
|
|
28
28
|
"towncrier>=21,<22",
|
|
29
|
-
# web3 will work but emit warnings with eth-account>=0.12.2,
|
|
30
|
-
# but doctests fail between 0.12.2 and 0.13.0
|
|
31
|
-
"eth-account>=0.13.0",
|
|
32
29
|
],
|
|
33
30
|
"test": [
|
|
31
|
+
# Note: ethereum-maintained libraries in this list should be added to the
|
|
32
|
+
# `install_pre_releases.py` script.
|
|
34
33
|
"eth-tester[py-evm]>=0.11.0b1,<0.13.0b1",
|
|
35
|
-
"py-geth>=5.0.
|
|
34
|
+
"py-geth>=5.0.0",
|
|
36
35
|
"pytest-asyncio>=0.18.1,<0.23",
|
|
37
36
|
"pytest-mock>=1.10",
|
|
38
37
|
"pytest-xdist>=2.4.0",
|
|
@@ -52,7 +51,7 @@ with open("./README.md") as readme:
|
|
|
52
51
|
setup(
|
|
53
52
|
name="web3",
|
|
54
53
|
# *IMPORTANT*: Don't manually change the version here. Use `make bump`, as described in readme
|
|
55
|
-
version="7.
|
|
54
|
+
version="7.2.0",
|
|
56
55
|
description="""web3: A Python library for interacting with Ethereum""",
|
|
57
56
|
long_description=long_description,
|
|
58
57
|
long_description_content_type="text/markdown",
|
|
@@ -61,13 +60,15 @@ setup(
|
|
|
61
60
|
url="https://github.com/ethereum/web3.py",
|
|
62
61
|
include_package_data=True,
|
|
63
62
|
install_requires=[
|
|
64
|
-
|
|
63
|
+
# Note: ethereum-maintained libraries in this list should be added to the
|
|
64
|
+
# `install_pre_releases.py` script.
|
|
65
65
|
"eth-abi>=5.0.1",
|
|
66
66
|
"eth-account>=0.13.1",
|
|
67
67
|
"eth-hash[pycryptodome]>=0.5.1",
|
|
68
|
-
"eth-typing>=5.0.
|
|
69
|
-
"eth-utils>=5.0.
|
|
68
|
+
"eth-typing>=5.0.0",
|
|
69
|
+
"eth-utils>=5.0.0",
|
|
70
70
|
"hexbytes>=1.2.0",
|
|
71
|
+
"aiohttp>=3.7.4.post0",
|
|
71
72
|
"pydantic>=2.4.0",
|
|
72
73
|
"pywin32>=223;platform_system=='Windows'",
|
|
73
74
|
"requests>=2.23.0",
|
|
Binary file
|
|
@@ -267,3 +267,16 @@ async def test_async_cl_node_get_version(async_beacon):
|
|
|
267
267
|
async def test_async_cl_node_get_syncing(async_beacon):
|
|
268
268
|
response = await async_beacon.get_syncing()
|
|
269
269
|
_assert_valid_response(response)
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
# Blob endpoint tests
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
@pytest.mark.asyncio
|
|
276
|
+
async def test_async_cl_node_get_blob_sidecars(async_beacon):
|
|
277
|
+
response = await async_beacon.get_blob_sidecars("head")
|
|
278
|
+
_assert_valid_response(response)
|
|
279
|
+
|
|
280
|
+
# test with indices
|
|
281
|
+
with_indices = await async_beacon.get_blob_sidecars("head", [0, 1])
|
|
282
|
+
_assert_valid_response(with_indices)
|
|
@@ -223,3 +223,15 @@ def test_cl_node_get_version(beacon):
|
|
|
223
223
|
def test_cl_node_get_syncing(beacon):
|
|
224
224
|
response = beacon.get_syncing()
|
|
225
225
|
_assert_valid_response(response)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
# Blob endpoint tests
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
def test_cl_node_get_blob_sidecars(beacon):
|
|
232
|
+
response = beacon.get_blob_sidecars("head")
|
|
233
|
+
_assert_valid_response(response)
|
|
234
|
+
|
|
235
|
+
# test with indices
|
|
236
|
+
with_indices = beacon.get_blob_sidecars("head", [0, 1])
|
|
237
|
+
_assert_valid_response(with_indices)
|
|
@@ -53,6 +53,20 @@ def test_build_transaction_with_contract_no_arguments(
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
def test_build_transaction_with_contract_no_arguments_no_parens(
|
|
57
|
+
w3, math_contract, build_transaction
|
|
58
|
+
):
|
|
59
|
+
txn = math_contract.functions.incrementCounter.build_transaction()
|
|
60
|
+
assert dissoc(txn, "gas") == {
|
|
61
|
+
"to": math_contract.address,
|
|
62
|
+
"data": "0x5b34b966",
|
|
63
|
+
"value": 0,
|
|
64
|
+
"maxFeePerGas": 2750000000,
|
|
65
|
+
"maxPriorityFeePerGas": 10**9,
|
|
66
|
+
"chainId": 131277322940537,
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
|
|
56
70
|
def test_build_transaction_with_contract_fallback_function(
|
|
57
71
|
w3, fallback_function_contract
|
|
58
72
|
):
|
|
@@ -309,6 +323,21 @@ async def test_async_build_transaction_with_contract_no_arguments(
|
|
|
309
323
|
}
|
|
310
324
|
|
|
311
325
|
|
|
326
|
+
@pytest.mark.asyncio
|
|
327
|
+
async def test_async_build_transaction_with_contract_no_arguments_no_parens(
|
|
328
|
+
async_w3, async_math_contract, async_build_transaction
|
|
329
|
+
):
|
|
330
|
+
txn = await async_math_contract.functions.incrementCounter.build_transaction()
|
|
331
|
+
assert dissoc(txn, "gas") == {
|
|
332
|
+
"to": async_math_contract.address,
|
|
333
|
+
"data": "0x5b34b966",
|
|
334
|
+
"value": 0,
|
|
335
|
+
"maxFeePerGas": 2750000000,
|
|
336
|
+
"maxPriorityFeePerGas": 10**9,
|
|
337
|
+
"chainId": 131277322940537,
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
|
|
312
341
|
@pytest.mark.asyncio
|
|
313
342
|
async def test_async_build_transaction_with_contract_fallback_function(
|
|
314
343
|
async_w3, async_fallback_function_contract
|
|
@@ -145,6 +145,10 @@ def test_call_with_no_arguments(math_contract, call):
|
|
|
145
145
|
assert result == 13
|
|
146
146
|
|
|
147
147
|
|
|
148
|
+
def test_call_no_arguments_no_parens(math_contract):
|
|
149
|
+
assert math_contract.functions.return13.call() == 13
|
|
150
|
+
|
|
151
|
+
|
|
148
152
|
def test_call_with_one_argument(math_contract, call):
|
|
149
153
|
result = call(contract=math_contract, contract_function="multiply7", func_args=[3])
|
|
150
154
|
assert result == 21
|
|
@@ -2287,6 +2291,12 @@ async def test_async_call_with_no_arguments(async_math_contract, call):
|
|
|
2287
2291
|
assert result == 13
|
|
2288
2292
|
|
|
2289
2293
|
|
|
2294
|
+
@pytest.mark.asyncio
|
|
2295
|
+
async def test_async_call_with_no_arguments_no_parens(async_math_contract, call):
|
|
2296
|
+
result = await async_math_contract.functions.return13.call()
|
|
2297
|
+
assert result == 13
|
|
2298
|
+
|
|
2299
|
+
|
|
2290
2300
|
@pytest.mark.asyncio
|
|
2291
2301
|
async def test_async_call_with_one_argument(async_math_contract, call):
|
|
2292
2302
|
result = await async_math_contract.functions.multiply7(3).call()
|
|
@@ -18,6 +18,19 @@ def test_contract_estimate_gas(w3, math_contract, estimate_gas, transact):
|
|
|
18
18
|
assert abs(gas_estimate - gas_used) < 21000
|
|
19
19
|
|
|
20
20
|
|
|
21
|
+
def test_estimate_gas_can_be_called_without_parens(
|
|
22
|
+
w3, math_contract, estimate_gas, transact
|
|
23
|
+
):
|
|
24
|
+
gas_estimate = math_contract.functions.incrementCounter.estimate_gas()
|
|
25
|
+
|
|
26
|
+
txn_hash = transact(contract=math_contract, contract_function="incrementCounter")
|
|
27
|
+
|
|
28
|
+
txn_receipt = w3.eth.wait_for_transaction_receipt(txn_hash)
|
|
29
|
+
gas_used = txn_receipt.get("gasUsed")
|
|
30
|
+
|
|
31
|
+
assert abs(gas_estimate - gas_used) < 21000
|
|
32
|
+
|
|
33
|
+
|
|
21
34
|
def test_contract_fallback_estimate_gas(w3, fallback_function_contract):
|
|
22
35
|
gas_estimate = fallback_function_contract.fallback.estimate_gas()
|
|
23
36
|
|
|
@@ -197,6 +210,24 @@ async def test_async_estimate_gas_accepts_latest_block(
|
|
|
197
210
|
assert abs(gas_estimate - gas_used) < 21000
|
|
198
211
|
|
|
199
212
|
|
|
213
|
+
@pytest.mark.asyncio
|
|
214
|
+
async def test_async_estimate_gas_can_be_called_without_parens(
|
|
215
|
+
async_w3, async_math_contract, async_transact
|
|
216
|
+
):
|
|
217
|
+
gas_estimate = await async_math_contract.functions.counter.estimate_gas(
|
|
218
|
+
block_identifier="latest"
|
|
219
|
+
)
|
|
220
|
+
|
|
221
|
+
txn_hash = await async_transact(
|
|
222
|
+
contract=async_math_contract, contract_function="incrementCounter"
|
|
223
|
+
)
|
|
224
|
+
|
|
225
|
+
txn_receipt = await async_w3.eth.wait_for_transaction_receipt(txn_hash)
|
|
226
|
+
gas_used = txn_receipt.get("gasUsed")
|
|
227
|
+
|
|
228
|
+
assert abs(gas_estimate - gas_used) < 21000
|
|
229
|
+
|
|
230
|
+
|
|
200
231
|
@pytest.mark.asyncio
|
|
201
232
|
async def test_async_estimate_gas_block_identifier_unique_estimates(
|
|
202
233
|
async_w3, async_math_contract, async_transact
|
|
@@ -285,6 +285,17 @@ def test_receive_contract_with_fallback_function(receive_function_contract, call
|
|
|
285
285
|
assert final_value == "receive"
|
|
286
286
|
|
|
287
287
|
|
|
288
|
+
def test_contract_can_transact_without_fn_parens(w3, math_contract, call):
|
|
289
|
+
initial_value = call(contract=math_contract, contract_function="counter")
|
|
290
|
+
txn_hash = math_contract.functions.incrementCounter.transact()
|
|
291
|
+
txn_receipt = w3.eth.wait_for_transaction_receipt(txn_hash)
|
|
292
|
+
assert txn_receipt is not None
|
|
293
|
+
|
|
294
|
+
final_value = call(contract=math_contract, contract_function="counter")
|
|
295
|
+
|
|
296
|
+
assert final_value - initial_value == 1
|
|
297
|
+
|
|
298
|
+
|
|
288
299
|
@pytest.mark.asyncio
|
|
289
300
|
async def test_async_transacting_with_contract_no_arguments(
|
|
290
301
|
async_w3, async_math_contract, async_transact, async_call
|
|
@@ -306,6 +317,25 @@ async def test_async_transacting_with_contract_no_arguments(
|
|
|
306
317
|
assert final_value - initial_value == 1
|
|
307
318
|
|
|
308
319
|
|
|
320
|
+
@pytest.mark.asyncio
|
|
321
|
+
async def test_async_transacting_with_contract_no_arguments_no_parens(
|
|
322
|
+
async_w3, async_math_contract, async_transact, async_call
|
|
323
|
+
):
|
|
324
|
+
initial_value = await async_call(
|
|
325
|
+
contract=async_math_contract, contract_function="counter"
|
|
326
|
+
)
|
|
327
|
+
|
|
328
|
+
txn_hash = await async_math_contract.functions.incrementCounter.transact()
|
|
329
|
+
txn_receipt = await async_w3.eth.wait_for_transaction_receipt(txn_hash)
|
|
330
|
+
assert txn_receipt is not None
|
|
331
|
+
|
|
332
|
+
final_value = await async_call(
|
|
333
|
+
contract=async_math_contract, contract_function="counter"
|
|
334
|
+
)
|
|
335
|
+
|
|
336
|
+
assert final_value - initial_value == 1
|
|
337
|
+
|
|
338
|
+
|
|
309
339
|
@pytest.mark.asyncio
|
|
310
340
|
async def test_async_transact_not_sending_ether_to_nonpayable_function(
|
|
311
341
|
async_w3, async_payable_tester_contract, async_transact, async_call
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
|
|
3
|
+
from web3 import (
|
|
4
|
+
Web3,
|
|
5
|
+
)
|
|
6
|
+
from web3.exceptions import (
|
|
7
|
+
Web3ValueError,
|
|
8
|
+
)
|
|
9
|
+
from web3.middleware import (
|
|
10
|
+
FormattingMiddlewareBuilder,
|
|
11
|
+
Web3Middleware,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class TestMiddleware(Web3Middleware):
|
|
16
|
+
def response_processor(self, method, response):
|
|
17
|
+
if method == "eth_blockNumber":
|
|
18
|
+
response["result"] = 1234
|
|
19
|
+
|
|
20
|
+
return response
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class TestMiddleware2(Web3Middleware):
|
|
24
|
+
def response_processor(self, method, response):
|
|
25
|
+
if method == "eth_blockNumber":
|
|
26
|
+
response["result"] = 4321
|
|
27
|
+
|
|
28
|
+
return response
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def test_middleware_class_eq_magic_method():
|
|
32
|
+
w3_a = Web3()
|
|
33
|
+
w3_b = Web3()
|
|
34
|
+
|
|
35
|
+
mw1w3_a = TestMiddleware(w3_a)
|
|
36
|
+
assert mw1w3_a is not None
|
|
37
|
+
assert mw1w3_a != ""
|
|
38
|
+
|
|
39
|
+
mw1w3_a_equal = TestMiddleware(w3_a)
|
|
40
|
+
assert mw1w3_a == mw1w3_a_equal
|
|
41
|
+
|
|
42
|
+
mw2w3_a = TestMiddleware2(w3_a)
|
|
43
|
+
mw1w3_b = TestMiddleware(w3_b)
|
|
44
|
+
assert mw1w3_a != mw2w3_a
|
|
45
|
+
assert mw1w3_a != mw1w3_b
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def test_unnamed_middleware_are_given_unique_keys(w3):
|
|
49
|
+
request_formatting_middleware = FormattingMiddlewareBuilder.build(
|
|
50
|
+
request_formatters={lambda x: x}
|
|
51
|
+
)
|
|
52
|
+
request_formatting_middleware2 = FormattingMiddlewareBuilder.build(
|
|
53
|
+
request_formatters={lambda x: x if x else None}
|
|
54
|
+
)
|
|
55
|
+
result_formatting_middleware = FormattingMiddlewareBuilder.build(
|
|
56
|
+
result_formatters={lambda x: x}
|
|
57
|
+
)
|
|
58
|
+
error_formatting_middleware = FormattingMiddlewareBuilder.build(
|
|
59
|
+
error_formatters={lambda x: x}
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
# adding different middleware should not cause an error
|
|
63
|
+
w3.middleware_onion.add(request_formatting_middleware)
|
|
64
|
+
w3.middleware_onion.add(request_formatting_middleware2)
|
|
65
|
+
w3.middleware_onion.add(result_formatting_middleware)
|
|
66
|
+
w3.middleware_onion.add(error_formatting_middleware)
|
|
67
|
+
assert isinstance(w3.eth.block_number, int)
|
|
68
|
+
|
|
69
|
+
with pytest.raises(Web3ValueError):
|
|
70
|
+
# adding the same middleware again should cause an error
|
|
71
|
+
w3.middleware_onion.add(request_formatting_middleware)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def test_unnamed_class_middleware_are_given_unique_keys(w3):
|
|
75
|
+
w3.middleware_onion.add(TestMiddleware)
|
|
76
|
+
w3.middleware_onion.add(TestMiddleware2)
|
|
77
|
+
assert isinstance(w3.eth.block_number, int)
|
|
78
|
+
|
|
79
|
+
with pytest.raises(Web3ValueError):
|
|
80
|
+
# adding the same middleware again should cause an error
|
|
81
|
+
w3.middleware_onion.add(TestMiddleware)
|
|
@@ -94,8 +94,8 @@ async def test_async_user_provided_session() -> None:
|
|
|
94
94
|
assert cached_session == session
|
|
95
95
|
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
@pytest.mark.parametrize("provider", (AsyncHTTPProvider(), AsyncHTTPProvider))
|
|
98
|
+
def test_get_request_headers(provider):
|
|
99
99
|
headers = provider.get_request_headers()
|
|
100
100
|
assert len(headers) == 2
|
|
101
101
|
assert headers["Content-Type"] == "application/json"
|
|
@@ -101,8 +101,8 @@ def test_user_provided_session():
|
|
|
101
101
|
assert adapter._pool_maxsize == 20
|
|
102
102
|
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
@pytest.mark.parametrize("provider", (HTTPProvider(), HTTPProvider))
|
|
105
|
+
def test_get_request_headers(provider):
|
|
106
106
|
headers = provider.get_request_headers()
|
|
107
107
|
assert len(headers) == 2
|
|
108
108
|
assert headers["Content-Type"] == "application/json"
|
|
@@ -11,9 +11,7 @@ DEFAULT_EXCEPTIONS = (
|
|
|
11
11
|
|
|
12
12
|
def test_no_default_exceptions_are_raised_within_web3py():
|
|
13
13
|
for root, dirs, files in os.walk(WEB3_PATH):
|
|
14
|
-
if "module_testing"
|
|
15
|
-
dirs.remove("module_testing")
|
|
16
|
-
continue
|
|
14
|
+
[dirs.remove(dir_) for dir_ in dirs if dir_ in ("scripts", "module_testing")]
|
|
17
15
|
for file in files:
|
|
18
16
|
if file.endswith(".py"):
|
|
19
17
|
file_path = os.path.join(root, file)
|
|
Binary file
|
|
@@ -2,10 +2,10 @@ import contextlib
|
|
|
2
2
|
import json
|
|
3
3
|
import os
|
|
4
4
|
import pprint
|
|
5
|
+
import re
|
|
5
6
|
import shutil
|
|
6
7
|
import socket
|
|
7
8
|
import subprocess
|
|
8
|
-
import sys
|
|
9
9
|
import time
|
|
10
10
|
|
|
11
11
|
import common
|
|
@@ -361,6 +361,32 @@ def setup_chain_state(w3):
|
|
|
361
361
|
return geth_fixture
|
|
362
362
|
|
|
363
363
|
|
|
364
|
+
def update_circleci_geth_version(new_version):
|
|
365
|
+
file_path = "./.circleci/config.yml"
|
|
366
|
+
with open(file_path) as file:
|
|
367
|
+
lines = file.readlines()
|
|
368
|
+
|
|
369
|
+
replaced = False
|
|
370
|
+
for i, line in enumerate(lines):
|
|
371
|
+
if "geth_version:" in line:
|
|
372
|
+
if "default:" in lines[i + 1]:
|
|
373
|
+
lines[i + 1] = f' default: "{new_version}"\n'
|
|
374
|
+
replaced = True
|
|
375
|
+
break
|
|
376
|
+
|
|
377
|
+
if not replaced:
|
|
378
|
+
raise ValueError("`geth_version` for circleci not found / replaced.")
|
|
379
|
+
|
|
380
|
+
with open(file_path, "w") as file:
|
|
381
|
+
file.writelines(lines)
|
|
382
|
+
print(f"Updated geth_version to {new_version}")
|
|
383
|
+
|
|
384
|
+
|
|
364
385
|
if __name__ == "__main__":
|
|
365
|
-
|
|
366
|
-
|
|
386
|
+
geth_binary = os.environ.get("GETH_BINARY", None)
|
|
387
|
+
if not geth_binary:
|
|
388
|
+
raise ValueError("GETH_BINARY not set. Cannot generate geth fixture.")
|
|
389
|
+
|
|
390
|
+
geth_version = re.search(r"geth-v([\d.]+)/", geth_binary).group(1)
|
|
391
|
+
generate_go_ethereum_fixture(f"./tests/integration/geth-{geth_version}-fixture")
|
|
392
|
+
update_circleci_geth_version(geth_version)
|
|
@@ -88,6 +88,7 @@ from web3.exceptions import (
|
|
|
88
88
|
)
|
|
89
89
|
from web3.middleware import (
|
|
90
90
|
ExtraDataToPOAMiddleware,
|
|
91
|
+
SignAndSendRawMiddlewareBuilder,
|
|
91
92
|
)
|
|
92
93
|
from web3.types import (
|
|
93
94
|
ENS,
|
|
@@ -725,6 +726,26 @@ class AsyncEthModuleTest:
|
|
|
725
726
|
txn_hash = await async_w3.eth.send_raw_transaction(signed.raw_transaction)
|
|
726
727
|
assert txn_hash == HexBytes(signed.hash)
|
|
727
728
|
|
|
729
|
+
@pytest.mark.asyncio
|
|
730
|
+
async def test_async_sign_and_send_raw_middleware(
|
|
731
|
+
self, async_w3: "AsyncWeb3", keyfile_account_pkey: HexStr
|
|
732
|
+
) -> None:
|
|
733
|
+
keyfile_account = async_w3.eth.account.from_key(keyfile_account_pkey)
|
|
734
|
+
txn: TxParams = {
|
|
735
|
+
"from": keyfile_account.address,
|
|
736
|
+
"to": keyfile_account.address,
|
|
737
|
+
"value": Wei(0),
|
|
738
|
+
"gas": 21000,
|
|
739
|
+
}
|
|
740
|
+
async_w3.middleware_onion.add(
|
|
741
|
+
SignAndSendRawMiddlewareBuilder.build(keyfile_account), "signing"
|
|
742
|
+
)
|
|
743
|
+
txn_hash = await async_w3.eth.send_transaction(txn)
|
|
744
|
+
assert isinstance(txn_hash, HexBytes)
|
|
745
|
+
|
|
746
|
+
# clean up
|
|
747
|
+
async_w3.middleware_onion.remove("signing")
|
|
748
|
+
|
|
728
749
|
@pytest.mark.asyncio
|
|
729
750
|
async def test_GasPriceStrategyMiddleware(
|
|
730
751
|
self,
|
|
@@ -3716,6 +3737,25 @@ class EthModuleTest:
|
|
|
3716
3737
|
txn_hash = w3.eth.send_raw_transaction(signed.raw_transaction)
|
|
3717
3738
|
assert txn_hash == HexBytes(signed.hash)
|
|
3718
3739
|
|
|
3740
|
+
def test_sign_and_send_raw_middleware(
|
|
3741
|
+
self, w3: "Web3", keyfile_account_pkey: HexStr
|
|
3742
|
+
) -> None:
|
|
3743
|
+
keyfile_account = w3.eth.account.from_key(keyfile_account_pkey)
|
|
3744
|
+
txn: TxParams = {
|
|
3745
|
+
"from": keyfile_account.address,
|
|
3746
|
+
"to": keyfile_account.address,
|
|
3747
|
+
"value": Wei(0),
|
|
3748
|
+
"gas": 21000,
|
|
3749
|
+
}
|
|
3750
|
+
w3.middleware_onion.add(
|
|
3751
|
+
SignAndSendRawMiddlewareBuilder.build(keyfile_account), "signing"
|
|
3752
|
+
)
|
|
3753
|
+
txn_hash = w3.eth.send_transaction(txn)
|
|
3754
|
+
assert isinstance(txn_hash, HexBytes)
|
|
3755
|
+
|
|
3756
|
+
# cleanup
|
|
3757
|
+
w3.middleware_onion.remove("signing")
|
|
3758
|
+
|
|
3719
3759
|
def test_eth_call(self, w3: "Web3", math_contract: "Contract") -> None:
|
|
3720
3760
|
txn_params = math_contract._prepare_transaction(
|
|
3721
3761
|
abi_element_identifier="add",
|
|
@@ -26,6 +26,9 @@ GET_BLINDED_BLOCKS = "/eth/v1/beacon/blinded_blocks/{0}"
|
|
|
26
26
|
# rewards
|
|
27
27
|
GET_REWARDS = "/eth/v1/beacon/rewards/blocks/{0}"
|
|
28
28
|
|
|
29
|
+
# blobs
|
|
30
|
+
GET_BLOB_SIDECARS = "/eth/v1/beacon/blob_sidecars/{0}"
|
|
31
|
+
|
|
29
32
|
# light client
|
|
30
33
|
GET_LIGHT_CLIENT_BOOTSTRAP_STRUCTURE = "/eth/v1/beacon/light_client/bootstrap/{0}"
|
|
31
34
|
GET_LIGHT_CLIENT_UPDATES = "/eth/v1/beacon/light_client/updates"
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from typing import (
|
|
2
2
|
Any,
|
|
3
3
|
Dict,
|
|
4
|
+
List,
|
|
5
|
+
Optional,
|
|
4
6
|
)
|
|
5
7
|
|
|
6
8
|
from eth_typing import (
|
|
@@ -17,6 +19,7 @@ from web3.beacon.api_endpoints import (
|
|
|
17
19
|
GET_BEACON_HEADS,
|
|
18
20
|
GET_BEACON_STATE,
|
|
19
21
|
GET_BLINDED_BLOCKS,
|
|
22
|
+
GET_BLOB_SIDECARS,
|
|
20
23
|
GET_BLOCK,
|
|
21
24
|
GET_BLOCK_ATTESTATIONS,
|
|
22
25
|
GET_BLOCK_HEADER,
|
|
@@ -64,10 +67,12 @@ class AsyncBeacon:
|
|
|
64
67
|
self.request_timeout = request_timeout
|
|
65
68
|
self._request_session_manager = HTTPSessionManager()
|
|
66
69
|
|
|
67
|
-
async def _async_make_get_request(
|
|
70
|
+
async def _async_make_get_request(
|
|
71
|
+
self, endpoint_uri: str, params: Optional[Dict[str, str]] = None
|
|
72
|
+
) -> Dict[str, Any]:
|
|
68
73
|
uri = URI(self.base_url + endpoint_uri)
|
|
69
74
|
return await self._request_session_manager.async_json_make_get_request(
|
|
70
|
-
uri, timeout=self.request_timeout
|
|
75
|
+
uri, params=params, timeout=self.request_timeout
|
|
71
76
|
)
|
|
72
77
|
|
|
73
78
|
# [ BEACON endpoints ]
|
|
@@ -220,3 +225,14 @@ class AsyncBeacon:
|
|
|
220
225
|
|
|
221
226
|
async def get_syncing(self) -> Dict[str, Any]:
|
|
222
227
|
return await self._async_make_get_request(GET_SYNCING)
|
|
228
|
+
|
|
229
|
+
# [ BLOB endpoints ]
|
|
230
|
+
|
|
231
|
+
async def get_blob_sidecars(
|
|
232
|
+
self, block_id: str, indices: Optional[List[int]] = None
|
|
233
|
+
) -> Dict[str, Any]:
|
|
234
|
+
indices_param = {"indices": ",".join(map(str, indices))} if indices else None
|
|
235
|
+
return await self._async_make_get_request(
|
|
236
|
+
GET_BLOB_SIDECARS.format(block_id),
|
|
237
|
+
params=indices_param,
|
|
238
|
+
)
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from typing import (
|
|
2
2
|
Any,
|
|
3
3
|
Dict,
|
|
4
|
+
List,
|
|
5
|
+
Optional,
|
|
4
6
|
)
|
|
5
7
|
|
|
6
8
|
from eth_typing import (
|
|
@@ -17,6 +19,7 @@ from web3.beacon.api_endpoints import (
|
|
|
17
19
|
GET_BEACON_HEADS,
|
|
18
20
|
GET_BEACON_STATE,
|
|
19
21
|
GET_BLINDED_BLOCKS,
|
|
22
|
+
GET_BLOB_SIDECARS,
|
|
20
23
|
GET_BLOCK,
|
|
21
24
|
GET_BLOCK_ATTESTATIONS,
|
|
22
25
|
GET_BLOCK_HEADER,
|
|
@@ -62,10 +65,12 @@ class Beacon:
|
|
|
62
65
|
self.request_timeout = request_timeout
|
|
63
66
|
self._request_session_manager = HTTPSessionManager()
|
|
64
67
|
|
|
65
|
-
def _make_get_request(
|
|
68
|
+
def _make_get_request(
|
|
69
|
+
self, endpoint_url: str, params: Optional[Dict[str, str]] = None
|
|
70
|
+
) -> Dict[str, Any]:
|
|
66
71
|
uri = URI(self.base_url + endpoint_url)
|
|
67
72
|
return self._request_session_manager.json_make_get_request(
|
|
68
|
-
uri, timeout=self.request_timeout
|
|
73
|
+
uri, params=params, timeout=self.request_timeout
|
|
69
74
|
)
|
|
70
75
|
|
|
71
76
|
# [ BEACON endpoints ]
|
|
@@ -206,3 +211,14 @@ class Beacon:
|
|
|
206
211
|
|
|
207
212
|
def get_syncing(self) -> Dict[str, Any]:
|
|
208
213
|
return self._make_get_request(GET_SYNCING)
|
|
214
|
+
|
|
215
|
+
# [ BLOB endpoints ]
|
|
216
|
+
|
|
217
|
+
def get_blob_sidecars(
|
|
218
|
+
self, block_id: str, indices: Optional[List[int]] = None
|
|
219
|
+
) -> Dict[str, Any]:
|
|
220
|
+
indices_param = {"indices": ",".join(map(str, indices))} if indices else None
|
|
221
|
+
return self._make_get_request(
|
|
222
|
+
GET_BLOB_SIDECARS.format(block_id),
|
|
223
|
+
params=indices_param,
|
|
224
|
+
)
|
|
@@ -319,8 +319,8 @@ class AsyncContractFunction(BaseContractFunction):
|
|
|
319
319
|
state_override,
|
|
320
320
|
ccip_read_enabled,
|
|
321
321
|
self.decode_tuples,
|
|
322
|
-
*self.args,
|
|
323
|
-
**self.kwargs,
|
|
322
|
+
*self.args or (),
|
|
323
|
+
**self.kwargs or {},
|
|
324
324
|
)
|
|
325
325
|
|
|
326
326
|
async def transact(self, transaction: Optional[TxParams] = None) -> HexBytes:
|
|
@@ -332,8 +332,8 @@ class AsyncContractFunction(BaseContractFunction):
|
|
|
332
332
|
setup_transaction,
|
|
333
333
|
self.contract_abi,
|
|
334
334
|
self.abi,
|
|
335
|
-
*self.args,
|
|
336
|
-
**self.kwargs,
|
|
335
|
+
*self.args or (),
|
|
336
|
+
**self.kwargs or {},
|
|
337
337
|
)
|
|
338
338
|
|
|
339
339
|
async def estimate_gas(
|
|
@@ -352,8 +352,8 @@ class AsyncContractFunction(BaseContractFunction):
|
|
|
352
352
|
self.abi,
|
|
353
353
|
block_identifier,
|
|
354
354
|
state_override,
|
|
355
|
-
*self.args,
|
|
356
|
-
**self.kwargs,
|
|
355
|
+
*self.args or (),
|
|
356
|
+
**self.kwargs or {},
|
|
357
357
|
)
|
|
358
358
|
|
|
359
359
|
async def build_transaction(
|
|
@@ -367,8 +367,8 @@ class AsyncContractFunction(BaseContractFunction):
|
|
|
367
367
|
built_transaction,
|
|
368
368
|
self.contract_abi,
|
|
369
369
|
self.abi,
|
|
370
|
-
*self.args,
|
|
371
|
-
**self.kwargs,
|
|
370
|
+
*self.args or (),
|
|
371
|
+
**self.kwargs or {},
|
|
372
372
|
)
|
|
373
373
|
|
|
374
374
|
@staticmethod
|