web3 6.17.1__tar.gz → 6.18.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-6.17.1 → web3-6.18.0}/PKG-INFO +3 -3
- {web3-6.17.1 → web3-6.18.0}/setup.py +3 -3
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/decorators.py +22 -7
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/miner.py +8 -12
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/go_ethereum_personal_module.py +67 -44
- {web3-6.17.1 → web3-6.18.0}/web3/contract/base_contract.py +2 -2
- {web3-6.17.1 → web3-6.18.0}/web3/geth.py +48 -10
- {web3-6.17.1 → web3-6.18.0}/web3/method.py +11 -3
- {web3-6.17.1 → web3-6.18.0}/web3.egg-info/PKG-INFO +3 -3
- {web3-6.17.1 → web3-6.18.0}/web3.egg-info/requires.txt +2 -2
- {web3-6.17.1 → web3-6.18.0}/LICENSE +0 -0
- {web3-6.17.1 → web3-6.18.0}/MANIFEST.in +0 -0
- {web3-6.17.1 → web3-6.18.0}/README.md +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/_normalization.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/abis.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/async_ens.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/auto.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/base_ens.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/constants.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/contract_data.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/ens.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/exceptions.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/specs/nf.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/specs/normalization_spec.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ens/utils.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/backend.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/cache.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/chains.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/deployments.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/ipfs.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/protobuf/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/protobuf/ipfs_file_pb2.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/_utils/registry.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/ens/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/escrow/with_bytecode_v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/ipfs_file.proto +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/owned/output_v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/owned/with_contract_type_v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/contracts/Authority.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/contracts/IndexedOrderedSetLib.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/contracts/PackageDB.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/contracts/PackageRegistry.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/contracts/PackageRegistryInterface.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/contracts/ReleaseDB.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/contracts/ReleaseValidator.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/solc_input.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/solc_output.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/registry/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/safe-math-lib/v3-strict-no-deployments.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/simple-registry/contracts/Ownable.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/simple-registry/contracts/PackageRegistry.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/simple-registry/contracts/PackageRegistryInterface.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/simple-registry/solc_input.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/simple-registry/solc_output.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/simple-registry/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/standard-token/output_v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/standard-token/with_bytecode_v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/vyper_registry/0.1.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/vyper_registry/registry.vy +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/assets/vyper_registry/registry_with_delete.vy +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/backends/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/backends/base.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/backends/http.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/backends/ipfs.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/backends/registry.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/constants.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/dependencies.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/deployments.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/escrow/1.0.0-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/escrow/1.0.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/escrow/contracts/Escrow.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/escrow/contracts/SafeSendLib.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/escrow/v3-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/escrow/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/owned/1.0.0-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/owned/1.0.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/owned/contracts/Owned.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/owned/v3-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/owned/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/piper-coin/1.0.0-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/piper-coin/1.0.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/piper-coin/v3-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/piper-coin/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/safe-math-lib/1.0.0-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/safe-math-lib/1.0.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/safe-math-lib/contracts/SafeMathLib.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/safe-math-lib/v3-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/safe-math-lib/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/standard-token/1.0.0-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/standard-token/1.0.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/standard-token/contracts/AbstractToken.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/standard-token/contracts/StandardToken.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/standard-token/v3-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/standard-token/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/transferable/1.0.0-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/transferable/1.0.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/transferable/contracts/Transferable.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/transferable/v3-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/transferable/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet/1.0.0-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet/1.0.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet/contracts/Wallet.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet/v3-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet-with-send/1.0.0-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet-with-send/1.0.0.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet-with-send/contracts/WalletWithSend.sol +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet-with-send/v3-pretty.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/examples/wallet-with-send/v3.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/spec/package.spec.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/ethpm-spec/spec/v3.spec.json +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/exceptions.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/package.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/tools/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/tools/builder.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/tools/checker.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/tools/get_manifest.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/uri.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/validation/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/validation/manifest.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/validation/misc.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/validation/package.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/ethpm/validation/uri.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/pyproject.toml +0 -0
- {web3-6.17.1 → web3-6.18.0}/setup.cfg +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/abi.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/async_caching.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/async_transactions.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/blocks.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/caching.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/compat/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/compile_contracts.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/_custom_contract_data.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/address_reflector.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/arrays_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/bytes_contracts.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/constructor_contracts.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/contract_caller_tester.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/emitter_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/event_contracts.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/extended_resolver.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/fallback_function_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/math_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/offchain_lookup.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/offchain_resolver.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/panic_errors_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/payable_tester.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/receive_function_contracts.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/reflector_contracts.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/revert_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/simple_resolver.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/storage_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/string_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contract_sources/contract_data/tuple_contracts.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/contracts.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/datatypes.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/empty.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/encoding.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/ens.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/error_formatters_utils.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/events.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/fee_utils.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/filters.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/formatters.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/function_identifiers.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/http.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/hypothesis.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/math.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/method_formatters.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/eth_module.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/go_ethereum_admin_module.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/go_ethereum_txpool_module.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/module_testing_utils.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/net_module.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/persistent_connection_provider.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/module_testing/web3_module.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/normalizers.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/request.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/rpc_abi.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/threads.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/transactions.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/type_conversion.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/utility_methods.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/validation.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/_utils/windows.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/auto/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/auto/gethdev.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/beacon/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/beacon/api_endpoints.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/beacon/async_beacon.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/beacon/main.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/constants.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/contract/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/contract/async_contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/contract/contract.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/contract/utils.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/datastructures.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/eth/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/eth/async_eth.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/eth/base_eth.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/eth/eth.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/exceptions.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/gas_strategies/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/gas_strategies/rpc.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/gas_strategies/time_based.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/logs.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/main.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/manager.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/abi.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/async_cache.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/attrdict.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/buffered_gas_estimate.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/cache.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/exception_handling.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/exception_retry_request.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/filter.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/fixture.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/formatting.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/gas_price_strategy.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/geth_poa.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/names.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/normalize_request_parameters.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/pythonic.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/signing.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/simulate_unmined_transaction.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/stalecheck.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/middleware/validation.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/module.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/net.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/pm.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/async_base.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/async_rpc.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/auto.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/base.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/eth_tester/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/eth_tester/defaults.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/eth_tester/main.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/eth_tester/middleware.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/ipc.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/persistent.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/rpc.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/websocket/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/websocket/request_processor.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/websocket/websocket.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/websocket/websocket_connection.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/providers/websocket/websocket_v2.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/py.typed +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/scripts/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/scripts/release/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/scripts/release/test_package.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/testing.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/benchmark/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/benchmark/main.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/benchmark/node.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/benchmark/reporting.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/benchmark/utils.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/pytest_ethereum/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/pytest_ethereum/_utils.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/pytest_ethereum/deployer.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/pytest_ethereum/exceptions.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/pytest_ethereum/linker.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tools/pytest_ethereum/plugins.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/tracing.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/types.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/utils/__init__.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/utils/abi.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/utils/address.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/utils/async_exception_handling.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/utils/caching.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3/utils/exception_handling.py +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3.egg-info/SOURCES.txt +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3.egg-info/dependency_links.txt +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3.egg-info/entry_points.txt +0 -0
- {web3-6.17.1 → web3-6.18.0}/web3.egg-info/not-zip-safe +0 -0
- {web3-6.17.1 → web3-6.18.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: 6.
|
|
3
|
+
Version: 6.18.0
|
|
4
4
|
Summary: web3.py
|
|
5
5
|
Home-page: https://github.com/ethereum/web3.py
|
|
6
6
|
Author: The Ethereum Foundation
|
|
@@ -24,7 +24,7 @@ Requires-Dist: aiohttp>=3.7.4.post0
|
|
|
24
24
|
Requires-Dist: eth-abi>=4.0.0
|
|
25
25
|
Requires-Dist: eth-account<0.13,>=0.8.0
|
|
26
26
|
Requires-Dist: eth-hash[pycryptodome]>=0.5.1
|
|
27
|
-
Requires-Dist: eth-typing
|
|
27
|
+
Requires-Dist: eth-typing!=4.2.0,>=3.0.0
|
|
28
28
|
Requires-Dist: eth-utils>=2.1.0
|
|
29
29
|
Requires-Dist: hexbytes<0.4.0,>=0.1.0
|
|
30
30
|
Requires-Dist: jsonschema>=4.0.0
|
|
@@ -57,7 +57,7 @@ Requires-Dist: hypothesis>=3.31.2; extra == "dev"
|
|
|
57
57
|
Requires-Dist: importlib-metadata<5.0; python_version < "3.8" and extra == "dev"
|
|
58
58
|
Requires-Dist: pre-commit>=2.21.0; extra == "dev"
|
|
59
59
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
60
|
-
Requires-Dist: pytest-asyncio<0.23,>=0.
|
|
60
|
+
Requires-Dist: pytest-asyncio<0.23,>=0.21.2; extra == "dev"
|
|
61
61
|
Requires-Dist: pytest-mock>=1.10; extra == "dev"
|
|
62
62
|
Requires-Dist: pytest-watch>=4.2; extra == "dev"
|
|
63
63
|
Requires-Dist: pytest-xdist>=1.29; extra == "dev"
|
|
@@ -22,7 +22,7 @@ extras_require = {
|
|
|
22
22
|
"importlib-metadata<5.0;python_version<'3.8'",
|
|
23
23
|
"pre-commit>=2.21.0",
|
|
24
24
|
"pytest>=7.0.0",
|
|
25
|
-
"pytest-asyncio>=0.
|
|
25
|
+
"pytest-asyncio>=0.21.2,<0.23",
|
|
26
26
|
"pytest-mock>=1.10",
|
|
27
27
|
"pytest-watch>=4.2",
|
|
28
28
|
"pytest-xdist>=1.29",
|
|
@@ -51,7 +51,7 @@ with open("./README.md") as readme:
|
|
|
51
51
|
setup(
|
|
52
52
|
name="web3",
|
|
53
53
|
# *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
|
|
54
|
-
version="6.
|
|
54
|
+
version="6.18.0",
|
|
55
55
|
description="""web3.py""",
|
|
56
56
|
long_description_content_type="text/markdown",
|
|
57
57
|
long_description=long_description,
|
|
@@ -64,7 +64,7 @@ setup(
|
|
|
64
64
|
"eth-abi>=4.0.0",
|
|
65
65
|
"eth-account>=0.8.0,<0.13",
|
|
66
66
|
"eth-hash[pycryptodome]>=0.5.1",
|
|
67
|
-
"eth-typing>=3.0.0
|
|
67
|
+
"eth-typing>=3.0.0,!=4.2.0",
|
|
68
68
|
"eth-utils>=2.1.0",
|
|
69
69
|
"hexbytes>=0.1.0,<0.4.0",
|
|
70
70
|
"jsonschema>=4.0.0",
|
|
@@ -35,22 +35,37 @@ def reject_recursive_repeats(to_wrap: Callable[..., Any]) -> Callable[..., Any]:
|
|
|
35
35
|
return wrapped
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
def
|
|
38
|
+
def deprecate_method(
|
|
39
|
+
replacement_method: str = None, deprecation_msg: str = None
|
|
40
|
+
) -> Callable[..., Any]:
|
|
39
41
|
"""
|
|
40
|
-
Decorate a deprecated function
|
|
42
|
+
Decorate a deprecated function with info on its replacement method OR a clarifying
|
|
43
|
+
reason for the deprecation.
|
|
41
44
|
|
|
42
|
-
@
|
|
43
|
-
def
|
|
45
|
+
@deprecate_method("to_bytes()")
|
|
46
|
+
def to_ascii(arg):
|
|
47
|
+
...
|
|
48
|
+
|
|
49
|
+
@deprecate_method(deprecation_msg=(
|
|
50
|
+
"This method is no longer supported and will be removed in the next release."
|
|
51
|
+
))
|
|
52
|
+
def some_method(arg):
|
|
44
53
|
...
|
|
45
54
|
"""
|
|
55
|
+
if replacement_method is None and deprecation_msg is None:
|
|
56
|
+
raise ValueError(
|
|
57
|
+
"Must provide either `replacement_method` or `deprecation_msg`"
|
|
58
|
+
)
|
|
46
59
|
|
|
47
60
|
def decorator(to_wrap: TFunc) -> TFunc:
|
|
48
61
|
@functools.wraps(to_wrap)
|
|
49
62
|
def wrapper(*args: Any, **kwargs: Any) -> Callable[..., Any]:
|
|
50
|
-
|
|
51
|
-
f"{to_wrap.__name__} is deprecated in favor of {
|
|
52
|
-
|
|
63
|
+
msg = (
|
|
64
|
+
f"{to_wrap.__name__} is deprecated in favor of {replacement_method}"
|
|
65
|
+
if replacement_method is not None
|
|
66
|
+
else deprecation_msg
|
|
53
67
|
)
|
|
68
|
+
warnings.warn(msg, category=DeprecationWarning)
|
|
54
69
|
return to_wrap(*args, **kwargs)
|
|
55
70
|
|
|
56
71
|
return cast(TFunc, wrapper)
|
|
@@ -28,18 +28,14 @@ _make_dag: Method[Callable[[BlockNumber], bool]] = Method(
|
|
|
28
28
|
mungers=[default_root_munger],
|
|
29
29
|
)
|
|
30
30
|
|
|
31
|
-
make_dag = DeprecatedMethod(
|
|
32
|
-
_make_dag, "make_dag", msg="All mining methods have been deprecated"
|
|
33
|
-
)
|
|
31
|
+
make_dag = DeprecatedMethod(_make_dag, msg="All mining methods have been deprecated")
|
|
34
32
|
|
|
35
33
|
_set_extra: Method[Callable[[str], bool]] = Method(
|
|
36
34
|
RPC.miner_setExtra,
|
|
37
35
|
mungers=[default_root_munger],
|
|
38
36
|
)
|
|
39
37
|
|
|
40
|
-
set_extra = DeprecatedMethod(
|
|
41
|
-
_set_extra, "set_extra", msg="All mining methods have been deprecated"
|
|
42
|
-
)
|
|
38
|
+
set_extra = DeprecatedMethod(_set_extra, msg="All mining methods have been deprecated")
|
|
43
39
|
|
|
44
40
|
_set_etherbase: Method[Callable[[ChecksumAddress], bool]] = Method(
|
|
45
41
|
RPC.miner_setEtherbase,
|
|
@@ -47,7 +43,7 @@ _set_etherbase: Method[Callable[[ChecksumAddress], bool]] = Method(
|
|
|
47
43
|
)
|
|
48
44
|
|
|
49
45
|
set_etherbase = DeprecatedMethod(
|
|
50
|
-
_set_etherbase,
|
|
46
|
+
_set_etherbase, msg="All mining methods have been deprecated"
|
|
51
47
|
)
|
|
52
48
|
|
|
53
49
|
_set_gas_price: Method[Callable[[Wei], bool]] = Method(
|
|
@@ -56,7 +52,7 @@ _set_gas_price: Method[Callable[[Wei], bool]] = Method(
|
|
|
56
52
|
)
|
|
57
53
|
|
|
58
54
|
set_gas_price = DeprecatedMethod(
|
|
59
|
-
_set_gas_price,
|
|
55
|
+
_set_gas_price, msg="All mining methods have been deprecated"
|
|
60
56
|
)
|
|
61
57
|
|
|
62
58
|
_start: Method[Callable[[int], bool]] = Method(
|
|
@@ -64,14 +60,14 @@ _start: Method[Callable[[int], bool]] = Method(
|
|
|
64
60
|
mungers=[default_root_munger],
|
|
65
61
|
)
|
|
66
62
|
|
|
67
|
-
start = DeprecatedMethod(_start,
|
|
63
|
+
start = DeprecatedMethod(_start, msg="All mining methods have been deprecated")
|
|
68
64
|
|
|
69
65
|
_stop: Method[Callable[[], bool]] = Method(
|
|
70
66
|
RPC.miner_stop,
|
|
71
67
|
is_property=True,
|
|
72
68
|
)
|
|
73
69
|
|
|
74
|
-
stop = DeprecatedMethod(_stop,
|
|
70
|
+
stop = DeprecatedMethod(_stop, msg="All mining methods have been deprecated")
|
|
75
71
|
|
|
76
72
|
_start_auto_dag: Method[Callable[[], bool]] = Method(
|
|
77
73
|
RPC.miner_startAutoDag,
|
|
@@ -79,7 +75,7 @@ _start_auto_dag: Method[Callable[[], bool]] = Method(
|
|
|
79
75
|
)
|
|
80
76
|
|
|
81
77
|
start_auto_dag = DeprecatedMethod(
|
|
82
|
-
_start_auto_dag,
|
|
78
|
+
_start_auto_dag, msg="All mining methods have been deprecated"
|
|
83
79
|
)
|
|
84
80
|
|
|
85
81
|
_stop_auto_dag: Method[Callable[[], bool]] = Method(
|
|
@@ -88,5 +84,5 @@ _stop_auto_dag: Method[Callable[[], bool]] = Method(
|
|
|
88
84
|
)
|
|
89
85
|
|
|
90
86
|
stop_auto_dag = DeprecatedMethod(
|
|
91
|
-
_stop_auto_dag,
|
|
87
|
+
_stop_auto_dag, msg="All mining methods have been deprecated"
|
|
92
88
|
)
|
|
@@ -55,17 +55,20 @@ ACCOUNT_FOR_UNLOCK = "0x12efDc31B1a8FA1A1e756DFD8A1601055C971E13"
|
|
|
55
55
|
|
|
56
56
|
class GoEthereumPersonalModuleTest:
|
|
57
57
|
def test_personal_import_raw_key(self, w3: "Web3") -> None:
|
|
58
|
-
|
|
58
|
+
with pytest.warns(DeprecationWarning):
|
|
59
|
+
actual = w3.geth.personal.import_raw_key(PRIVATE_KEY_HEX, PASSWORD)
|
|
59
60
|
assert actual == ADDRESS
|
|
60
61
|
|
|
61
62
|
def test_personal_list_accounts(self, w3: "Web3") -> None:
|
|
62
|
-
|
|
63
|
+
with pytest.warns(DeprecationWarning):
|
|
64
|
+
accounts = w3.geth.personal.list_accounts()
|
|
63
65
|
assert is_list_like(accounts)
|
|
64
66
|
assert len(accounts) > 0
|
|
65
67
|
assert all((is_checksum_address(item) for item in accounts))
|
|
66
68
|
|
|
67
69
|
def test_personal_list_wallets(self, w3: "Web3") -> None:
|
|
68
|
-
|
|
70
|
+
with pytest.warns(DeprecationWarning):
|
|
71
|
+
wallets = w3.geth.personal.list_wallets()
|
|
69
72
|
assert is_list_like(wallets)
|
|
70
73
|
assert len(wallets) > 0
|
|
71
74
|
assert is_checksum_address(wallets[0]["accounts"][0]["address"])
|
|
@@ -76,8 +79,8 @@ class GoEthereumPersonalModuleTest:
|
|
|
76
79
|
def test_personal_lock_account(
|
|
77
80
|
self, w3: "Web3", unlockable_account_dual_type: ChecksumAddress
|
|
78
81
|
) -> None:
|
|
79
|
-
|
|
80
|
-
|
|
82
|
+
with pytest.warns(DeprecationWarning):
|
|
83
|
+
w3.geth.personal.lock_account(unlockable_account_dual_type)
|
|
81
84
|
|
|
82
85
|
def test_personal_unlock_account_success(
|
|
83
86
|
self,
|
|
@@ -85,9 +88,10 @@ class GoEthereumPersonalModuleTest:
|
|
|
85
88
|
unlockable_account_dual_type: ChecksumAddress,
|
|
86
89
|
unlockable_account_pw: str,
|
|
87
90
|
) -> None:
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
+
with pytest.warns(DeprecationWarning):
|
|
92
|
+
result = w3.geth.personal.unlock_account(
|
|
93
|
+
unlockable_account_dual_type, unlockable_account_pw
|
|
94
|
+
)
|
|
91
95
|
assert result is True
|
|
92
96
|
|
|
93
97
|
def test_personal_unlock_account_failure(
|
|
@@ -99,7 +103,8 @@ class GoEthereumPersonalModuleTest:
|
|
|
99
103
|
)
|
|
100
104
|
|
|
101
105
|
def test_personal_new_account(self, w3: "Web3") -> None:
|
|
102
|
-
|
|
106
|
+
with pytest.warns(DeprecationWarning):
|
|
107
|
+
new_account = w3.geth.personal.new_account(PASSWORD)
|
|
103
108
|
assert is_checksum_address(new_account)
|
|
104
109
|
|
|
105
110
|
def test_personal_send_transaction(
|
|
@@ -118,7 +123,10 @@ class GoEthereumPersonalModuleTest:
|
|
|
118
123
|
"value": Wei(1),
|
|
119
124
|
"gasPrice": w3.to_wei(1, "gwei"),
|
|
120
125
|
}
|
|
121
|
-
|
|
126
|
+
with pytest.warns(DeprecationWarning):
|
|
127
|
+
txn_hash = w3.geth.personal.send_transaction(
|
|
128
|
+
txn_params, unlockable_account_pw
|
|
129
|
+
)
|
|
122
130
|
assert txn_hash
|
|
123
131
|
transaction = w3.eth.get_transaction(txn_hash)
|
|
124
132
|
|
|
@@ -139,10 +147,13 @@ class GoEthereumPersonalModuleTest:
|
|
|
139
147
|
unlockable_account_pw: str,
|
|
140
148
|
) -> None:
|
|
141
149
|
message = "test-web3-geth-personal-sign"
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
150
|
+
with pytest.warns(DeprecationWarning):
|
|
151
|
+
signature = w3.geth.personal.sign(
|
|
152
|
+
message, unlockable_account_dual_type, unlockable_account_pw
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
with pytest.warns(DeprecationWarning):
|
|
156
|
+
signer = w3.geth.personal.ec_recover(message, signature)
|
|
146
157
|
assert is_same_address(signer, unlockable_account_dual_type)
|
|
147
158
|
|
|
148
159
|
@pytest.mark.xfail(
|
|
@@ -193,13 +204,14 @@ class GoEthereumPersonalModuleTest:
|
|
|
193
204
|
}
|
|
194
205
|
}
|
|
195
206
|
"""
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
207
|
+
with pytest.warns(DeprecationWarning):
|
|
208
|
+
signature = HexBytes(
|
|
209
|
+
w3.geth.personal.sign_typed_data(
|
|
210
|
+
json.loads(typed_message),
|
|
211
|
+
unlockable_account_dual_type,
|
|
212
|
+
unlockable_account_pw,
|
|
213
|
+
)
|
|
201
214
|
)
|
|
202
|
-
)
|
|
203
215
|
|
|
204
216
|
expected_signature = HexBytes(
|
|
205
217
|
"0xc8b56aaeefd10ab4005c2455daf28d9082af661ac347cd"
|
|
@@ -219,33 +231,38 @@ class GoEthereumAsyncPersonalModuleTest:
|
|
|
219
231
|
unlockable_account_pw: str,
|
|
220
232
|
) -> None:
|
|
221
233
|
message = "This is a test"
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
234
|
+
with pytest.warns(DeprecationWarning):
|
|
235
|
+
signature = await async_w3.geth.personal.sign(
|
|
236
|
+
message, async_unlockable_account_dual_type, unlockable_account_pw
|
|
237
|
+
)
|
|
225
238
|
address = await async_w3.geth.personal.ec_recover(message, signature)
|
|
226
239
|
assert is_same_address(async_unlockable_account_dual_type, address)
|
|
227
240
|
|
|
228
241
|
@pytest.mark.asyncio
|
|
229
242
|
async def test_async_import_key(self, async_w3: "AsyncWeb3") -> None:
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
243
|
+
with pytest.warns(DeprecationWarning):
|
|
244
|
+
address = await async_w3.geth.personal.import_raw_key(
|
|
245
|
+
THIRD_PRIVATE_KEY_HEX, "Testing"
|
|
246
|
+
)
|
|
233
247
|
assert address is not None
|
|
234
248
|
|
|
235
249
|
@pytest.mark.asyncio
|
|
236
250
|
async def test_async_list_accounts(self, async_w3: "AsyncWeb3") -> None:
|
|
237
|
-
|
|
251
|
+
with pytest.warns(DeprecationWarning):
|
|
252
|
+
accounts = await async_w3.geth.personal.list_accounts()
|
|
238
253
|
assert len(accounts) > 0
|
|
239
254
|
|
|
240
255
|
@pytest.mark.asyncio
|
|
241
256
|
async def test_async_list_wallets(self, async_w3: "AsyncWeb3") -> None:
|
|
242
|
-
|
|
257
|
+
with pytest.warns(DeprecationWarning):
|
|
258
|
+
wallets = await async_w3.geth.personal.list_wallets()
|
|
243
259
|
assert isinstance(wallets[0], AttributeDict)
|
|
244
260
|
|
|
245
261
|
@pytest.mark.asyncio
|
|
246
262
|
async def test_async_new_account(self, async_w3: "AsyncWeb3") -> None:
|
|
247
263
|
passphrase = "Create New Account"
|
|
248
|
-
|
|
264
|
+
with pytest.warns(DeprecationWarning):
|
|
265
|
+
account = await async_w3.geth.personal.new_account(passphrase)
|
|
249
266
|
assert is_checksum_address(account)
|
|
250
267
|
|
|
251
268
|
@pytest.mark.asyncio
|
|
@@ -255,13 +272,16 @@ class GoEthereumAsyncPersonalModuleTest:
|
|
|
255
272
|
async_unlockable_account_dual_type: ChecksumAddress,
|
|
256
273
|
unlockable_account_pw: str,
|
|
257
274
|
) -> None:
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
275
|
+
with pytest.warns(DeprecationWarning):
|
|
276
|
+
unlocked = await async_w3.geth.personal.unlock_account(
|
|
277
|
+
async_unlockable_account_dual_type, unlockable_account_pw
|
|
278
|
+
)
|
|
261
279
|
assert unlocked is True
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
280
|
+
|
|
281
|
+
with pytest.warns(DeprecationWarning):
|
|
282
|
+
locked = await async_w3.geth.personal.lock_account(
|
|
283
|
+
async_unlockable_account_dual_type
|
|
284
|
+
)
|
|
265
285
|
assert locked is True
|
|
266
286
|
|
|
267
287
|
@pytest.mark.asyncio
|
|
@@ -275,9 +295,10 @@ class GoEthereumAsyncPersonalModuleTest:
|
|
|
275
295
|
tx_params["to"] = async_unlockable_account_dual_type
|
|
276
296
|
tx_params["from"] = async_unlockable_account_dual_type
|
|
277
297
|
tx_params["value"] = Wei(123)
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
298
|
+
with pytest.warns(DeprecationWarning):
|
|
299
|
+
response = await async_w3.geth.personal.send_transaction(
|
|
300
|
+
tx_params, unlockable_account_pw
|
|
301
|
+
)
|
|
281
302
|
assert response is not None
|
|
282
303
|
|
|
283
304
|
@pytest.mark.xfail(
|
|
@@ -291,10 +312,12 @@ class GoEthereumAsyncPersonalModuleTest:
|
|
|
291
312
|
unlockable_account_pw: str,
|
|
292
313
|
) -> None:
|
|
293
314
|
message = {"message": "This is a test"}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
315
|
+
with pytest.warns(DeprecationWarning):
|
|
316
|
+
signature = await async_w3.geth.personal.sign_typed_data(
|
|
317
|
+
message, async_unlockable_account_dual_type, unlockable_account_pw
|
|
318
|
+
)
|
|
319
|
+
with pytest.warns(DeprecationWarning):
|
|
320
|
+
address = await async_w3.geth.personal.ec_recover(
|
|
321
|
+
json.dumps(message), signature
|
|
322
|
+
)
|
|
300
323
|
assert is_same_address(async_unlockable_account_dual_type, address)
|
|
@@ -57,7 +57,7 @@ from web3._utils.datatypes import (
|
|
|
57
57
|
PropertyCheckingFactory,
|
|
58
58
|
)
|
|
59
59
|
from web3._utils.decorators import (
|
|
60
|
-
|
|
60
|
+
deprecate_method,
|
|
61
61
|
)
|
|
62
62
|
from web3._utils.empty import (
|
|
63
63
|
empty,
|
|
@@ -727,7 +727,7 @@ class BaseContract:
|
|
|
727
727
|
# Public API
|
|
728
728
|
#
|
|
729
729
|
@combomethod
|
|
730
|
-
@
|
|
730
|
+
@deprecate_method("encode_abi()")
|
|
731
731
|
def encodeABI(
|
|
732
732
|
cls,
|
|
733
733
|
fn_name: str,
|
|
@@ -21,6 +21,9 @@ from hexbytes.main import (
|
|
|
21
21
|
from web3._utils.compat import (
|
|
22
22
|
Protocol,
|
|
23
23
|
)
|
|
24
|
+
from web3._utils.decorators import (
|
|
25
|
+
deprecate_method,
|
|
26
|
+
)
|
|
24
27
|
from web3._utils.miner import (
|
|
25
28
|
make_dag,
|
|
26
29
|
set_etherbase,
|
|
@@ -35,6 +38,7 @@ from web3._utils.rpc_abi import (
|
|
|
35
38
|
RPC,
|
|
36
39
|
)
|
|
37
40
|
from web3.method import (
|
|
41
|
+
DeprecatedMethod,
|
|
38
42
|
Method,
|
|
39
43
|
default_root_munger,
|
|
40
44
|
)
|
|
@@ -63,6 +67,12 @@ class UnlockAccountWrapper(Protocol):
|
|
|
63
67
|
pass
|
|
64
68
|
|
|
65
69
|
|
|
70
|
+
GETH_PERSONAL_DEPRECATION_MSG = (
|
|
71
|
+
"Geth now uses `clef` for account and key management. This method will be removed "
|
|
72
|
+
"in web3.py `v7`."
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
|
|
66
76
|
class GethPersonal(Module):
|
|
67
77
|
"""
|
|
68
78
|
https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-personal
|
|
@@ -70,57 +80,75 @@ class GethPersonal(Module):
|
|
|
70
80
|
|
|
71
81
|
is_async = False
|
|
72
82
|
|
|
73
|
-
|
|
83
|
+
_ec_recover: Method[Callable[[str, HexStr], ChecksumAddress]] = Method(
|
|
74
84
|
RPC.personal_ecRecover,
|
|
75
85
|
mungers=[default_root_munger],
|
|
76
86
|
)
|
|
87
|
+
ec_recover = DeprecatedMethod(_ec_recover, msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
77
88
|
|
|
78
|
-
|
|
89
|
+
_import_raw_key: Method[Callable[[str, str], ChecksumAddress]] = Method(
|
|
79
90
|
RPC.personal_importRawKey,
|
|
80
91
|
mungers=[default_root_munger],
|
|
81
92
|
)
|
|
93
|
+
import_raw_key = DeprecatedMethod(
|
|
94
|
+
_import_raw_key, msg=GETH_PERSONAL_DEPRECATION_MSG
|
|
95
|
+
)
|
|
82
96
|
|
|
83
|
-
|
|
97
|
+
_list_accounts: Method[Callable[[], List[ChecksumAddress]]] = Method(
|
|
84
98
|
RPC.personal_listAccounts,
|
|
85
99
|
is_property=True,
|
|
86
100
|
)
|
|
101
|
+
list_accounts = DeprecatedMethod(_list_accounts, msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
87
102
|
|
|
88
|
-
|
|
103
|
+
_list_wallets: Method[Callable[[], List[GethWallet]]] = Method(
|
|
89
104
|
RPC.personal_listWallets,
|
|
90
105
|
is_property=True,
|
|
91
106
|
)
|
|
107
|
+
list_wallets = DeprecatedMethod(_list_wallets, msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
92
108
|
|
|
93
|
-
|
|
109
|
+
_send_transaction: Method[Callable[[TxParams, str], HexBytes]] = Method(
|
|
94
110
|
RPC.personal_sendTransaction,
|
|
95
111
|
mungers=[default_root_munger],
|
|
96
112
|
)
|
|
113
|
+
send_transaction = DeprecatedMethod(
|
|
114
|
+
_send_transaction, msg=GETH_PERSONAL_DEPRECATION_MSG
|
|
115
|
+
)
|
|
97
116
|
|
|
98
|
-
|
|
117
|
+
_sign: Method[Callable[[str, ChecksumAddress, Optional[str]], HexStr]] = Method(
|
|
99
118
|
RPC.personal_sign,
|
|
100
119
|
mungers=[default_root_munger],
|
|
101
120
|
)
|
|
121
|
+
sign = DeprecatedMethod(_sign, msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
102
122
|
|
|
103
|
-
|
|
123
|
+
_sign_typed_data: Method[
|
|
104
124
|
Callable[[Dict[str, Any], ChecksumAddress, str], HexStr]
|
|
105
125
|
] = Method(
|
|
106
126
|
RPC.personal_signTypedData,
|
|
107
127
|
mungers=[default_root_munger],
|
|
108
128
|
)
|
|
129
|
+
sign_typed_data = DeprecatedMethod(
|
|
130
|
+
_sign_typed_data, msg=GETH_PERSONAL_DEPRECATION_MSG
|
|
131
|
+
)
|
|
109
132
|
|
|
110
|
-
|
|
133
|
+
_new_account: Method[Callable[[str], ChecksumAddress]] = Method(
|
|
111
134
|
RPC.personal_newAccount,
|
|
112
135
|
mungers=[default_root_munger],
|
|
113
136
|
)
|
|
137
|
+
new_account = DeprecatedMethod(_new_account, msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
114
138
|
|
|
115
|
-
|
|
139
|
+
_lock_account: Method[Callable[[ChecksumAddress], bool]] = Method(
|
|
116
140
|
RPC.personal_lockAccount,
|
|
117
141
|
mungers=[default_root_munger],
|
|
118
142
|
)
|
|
143
|
+
lock_account = DeprecatedMethod(_lock_account, msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
119
144
|
|
|
120
|
-
|
|
145
|
+
_unlock_account: Method[UnlockAccountWrapper] = Method(
|
|
121
146
|
RPC.personal_unlockAccount,
|
|
122
147
|
mungers=[default_root_munger],
|
|
123
148
|
)
|
|
149
|
+
unlock_account = DeprecatedMethod(
|
|
150
|
+
_unlock_account, msg=GETH_PERSONAL_DEPRECATION_MSG
|
|
151
|
+
)
|
|
124
152
|
|
|
125
153
|
|
|
126
154
|
class GethTxPool(Module):
|
|
@@ -373,6 +401,7 @@ class AsyncGethPersonal(Module):
|
|
|
373
401
|
mungers=[default_root_munger],
|
|
374
402
|
)
|
|
375
403
|
|
|
404
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
376
405
|
async def ec_recover(self, message: str, signature: HexStr) -> ChecksumAddress:
|
|
377
406
|
return await self._ec_recover(message, signature)
|
|
378
407
|
|
|
@@ -383,6 +412,7 @@ class AsyncGethPersonal(Module):
|
|
|
383
412
|
mungers=[default_root_munger],
|
|
384
413
|
)
|
|
385
414
|
|
|
415
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
386
416
|
async def import_raw_key(
|
|
387
417
|
self, private_key: str, passphrase: str
|
|
388
418
|
) -> ChecksumAddress:
|
|
@@ -400,9 +430,11 @@ class AsyncGethPersonal(Module):
|
|
|
400
430
|
is_property=True,
|
|
401
431
|
)
|
|
402
432
|
|
|
433
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
403
434
|
async def list_accounts(self) -> List[ChecksumAddress]:
|
|
404
435
|
return await self._list_accounts()
|
|
405
436
|
|
|
437
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
406
438
|
async def list_wallets(self) -> List[GethWallet]:
|
|
407
439
|
return await self._list_wallets()
|
|
408
440
|
|
|
@@ -413,6 +445,7 @@ class AsyncGethPersonal(Module):
|
|
|
413
445
|
mungers=[default_root_munger],
|
|
414
446
|
)
|
|
415
447
|
|
|
448
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
416
449
|
async def send_transaction(
|
|
417
450
|
self, transaction: TxParams, passphrase: str
|
|
418
451
|
) -> HexBytes:
|
|
@@ -434,11 +467,13 @@ class AsyncGethPersonal(Module):
|
|
|
434
467
|
mungers=[default_root_munger],
|
|
435
468
|
)
|
|
436
469
|
|
|
470
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
437
471
|
async def sign(
|
|
438
472
|
self, message: str, account: ChecksumAddress, passphrase: str
|
|
439
473
|
) -> HexStr:
|
|
440
474
|
return await self._sign(message, account, passphrase)
|
|
441
475
|
|
|
476
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
442
477
|
async def sign_typed_data(
|
|
443
478
|
self, message: Dict[str, Any], account: ChecksumAddress, passphrase: str
|
|
444
479
|
) -> HexStr:
|
|
@@ -463,12 +498,15 @@ class AsyncGethPersonal(Module):
|
|
|
463
498
|
mungers=[default_root_munger],
|
|
464
499
|
)
|
|
465
500
|
|
|
501
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
466
502
|
async def new_account(self, passphrase: str) -> ChecksumAddress:
|
|
467
503
|
return await self._new_account(passphrase)
|
|
468
504
|
|
|
505
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
469
506
|
async def lock_account(self, account: ChecksumAddress) -> bool:
|
|
470
507
|
return await self._lock_account(account)
|
|
471
508
|
|
|
509
|
+
@deprecate_method(deprecation_msg=GETH_PERSONAL_DEPRECATION_MSG)
|
|
472
510
|
async def unlock_account(
|
|
473
511
|
self, account: ChecksumAddress, passphrase: str, duration: Optional[int] = None
|
|
474
512
|
) -> bool:
|
|
@@ -220,7 +220,7 @@ class DeprecatedMethod:
|
|
|
220
220
|
def __init__(
|
|
221
221
|
self,
|
|
222
222
|
method: Method[Callable[..., Any]],
|
|
223
|
-
old_name: str,
|
|
223
|
+
old_name: Optional[str] = None,
|
|
224
224
|
new_name: Optional[str] = None,
|
|
225
225
|
msg: Optional[str] = None,
|
|
226
226
|
) -> None:
|
|
@@ -232,9 +232,17 @@ class DeprecatedMethod:
|
|
|
232
232
|
def __get__(
|
|
233
233
|
self, obj: Optional["Module"] = None, obj_type: Optional[Type["Module"]] = None
|
|
234
234
|
) -> Any:
|
|
235
|
-
|
|
236
|
-
|
|
235
|
+
if self.old_name is not None and self.new_name is not None:
|
|
236
|
+
if self.msg is not None:
|
|
237
|
+
raise ValueError(
|
|
238
|
+
"Cannot specify `old_name` and `new_name` along with `msg`"
|
|
239
|
+
)
|
|
240
|
+
|
|
241
|
+
message = f"{self.old_name} is deprecated in favor of {self.new_name}"
|
|
242
|
+
elif self.msg is not None:
|
|
237
243
|
message = self.msg
|
|
244
|
+
else:
|
|
245
|
+
raise ValueError("Must provide either `old_name` and `new_name` or `msg`")
|
|
238
246
|
|
|
239
247
|
warnings.warn(
|
|
240
248
|
message,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: web3
|
|
3
|
-
Version: 6.
|
|
3
|
+
Version: 6.18.0
|
|
4
4
|
Summary: web3.py
|
|
5
5
|
Home-page: https://github.com/ethereum/web3.py
|
|
6
6
|
Author: The Ethereum Foundation
|
|
@@ -24,7 +24,7 @@ Requires-Dist: aiohttp>=3.7.4.post0
|
|
|
24
24
|
Requires-Dist: eth-abi>=4.0.0
|
|
25
25
|
Requires-Dist: eth-account<0.13,>=0.8.0
|
|
26
26
|
Requires-Dist: eth-hash[pycryptodome]>=0.5.1
|
|
27
|
-
Requires-Dist: eth-typing
|
|
27
|
+
Requires-Dist: eth-typing!=4.2.0,>=3.0.0
|
|
28
28
|
Requires-Dist: eth-utils>=2.1.0
|
|
29
29
|
Requires-Dist: hexbytes<0.4.0,>=0.1.0
|
|
30
30
|
Requires-Dist: jsonschema>=4.0.0
|
|
@@ -57,7 +57,7 @@ Requires-Dist: hypothesis>=3.31.2; extra == "dev"
|
|
|
57
57
|
Requires-Dist: importlib-metadata<5.0; python_version < "3.8" and extra == "dev"
|
|
58
58
|
Requires-Dist: pre-commit>=2.21.0; extra == "dev"
|
|
59
59
|
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
60
|
-
Requires-Dist: pytest-asyncio<0.23,>=0.
|
|
60
|
+
Requires-Dist: pytest-asyncio<0.23,>=0.21.2; extra == "dev"
|
|
61
61
|
Requires-Dist: pytest-mock>=1.10; extra == "dev"
|
|
62
62
|
Requires-Dist: pytest-watch>=4.2; extra == "dev"
|
|
63
63
|
Requires-Dist: pytest-xdist>=1.29; extra == "dev"
|
|
@@ -2,7 +2,7 @@ aiohttp>=3.7.4.post0
|
|
|
2
2
|
eth-abi>=4.0.0
|
|
3
3
|
eth-account<0.13,>=0.8.0
|
|
4
4
|
eth-hash[pycryptodome]>=0.5.1
|
|
5
|
-
eth-typing
|
|
5
|
+
eth-typing!=4.2.0,>=3.0.0
|
|
6
6
|
eth-utils>=2.1.0
|
|
7
7
|
hexbytes<0.4.0,>=0.1.0
|
|
8
8
|
jsonschema>=4.0.0
|
|
@@ -27,7 +27,7 @@ flaky>=3.7.0
|
|
|
27
27
|
hypothesis>=3.31.2
|
|
28
28
|
pre-commit>=2.21.0
|
|
29
29
|
pytest>=7.0.0
|
|
30
|
-
pytest-asyncio<0.23,>=0.
|
|
30
|
+
pytest-asyncio<0.23,>=0.21.2
|
|
31
31
|
pytest-mock>=1.10
|
|
32
32
|
pytest-watch>=4.2
|
|
33
33
|
pytest-xdist>=1.29
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|