web3 7.10.0__py3-none-any.whl → 7.11.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. ens/exceptions.py +1 -1
  2. web3/_utils/batching.py +42 -1
  3. web3/_utils/contract_sources/contract_data/ambiguous_function_contract.py +3 -3
  4. web3/_utils/contract_sources/contract_data/arrays_contract.py +3 -3
  5. web3/_utils/contract_sources/contract_data/bytes_contracts.py +5 -5
  6. web3/_utils/contract_sources/contract_data/constructor_contracts.py +7 -7
  7. web3/_utils/contract_sources/contract_data/contract_caller_tester.py +3 -3
  8. web3/_utils/contract_sources/contract_data/emitter_contract.py +3 -3
  9. web3/_utils/contract_sources/contract_data/event_contracts.py +7 -7
  10. web3/_utils/contract_sources/contract_data/extended_resolver.py +3 -3
  11. web3/_utils/contract_sources/contract_data/fallback_function_contract.py +3 -3
  12. web3/_utils/contract_sources/contract_data/function_name_tester_contract.py +3 -3
  13. web3/_utils/contract_sources/contract_data/math_contract.py +3 -3
  14. web3/_utils/contract_sources/contract_data/offchain_lookup.py +3 -3
  15. web3/_utils/contract_sources/contract_data/offchain_resolver.py +3 -3
  16. web3/_utils/contract_sources/contract_data/panic_errors_contract.py +3 -3
  17. web3/_utils/contract_sources/contract_data/payable_tester.py +3 -3
  18. web3/_utils/contract_sources/contract_data/receive_function_contracts.py +5 -5
  19. web3/_utils/contract_sources/contract_data/reflector_contracts.py +3 -3
  20. web3/_utils/contract_sources/contract_data/revert_contract.py +3 -3
  21. web3/_utils/contract_sources/contract_data/simple_resolver.py +3 -3
  22. web3/_utils/contract_sources/contract_data/storage_contract.py +3 -3
  23. web3/_utils/contract_sources/contract_data/string_contract.py +3 -3
  24. web3/_utils/contract_sources/contract_data/tuple_contracts.py +5 -5
  25. web3/_utils/decorators.py +2 -2
  26. web3/_utils/encoding.py +8 -0
  27. web3/_utils/ens.py +9 -1
  28. web3/_utils/error_formatters_utils.py +17 -0
  29. web3/_utils/filters.py +39 -28
  30. web3/_utils/method_formatters.py +58 -7
  31. web3/_utils/module_testing/eth_module.py +218 -80
  32. web3/_utils/module_testing/module_testing_utils.py +0 -12
  33. web3/_utils/module_testing/persistent_connection_provider.py +3 -3
  34. web3/_utils/normalizers.py +1 -1
  35. web3/_utils/rpc_abi.py +5 -4
  36. web3/_utils/utility_methods.py +8 -6
  37. web3/eth/async_eth.py +4 -0
  38. web3/eth/eth.py +15 -2
  39. web3/method.py +10 -2
  40. web3/providers/async_base.py +5 -6
  41. web3/providers/base.py +5 -5
  42. web3/providers/eth_tester/middleware.py +20 -0
  43. web3/providers/ipc.py +2 -0
  44. web3/providers/legacy_websocket.py +2 -0
  45. web3/providers/persistent/async_ipc.py +3 -1
  46. web3/providers/persistent/persistent.py +15 -10
  47. web3/providers/persistent/request_processor.py +10 -1
  48. web3/providers/persistent/subscription_manager.py +1 -0
  49. web3/providers/rpc/async_rpc.py +2 -0
  50. web3/providers/rpc/rpc.py +2 -0
  51. web3/types.py +27 -0
  52. web3/utils/abi.py +1 -1
  53. web3/utils/caching.py +8 -5
  54. {web3-7.10.0.dist-info → web3-7.11.1.dist-info}/METADATA +56 -69
  55. {web3-7.10.0.dist-info → web3-7.11.1.dist-info}/RECORD +58 -58
  56. {web3-7.10.0.dist-info → web3-7.11.1.dist-info}/WHEEL +1 -1
  57. {web3-7.10.0.dist-info/licenses → web3-7.11.1.dist-info}/LICENSE +0 -0
  58. {web3-7.10.0.dist-info → web3-7.11.1.dist-info}/top_level.txt +0 -0
@@ -1,11 +1,11 @@
1
1
  """
2
2
  Generated by `compile_contracts.py` script.
3
- Compiled with Solidity v0.8.29.
3
+ Compiled with Solidity v0.8.30.
4
4
  """
5
5
 
6
6
  # source: web3/_utils/contract_sources/RevertContract.sol:RevertContract
7
- REVERT_CONTRACT_BYTECODE = "0x6080604052348015600e575f5ffd5b5061029c8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063185c38a414610059578063bc53eca814610063578063c06a97cb1461006d578063d67e4b8414610077578063e766d49814610095575b5f5ffd5b61006161009f565b005b61006b6100da565b005b610075610115565b005b61007f610119565b60405161008c919061016d565b60405180910390f35b61009d610121565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906101e0565b60405180910390fd5b6040517f9553947a00000000000000000000000000000000000000000000000000000000815260040161010c90610248565b60405180910390fd5b5f5ffd5b5f6001905090565b6040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8115159050919050565b61016781610153565b82525050565b5f6020820190506101805f83018461015e565b92915050565b5f82825260208201905092915050565b7f46756e6374696f6e20686173206265656e2072657665727465642e00000000005f82015250565b5f6101ca601b83610186565b91506101d582610196565b602082019050919050565b5f6020820190508181035f8301526101f7816101be565b9050919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f610232601683610186565b915061023d826101fe565b602082019050919050565b5f6020820190508181035f83015261025f81610226565b905091905056fea264697066735822122054ad0bb8b5d29deb1ebc722f27ca39b297d24c3e0a8b77436983b7ae57b7c0e964736f6c634300081d0033" # noqa: E501
8
- REVERT_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063185c38a414610059578063bc53eca814610063578063c06a97cb1461006d578063d67e4b8414610077578063e766d49814610095575b5f5ffd5b61006161009f565b005b61006b6100da565b005b610075610115565b005b61007f610119565b60405161008c919061016d565b60405180910390f35b61009d610121565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906101e0565b60405180910390fd5b6040517f9553947a00000000000000000000000000000000000000000000000000000000815260040161010c90610248565b60405180910390fd5b5f5ffd5b5f6001905090565b6040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8115159050919050565b61016781610153565b82525050565b5f6020820190506101805f83018461015e565b92915050565b5f82825260208201905092915050565b7f46756e6374696f6e20686173206265656e2072657665727465642e00000000005f82015250565b5f6101ca601b83610186565b91506101d582610196565b602082019050919050565b5f6020820190508181035f8301526101f7816101be565b9050919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f610232601683610186565b915061023d826101fe565b602082019050919050565b5f6020820190508181035f83015261025f81610226565b905091905056fea264697066735822122054ad0bb8b5d29deb1ebc722f27ca39b297d24c3e0a8b77436983b7ae57b7c0e964736f6c634300081d0033" # noqa: E501
7
+ REVERT_CONTRACT_BYTECODE = "0x6080604052348015600e575f5ffd5b5061029c8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063185c38a414610059578063bc53eca814610063578063c06a97cb1461006d578063d67e4b8414610077578063e766d49814610095575b5f5ffd5b61006161009f565b005b61006b6100da565b005b610075610115565b005b61007f610119565b60405161008c919061016d565b60405180910390f35b61009d610121565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906101e0565b60405180910390fd5b6040517f9553947a00000000000000000000000000000000000000000000000000000000815260040161010c90610248565b60405180910390fd5b5f5ffd5b5f6001905090565b6040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8115159050919050565b61016781610153565b82525050565b5f6020820190506101805f83018461015e565b92915050565b5f82825260208201905092915050565b7f46756e6374696f6e20686173206265656e2072657665727465642e00000000005f82015250565b5f6101ca601b83610186565b91506101d582610196565b602082019050919050565b5f6020820190508181035f8301526101f7816101be565b9050919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f610232601683610186565b915061023d826101fe565b602082019050919050565b5f6020820190508181035f83015261025f81610226565b905091905056fea26469706673582212202d8ccc055c01870a6d80c5aa5526a92e31b542448b7077752700fe921dea786864736f6c634300081e0033" # noqa: E501
8
+ REVERT_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c8063185c38a414610059578063bc53eca814610063578063c06a97cb1461006d578063d67e4b8414610077578063e766d49814610095575b5f5ffd5b61006161009f565b005b61006b6100da565b005b610075610115565b005b61007f610119565b60405161008c919061016d565b60405180910390f35b61009d610121565b005b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100d1906101e0565b60405180910390fd5b6040517f9553947a00000000000000000000000000000000000000000000000000000000815260040161010c90610248565b60405180910390fd5b5f5ffd5b5f6001905090565b6040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8115159050919050565b61016781610153565b82525050565b5f6020820190506101805f83018461015e565b92915050565b5f82825260208201905092915050565b7f46756e6374696f6e20686173206265656e2072657665727465642e00000000005f82015250565b5f6101ca601b83610186565b91506101d582610196565b602082019050919050565b5f6020820190508181035f8301526101f7816101be565b9050919050565b7f596f7520617265206e6f7420617574686f72697a6564000000000000000000005f82015250565b5f610232601683610186565b915061023d826101fe565b602082019050919050565b5f6020820190508181035f83015261025f81610226565b905091905056fea26469706673582212202d8ccc055c01870a6d80c5aa5526a92e31b542448b7077752700fe921dea786864736f6c634300081e0033" # noqa: E501
9
9
  REVERT_CONTRACT_ABI = [
10
10
  {"inputs": [], "name": "Unauthorized", "type": "error"},
11
11
  {
@@ -1,11 +1,11 @@
1
1
  """
2
2
  Generated by `compile_contracts.py` script.
3
- Compiled with Solidity v0.8.29.
3
+ Compiled with Solidity v0.8.30.
4
4
  """
5
5
 
6
6
  # source: web3/_utils/contract_sources/SimpleResolver.sol:SimpleResolver
7
- SIMPLE_RESOLVER_BYTECODE = "0x6080604052348015600e575f5ffd5b506102758061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806301ffc9a7146100385780633b3b57de14610068575b5f5ffd5b610052600480360381019061004d919061012b565b610098565b60405161005f9190610170565b60405180910390f35b610082600480360381019061007d91906101bc565b6100c9565b60405161008f9190610226565b60405180910390f35b5f633b3b57de60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f309050919050565b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61010a816100d6565b8114610114575f5ffd5b50565b5f8135905061012581610101565b92915050565b5f602082840312156101405761013f6100d2565b5b5f61014d84828501610117565b91505092915050565b5f8115159050919050565b61016a81610156565b82525050565b5f6020820190506101835f830184610161565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f5ffd5b50565b5f813590506101b681610192565b92915050565b5f602082840312156101d1576101d06100d2565b5b5f6101de848285016101a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610210826101e7565b9050919050565b61022081610206565b82525050565b5f6020820190506102395f830184610217565b9291505056fea26469706673582212207097b48b4ea723908890de3da35a05eb681bddc9c976233229065f0657132b0164736f6c634300081d0033" # noqa: E501
8
- SIMPLE_RESOLVER_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806301ffc9a7146100385780633b3b57de14610068575b5f5ffd5b610052600480360381019061004d919061012b565b610098565b60405161005f9190610170565b60405180910390f35b610082600480360381019061007d91906101bc565b6100c9565b60405161008f9190610226565b60405180910390f35b5f633b3b57de60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f309050919050565b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61010a816100d6565b8114610114575f5ffd5b50565b5f8135905061012581610101565b92915050565b5f602082840312156101405761013f6100d2565b5b5f61014d84828501610117565b91505092915050565b5f8115159050919050565b61016a81610156565b82525050565b5f6020820190506101835f830184610161565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f5ffd5b50565b5f813590506101b681610192565b92915050565b5f602082840312156101d1576101d06100d2565b5b5f6101de848285016101a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610210826101e7565b9050919050565b61022081610206565b82525050565b5f6020820190506102395f830184610217565b9291505056fea26469706673582212207097b48b4ea723908890de3da35a05eb681bddc9c976233229065f0657132b0164736f6c634300081d0033" # noqa: E501
7
+ SIMPLE_RESOLVER_BYTECODE = "0x6080604052348015600e575f5ffd5b506102758061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806301ffc9a7146100385780633b3b57de14610068575b5f5ffd5b610052600480360381019061004d919061012b565b610098565b60405161005f9190610170565b60405180910390f35b610082600480360381019061007d91906101bc565b6100c9565b60405161008f9190610226565b60405180910390f35b5f633b3b57de60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f309050919050565b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61010a816100d6565b8114610114575f5ffd5b50565b5f8135905061012581610101565b92915050565b5f602082840312156101405761013f6100d2565b5b5f61014d84828501610117565b91505092915050565b5f8115159050919050565b61016a81610156565b82525050565b5f6020820190506101835f830184610161565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f5ffd5b50565b5f813590506101b681610192565b92915050565b5f602082840312156101d1576101d06100d2565b5b5f6101de848285016101a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610210826101e7565b9050919050565b61022081610206565b82525050565b5f6020820190506102395f830184610217565b9291505056fea26469706673582212205cf7ee37a56d482fe0f5c4387f62bcd4ba469c14d8f69485c72014a1fa02f2e464736f6c634300081e0033" # noqa: E501
8
+ SIMPLE_RESOLVER_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610034575f3560e01c806301ffc9a7146100385780633b3b57de14610068575b5f5ffd5b610052600480360381019061004d919061012b565b610098565b60405161005f9190610170565b60405180910390f35b610082600480360381019061007d91906101bc565b6100c9565b60405161008f9190610226565b60405180910390f35b5f633b3b57de60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f309050919050565b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61010a816100d6565b8114610114575f5ffd5b50565b5f8135905061012581610101565b92915050565b5f602082840312156101405761013f6100d2565b5b5f61014d84828501610117565b91505092915050565b5f8115159050919050565b61016a81610156565b82525050565b5f6020820190506101835f830184610161565b92915050565b5f819050919050565b61019b81610189565b81146101a5575f5ffd5b50565b5f813590506101b681610192565b92915050565b5f602082840312156101d1576101d06100d2565b5b5f6101de848285016101a8565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610210826101e7565b9050919050565b61022081610206565b82525050565b5f6020820190506102395f830184610217565b9291505056fea26469706673582212205cf7ee37a56d482fe0f5c4387f62bcd4ba469c14d8f69485c72014a1fa02f2e464736f6c634300081e0033" # noqa: E501
9
9
  SIMPLE_RESOLVER_ABI = [
10
10
  {
11
11
  "inputs": [{"internalType": "bytes32", "name": "nodeID", "type": "bytes32"}],
@@ -1,11 +1,11 @@
1
1
  """
2
2
  Generated by `compile_contracts.py` script.
3
- Compiled with Solidity v0.8.29.
3
+ Compiled with Solidity v0.8.30.
4
4
  """
5
5
 
6
6
  # source: web3/_utils/contract_sources/StorageContract.sol:StorageContract
7
- STORAGE_CONTRACT_BYTECODE = "0x60806040525f5f5560018055600280556040518060400160405280600581526020017f74687265650000000000000000000000000000000000000000000000000000008152506003908161005391906102e7565b506040518060400160405280600481526020017f666f757200000000000000000000000000000000000000000000000000000000815250600490816100989190610418565b503480156100a4575f5ffd5b506104e7565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061012557607f821691505b602082108103610138576101376100e1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261019a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261015f565b6101a4868361015f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e86101e36101de846101bc565b6101c5565b6101bc565b9050919050565b5f819050919050565b610201836101ce565b61021561020d826101ef565b84845461016b565b825550505050565b5f5f905090565b61022c61021d565b6102378184846101f8565b505050565b5b8181101561025a5761024f5f82610224565b60018101905061023d565b5050565b601f82111561029f576102708161013e565b61027984610150565b81016020851015610288578190505b61029c61029485610150565b83018261023c565b50505b505050565b5f82821c905092915050565b5f6102bf5f19846008026102a4565b1980831691505092915050565b5f6102d783836102b0565b9150826002028217905092915050565b6102f0826100aa565b67ffffffffffffffff811115610309576103086100b4565b5b610313825461010e565b61031e82828561025e565b5f60209050601f83116001811461034f575f841561033d578287015190505b61034785826102cc565b8655506103ae565b601f19841661035d8661013e565b5f5b828110156103845784890151825560018201915060208501945060208101905061035f565b868310156103a1578489015161039d601f8916826102b0565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f819050815f5260205f209050919050565b601f821115610413576103e4816103c0565b6103ed84610150565b810160208510156103fc578190505b61041061040885610150565b83018261023c565b50505b505050565b610421826103b6565b67ffffffffffffffff81111561043a576104396100b4565b5b610444825461010e565b61044f8282856103d2565b5f60209050601f831160018114610480575f841561046e578287015190505b61047885826102cc565b8655506104df565b601f19841661048e866103c0565b5f5b828110156104b557848901518255600182019150602085019450602081019050610490565b868310156104d257848901516104ce601f8916826102b0565b8355505b6001600288020188555050505b505050505050565b6103de806104f45f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80631f457cb5146100595780633850c7bd146100775780634a9a010914610095578063924fe315146100b3578063d987e6b5146100d1575b5f5ffd5b6100616100ef565b60405161006e9190610230565b60405180910390f35b61007f6100f5565b60405161008c9190610230565b60405180910390f35b61009d6100fa565b6040516100aa91906102b9565b60405180910390f35b6100bb610186565b6040516100c8919061032b565b60405180910390f35b6100d9610212565b6040516100e69190610230565b60405180910390f35b60015481565b5f5481565b6004805461010790610378565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610378565b801561017e5780601f106101555761010080835404028352916020019161017e565b820191905f5260205f20905b81548152906001019060200180831161016157829003601f168201915b505050505081565b6003805461019390610378565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf90610378565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b505050505081565b60025481565b5f819050919050565b61022a81610218565b82525050565b5f6020820190506102435f830184610221565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61028b82610249565b6102958185610253565b93506102a5818560208601610263565b6102ae81610271565b840191505092915050565b5f6020820190508181035f8301526102d18184610281565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6102fd826102d9565b61030781856102e3565b9350610317818560208601610263565b61032081610271565b840191505092915050565b5f6020820190508181035f83015261034381846102f3565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061038f57607f821691505b6020821081036103a2576103a161034b565b5b5091905056fea264697066735822122016dd5fe548bae4bf8d8cb1654fcf2c19472a4459f6e9dde210abe9e0d72f00e364736f6c634300081d0033" # noqa: E501
8
- STORAGE_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80631f457cb5146100595780633850c7bd146100775780634a9a010914610095578063924fe315146100b3578063d987e6b5146100d1575b5f5ffd5b6100616100ef565b60405161006e9190610230565b60405180910390f35b61007f6100f5565b60405161008c9190610230565b60405180910390f35b61009d6100fa565b6040516100aa91906102b9565b60405180910390f35b6100bb610186565b6040516100c8919061032b565b60405180910390f35b6100d9610212565b6040516100e69190610230565b60405180910390f35b60015481565b5f5481565b6004805461010790610378565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610378565b801561017e5780601f106101555761010080835404028352916020019161017e565b820191905f5260205f20905b81548152906001019060200180831161016157829003601f168201915b505050505081565b6003805461019390610378565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf90610378565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b505050505081565b60025481565b5f819050919050565b61022a81610218565b82525050565b5f6020820190506102435f830184610221565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61028b82610249565b6102958185610253565b93506102a5818560208601610263565b6102ae81610271565b840191505092915050565b5f6020820190508181035f8301526102d18184610281565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6102fd826102d9565b61030781856102e3565b9350610317818560208601610263565b61032081610271565b840191505092915050565b5f6020820190508181035f83015261034381846102f3565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061038f57607f821691505b6020821081036103a2576103a161034b565b5b5091905056fea264697066735822122016dd5fe548bae4bf8d8cb1654fcf2c19472a4459f6e9dde210abe9e0d72f00e364736f6c634300081d0033" # noqa: E501
7
+ STORAGE_CONTRACT_BYTECODE = "0x60806040525f5f5560018055600280556040518060400160405280600581526020017f74687265650000000000000000000000000000000000000000000000000000008152506003908161005391906102e7565b506040518060400160405280600481526020017f666f757200000000000000000000000000000000000000000000000000000000815250600490816100989190610418565b503480156100a4575f5ffd5b506104e7565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061012557607f821691505b602082108103610138576101376100e1565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261019a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261015f565b6101a4868361015f565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e86101e36101de846101bc565b6101c5565b6101bc565b9050919050565b5f819050919050565b610201836101ce565b61021561020d826101ef565b84845461016b565b825550505050565b5f5f905090565b61022c61021d565b6102378184846101f8565b505050565b5b8181101561025a5761024f5f82610224565b60018101905061023d565b5050565b601f82111561029f576102708161013e565b61027984610150565b81016020851015610288578190505b61029c61029485610150565b83018261023c565b50505b505050565b5f82821c905092915050565b5f6102bf5f19846008026102a4565b1980831691505092915050565b5f6102d783836102b0565b9150826002028217905092915050565b6102f0826100aa565b67ffffffffffffffff811115610309576103086100b4565b5b610313825461010e565b61031e82828561025e565b5f60209050601f83116001811461034f575f841561033d578287015190505b61034785826102cc565b8655506103ae565b601f19841661035d8661013e565b5f5b828110156103845784890151825560018201915060208501945060208101905061035f565b868310156103a1578489015161039d601f8916826102b0565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f819050815f5260205f209050919050565b601f821115610413576103e4816103c0565b6103ed84610150565b810160208510156103fc578190505b61041061040885610150565b83018261023c565b50505b505050565b610421826103b6565b67ffffffffffffffff81111561043a576104396100b4565b5b610444825461010e565b61044f8282856103d2565b5f60209050601f831160018114610480575f841561046e578287015190505b61047885826102cc565b8655506104df565b601f19841661048e866103c0565b5f5b828110156104b557848901518255600182019150602085019450602081019050610490565b868310156104d257848901516104ce601f8916826102b0565b8355505b6001600288020188555050505b505050505050565b6103de806104f45f395ff3fe608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80631f457cb5146100595780633850c7bd146100775780634a9a010914610095578063924fe315146100b3578063d987e6b5146100d1575b5f5ffd5b6100616100ef565b60405161006e9190610230565b60405180910390f35b61007f6100f5565b60405161008c9190610230565b60405180910390f35b61009d6100fa565b6040516100aa91906102b9565b60405180910390f35b6100bb610186565b6040516100c8919061032b565b60405180910390f35b6100d9610212565b6040516100e69190610230565b60405180910390f35b60015481565b5f5481565b6004805461010790610378565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610378565b801561017e5780601f106101555761010080835404028352916020019161017e565b820191905f5260205f20905b81548152906001019060200180831161016157829003601f168201915b505050505081565b6003805461019390610378565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf90610378565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b505050505081565b60025481565b5f819050919050565b61022a81610218565b82525050565b5f6020820190506102435f830184610221565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61028b82610249565b6102958185610253565b93506102a5818560208601610263565b6102ae81610271565b840191505092915050565b5f6020820190508181035f8301526102d18184610281565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6102fd826102d9565b61030781856102e3565b9350610317818560208601610263565b61032081610271565b840191505092915050565b5f6020820190508181035f83015261034381846102f3565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061038f57607f821691505b6020821081036103a2576103a161034b565b5b5091905056fea26469706673582212200eb6f59ca49bcaca2e053475392d2aca99e18fc25cc0b30e81436c83b1217c8d64736f6c634300081e0033" # noqa: E501
8
+ STORAGE_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610055575f3560e01c80631f457cb5146100595780633850c7bd146100775780634a9a010914610095578063924fe315146100b3578063d987e6b5146100d1575b5f5ffd5b6100616100ef565b60405161006e9190610230565b60405180910390f35b61007f6100f5565b60405161008c9190610230565b60405180910390f35b61009d6100fa565b6040516100aa91906102b9565b60405180910390f35b6100bb610186565b6040516100c8919061032b565b60405180910390f35b6100d9610212565b6040516100e69190610230565b60405180910390f35b60015481565b5f5481565b6004805461010790610378565b80601f016020809104026020016040519081016040528092919081815260200182805461013390610378565b801561017e5780601f106101555761010080835404028352916020019161017e565b820191905f5260205f20905b81548152906001019060200180831161016157829003601f168201915b505050505081565b6003805461019390610378565b80601f01602080910402602001604051908101604052809291908181526020018280546101bf90610378565b801561020a5780601f106101e15761010080835404028352916020019161020a565b820191905f5260205f20905b8154815290600101906020018083116101ed57829003601f168201915b505050505081565b60025481565b5f819050919050565b61022a81610218565b82525050565b5f6020820190506102435f830184610221565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61028b82610249565b6102958185610253565b93506102a5818560208601610263565b6102ae81610271565b840191505092915050565b5f6020820190508181035f8301526102d18184610281565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f6102fd826102d9565b61030781856102e3565b9350610317818560208601610263565b61032081610271565b840191505092915050565b5f6020820190508181035f83015261034381846102f3565b905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061038f57607f821691505b6020821081036103a2576103a161034b565b5b5091905056fea26469706673582212200eb6f59ca49bcaca2e053475392d2aca99e18fc25cc0b30e81436c83b1217c8d64736f6c634300081e0033" # noqa: E501
9
9
  STORAGE_CONTRACT_ABI = [
10
10
  {
11
11
  "inputs": [],
@@ -1,11 +1,11 @@
1
1
  """
2
2
  Generated by `compile_contracts.py` script.
3
- Compiled with Solidity v0.8.29.
3
+ Compiled with Solidity v0.8.30.
4
4
  """
5
5
 
6
6
  # source: web3/_utils/contract_sources/StringContract.sol:StringContract
7
- STRING_CONTRACT_BYTECODE = "0x608060405234801561000f575f5ffd5b50604051610c1a380380610c1a83398181016040528101906100319190610193565b805f908161003f91906103ea565b50506104b9565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100a58261005f565b810181811067ffffffffffffffff821117156100c4576100c361006f565b5b80604052505050565b5f6100d6610046565b90506100e2828261009c565b919050565b5f67ffffffffffffffff8211156101015761010061006f565b5b61010a8261005f565b9050602081019050919050565b8281835e5f83830152505050565b5f610137610132846100e7565b6100cd565b9050828152602081018484840111156101535761015261005b565b5b61015e848285610117565b509392505050565b5f82601f83011261017a57610179610057565b5b815161018a848260208601610125565b91505092915050565b5f602082840312156101a8576101a761004f565b5b5f82015167ffffffffffffffff8111156101c5576101c4610053565b5b6101d184828501610166565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061022857607f821691505b60208210810361023b5761023a6101e4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261029d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610262565b6102a78683610262565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102eb6102e66102e1846102bf565b6102c8565b6102bf565b9050919050565b5f819050919050565b610304836102d1565b610318610310826102f2565b84845461026e565b825550505050565b5f5f905090565b61032f610320565b61033a8184846102fb565b505050565b5b8181101561035d576103525f82610327565b600181019050610340565b5050565b601f8211156103a25761037381610241565b61037c84610253565b8101602085101561038b578190505b61039f61039785610253565b83018261033f565b50505b505050565b5f82821c905092915050565b5f6103c25f19846008026103a7565b1980831691505092915050565b5f6103da83836103b3565b9150826002028217905092915050565b6103f3826101da565b67ffffffffffffffff81111561040c5761040b61006f565b5b6104168254610211565b610421828285610361565b5f60209050601f831160018114610452575f8415610440578287015190505b61044a85826103cf565b8655506104b1565b601f19841661046086610241565b5f5b8281101561048757848901518255600182019150602085019450602081019050610462565b868310156104a457848901516104a0601f8916826103b3565b8355505b6001600288020188555050505b505050505050565b610754806104c65f395ff3fe608060405260043610610037575f3560e01c806320965255146100995780633fa4f245146100b757806393a09352146100e157610038565b5b348015610043575f5ffd5b505f36606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050915050805190602001f35b6100a1610109565b6040516100ae91906102a5565b60405180910390f35b3480156100c2575f5ffd5b506100cb610198565b6040516100d891906102a5565b60405180910390f35b3480156100ec575f5ffd5b5061010760048036038101906101029190610402565b610223565b005b60605f805461011790610476565b80601f016020809104026020016040519081016040528092919081815260200182805461014390610476565b801561018e5780601f106101655761010080835404028352916020019161018e565b820191905f5260205f20905b81548152906001019060200180831161017157829003601f168201915b5050505050905090565b5f80546101a490610476565b80601f01602080910402602001604051908101604052809291908181526020018280546101d090610476565b801561021b5780601f106101f25761010080835404028352916020019161021b565b820191905f5260205f20905b8154815290600101906020018083116101fe57829003601f168201915b505050505081565b805f9081610231919061064f565b5050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61027782610235565b610281818561023f565b935061029181856020860161024f565b61029a8161025d565b840191505092915050565b5f6020820190508181035f8301526102bd818461026d565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103148261025d565b810181811067ffffffffffffffff82111715610333576103326102de565b5b80604052505050565b5f6103456102c5565b9050610351828261030b565b919050565b5f67ffffffffffffffff8211156103705761036f6102de565b5b6103798261025d565b9050602081019050919050565b828183375f83830152505050565b5f6103a66103a184610356565b61033c565b9050828152602081018484840111156103c2576103c16102da565b5b6103cd848285610386565b509392505050565b5f82601f8301126103e9576103e86102d6565b5b81356103f9848260208601610394565b91505092915050565b5f60208284031215610417576104166102ce565b5b5f82013567ffffffffffffffff811115610434576104336102d2565b5b610440848285016103d5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061048d57607f821691505b6020821081036104a05761049f610449565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104c7565b61050c86836104c7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61055061054b61054684610524565b61052d565b610524565b9050919050565b5f819050919050565b61056983610536565b61057d61057582610557565b8484546104d3565b825550505050565b5f5f905090565b610594610585565b61059f818484610560565b505050565b5b818110156105c2576105b75f8261058c565b6001810190506105a5565b5050565b601f821115610607576105d8816104a6565b6105e1846104b8565b810160208510156105f0578190505b6106046105fc856104b8565b8301826105a4565b50505b505050565b5f82821c905092915050565b5f6106275f198460080261060c565b1980831691505092915050565b5f61063f8383610618565b9150826002028217905092915050565b61065882610235565b67ffffffffffffffff811115610671576106706102de565b5b61067b8254610476565b6106868282856105c6565b5f60209050601f8311600181146106b7575f84156106a5578287015190505b6106af8582610634565b865550610716565b601f1984166106c5866104a6565b5f5b828110156106ec578489015182556001820191506020850194506020810190506106c7565b868310156107095784890151610705601f891682610618565b8355505b6001600288020188555050505b50505050505056fea264697066735822122057cfad9927863e77e0346ce71b093edd9bde029ffc5a2d9589f5ec615f8d6a1764736f6c634300081d0033" # noqa: E501
8
- STRING_CONTRACT_RUNTIME = "0x608060405260043610610037575f3560e01c806320965255146100995780633fa4f245146100b757806393a09352146100e157610038565b5b348015610043575f5ffd5b505f36606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050915050805190602001f35b6100a1610109565b6040516100ae91906102a5565b60405180910390f35b3480156100c2575f5ffd5b506100cb610198565b6040516100d891906102a5565b60405180910390f35b3480156100ec575f5ffd5b5061010760048036038101906101029190610402565b610223565b005b60605f805461011790610476565b80601f016020809104026020016040519081016040528092919081815260200182805461014390610476565b801561018e5780601f106101655761010080835404028352916020019161018e565b820191905f5260205f20905b81548152906001019060200180831161017157829003601f168201915b5050505050905090565b5f80546101a490610476565b80601f01602080910402602001604051908101604052809291908181526020018280546101d090610476565b801561021b5780601f106101f25761010080835404028352916020019161021b565b820191905f5260205f20905b8154815290600101906020018083116101fe57829003601f168201915b505050505081565b805f9081610231919061064f565b5050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61027782610235565b610281818561023f565b935061029181856020860161024f565b61029a8161025d565b840191505092915050565b5f6020820190508181035f8301526102bd818461026d565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103148261025d565b810181811067ffffffffffffffff82111715610333576103326102de565b5b80604052505050565b5f6103456102c5565b9050610351828261030b565b919050565b5f67ffffffffffffffff8211156103705761036f6102de565b5b6103798261025d565b9050602081019050919050565b828183375f83830152505050565b5f6103a66103a184610356565b61033c565b9050828152602081018484840111156103c2576103c16102da565b5b6103cd848285610386565b509392505050565b5f82601f8301126103e9576103e86102d6565b5b81356103f9848260208601610394565b91505092915050565b5f60208284031215610417576104166102ce565b5b5f82013567ffffffffffffffff811115610434576104336102d2565b5b610440848285016103d5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061048d57607f821691505b6020821081036104a05761049f610449565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104c7565b61050c86836104c7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61055061054b61054684610524565b61052d565b610524565b9050919050565b5f819050919050565b61056983610536565b61057d61057582610557565b8484546104d3565b825550505050565b5f5f905090565b610594610585565b61059f818484610560565b505050565b5b818110156105c2576105b75f8261058c565b6001810190506105a5565b5050565b601f821115610607576105d8816104a6565b6105e1846104b8565b810160208510156105f0578190505b6106046105fc856104b8565b8301826105a4565b50505b505050565b5f82821c905092915050565b5f6106275f198460080261060c565b1980831691505092915050565b5f61063f8383610618565b9150826002028217905092915050565b61065882610235565b67ffffffffffffffff811115610671576106706102de565b5b61067b8254610476565b6106868282856105c6565b5f60209050601f8311600181146106b7575f84156106a5578287015190505b6106af8582610634565b865550610716565b601f1984166106c5866104a6565b5f5b828110156106ec578489015182556001820191506020850194506020810190506106c7565b868310156107095784890151610705601f891682610618565b8355505b6001600288020188555050505b50505050505056fea264697066735822122057cfad9927863e77e0346ce71b093edd9bde029ffc5a2d9589f5ec615f8d6a1764736f6c634300081d0033" # noqa: E501
7
+ STRING_CONTRACT_BYTECODE = "0x608060405234801561000f575f5ffd5b50604051610c1a380380610c1a83398181016040528101906100319190610193565b805f908161003f91906103ea565b50506104b9565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100a58261005f565b810181811067ffffffffffffffff821117156100c4576100c361006f565b5b80604052505050565b5f6100d6610046565b90506100e2828261009c565b919050565b5f67ffffffffffffffff8211156101015761010061006f565b5b61010a8261005f565b9050602081019050919050565b8281835e5f83830152505050565b5f610137610132846100e7565b6100cd565b9050828152602081018484840111156101535761015261005b565b5b61015e848285610117565b509392505050565b5f82601f83011261017a57610179610057565b5b815161018a848260208601610125565b91505092915050565b5f602082840312156101a8576101a761004f565b5b5f82015167ffffffffffffffff8111156101c5576101c4610053565b5b6101d184828501610166565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061022857607f821691505b60208210810361023b5761023a6101e4565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261029d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610262565b6102a78683610262565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102eb6102e66102e1846102bf565b6102c8565b6102bf565b9050919050565b5f819050919050565b610304836102d1565b610318610310826102f2565b84845461026e565b825550505050565b5f5f905090565b61032f610320565b61033a8184846102fb565b505050565b5b8181101561035d576103525f82610327565b600181019050610340565b5050565b601f8211156103a25761037381610241565b61037c84610253565b8101602085101561038b578190505b61039f61039785610253565b83018261033f565b50505b505050565b5f82821c905092915050565b5f6103c25f19846008026103a7565b1980831691505092915050565b5f6103da83836103b3565b9150826002028217905092915050565b6103f3826101da565b67ffffffffffffffff81111561040c5761040b61006f565b5b6104168254610211565b610421828285610361565b5f60209050601f831160018114610452575f8415610440578287015190505b61044a85826103cf565b8655506104b1565b601f19841661046086610241565b5f5b8281101561048757848901518255600182019150602085019450602081019050610462565b868310156104a457848901516104a0601f8916826103b3565b8355505b6001600288020188555050505b505050505050565b610754806104c65f395ff3fe608060405260043610610037575f3560e01c806320965255146100995780633fa4f245146100b757806393a09352146100e157610038565b5b348015610043575f5ffd5b505f36606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050915050805190602001f35b6100a1610109565b6040516100ae91906102a5565b60405180910390f35b3480156100c2575f5ffd5b506100cb610198565b6040516100d891906102a5565b60405180910390f35b3480156100ec575f5ffd5b5061010760048036038101906101029190610402565b610223565b005b60605f805461011790610476565b80601f016020809104026020016040519081016040528092919081815260200182805461014390610476565b801561018e5780601f106101655761010080835404028352916020019161018e565b820191905f5260205f20905b81548152906001019060200180831161017157829003601f168201915b5050505050905090565b5f80546101a490610476565b80601f01602080910402602001604051908101604052809291908181526020018280546101d090610476565b801561021b5780601f106101f25761010080835404028352916020019161021b565b820191905f5260205f20905b8154815290600101906020018083116101fe57829003601f168201915b505050505081565b805f9081610231919061064f565b5050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61027782610235565b610281818561023f565b935061029181856020860161024f565b61029a8161025d565b840191505092915050565b5f6020820190508181035f8301526102bd818461026d565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103148261025d565b810181811067ffffffffffffffff82111715610333576103326102de565b5b80604052505050565b5f6103456102c5565b9050610351828261030b565b919050565b5f67ffffffffffffffff8211156103705761036f6102de565b5b6103798261025d565b9050602081019050919050565b828183375f83830152505050565b5f6103a66103a184610356565b61033c565b9050828152602081018484840111156103c2576103c16102da565b5b6103cd848285610386565b509392505050565b5f82601f8301126103e9576103e86102d6565b5b81356103f9848260208601610394565b91505092915050565b5f60208284031215610417576104166102ce565b5b5f82013567ffffffffffffffff811115610434576104336102d2565b5b610440848285016103d5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061048d57607f821691505b6020821081036104a05761049f610449565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104c7565b61050c86836104c7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61055061054b61054684610524565b61052d565b610524565b9050919050565b5f819050919050565b61056983610536565b61057d61057582610557565b8484546104d3565b825550505050565b5f5f905090565b610594610585565b61059f818484610560565b505050565b5b818110156105c2576105b75f8261058c565b6001810190506105a5565b5050565b601f821115610607576105d8816104a6565b6105e1846104b8565b810160208510156105f0578190505b6106046105fc856104b8565b8301826105a4565b50505b505050565b5f82821c905092915050565b5f6106275f198460080261060c565b1980831691505092915050565b5f61063f8383610618565b9150826002028217905092915050565b61065882610235565b67ffffffffffffffff811115610671576106706102de565b5b61067b8254610476565b6106868282856105c6565b5f60209050601f8311600181146106b7575f84156106a5578287015190505b6106af8582610634565b865550610716565b601f1984166106c5866104a6565b5f5b828110156106ec578489015182556001820191506020850194506020810190506106c7565b868310156107095784890151610705601f891682610618565b8355505b6001600288020188555050505b50505050505056fea264697066735822122062c13ebbeffccc0fada8dca300714023d382cee7cbd94c78a6bcf2350afd835d64736f6c634300081e0033" # noqa: E501
8
+ STRING_CONTRACT_RUNTIME = "0x608060405260043610610037575f3560e01c806320965255146100995780633fa4f245146100b757806393a09352146100e157610038565b5b348015610043575f5ffd5b505f36606082828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509050915050805190602001f35b6100a1610109565b6040516100ae91906102a5565b60405180910390f35b3480156100c2575f5ffd5b506100cb610198565b6040516100d891906102a5565b60405180910390f35b3480156100ec575f5ffd5b5061010760048036038101906101029190610402565b610223565b005b60605f805461011790610476565b80601f016020809104026020016040519081016040528092919081815260200182805461014390610476565b801561018e5780601f106101655761010080835404028352916020019161018e565b820191905f5260205f20905b81548152906001019060200180831161017157829003601f168201915b5050505050905090565b5f80546101a490610476565b80601f01602080910402602001604051908101604052809291908181526020018280546101d090610476565b801561021b5780601f106101f25761010080835404028352916020019161021b565b820191905f5260205f20905b8154815290600101906020018083116101fe57829003601f168201915b505050505081565b805f9081610231919061064f565b5050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61027782610235565b610281818561023f565b935061029181856020860161024f565b61029a8161025d565b840191505092915050565b5f6020820190508181035f8301526102bd818461026d565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103148261025d565b810181811067ffffffffffffffff82111715610333576103326102de565b5b80604052505050565b5f6103456102c5565b9050610351828261030b565b919050565b5f67ffffffffffffffff8211156103705761036f6102de565b5b6103798261025d565b9050602081019050919050565b828183375f83830152505050565b5f6103a66103a184610356565b61033c565b9050828152602081018484840111156103c2576103c16102da565b5b6103cd848285610386565b509392505050565b5f82601f8301126103e9576103e86102d6565b5b81356103f9848260208601610394565b91505092915050565b5f60208284031215610417576104166102ce565b5b5f82013567ffffffffffffffff811115610434576104336102d2565b5b610440848285016103d5565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061048d57607f821691505b6020821081036104a05761049f610449565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026105027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104c7565b61050c86836104c7565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61055061054b61054684610524565b61052d565b610524565b9050919050565b5f819050919050565b61056983610536565b61057d61057582610557565b8484546104d3565b825550505050565b5f5f905090565b610594610585565b61059f818484610560565b505050565b5b818110156105c2576105b75f8261058c565b6001810190506105a5565b5050565b601f821115610607576105d8816104a6565b6105e1846104b8565b810160208510156105f0578190505b6106046105fc856104b8565b8301826105a4565b50505b505050565b5f82821c905092915050565b5f6106275f198460080261060c565b1980831691505092915050565b5f61063f8383610618565b9150826002028217905092915050565b61065882610235565b67ffffffffffffffff811115610671576106706102de565b5b61067b8254610476565b6106868282856105c6565b5f60209050601f8311600181146106b7575f84156106a5578287015190505b6106af8582610634565b865550610716565b601f1984166106c5866104a6565b5f5b828110156106ec578489015182556001820191506020850194506020810190506106c7565b868310156107095784890151610705601f891682610618565b8355505b6001600288020188555050505b50505050505056fea264697066735822122062c13ebbeffccc0fada8dca300714023d382cee7cbd94c78a6bcf2350afd835d64736f6c634300081e0033" # noqa: E501
9
9
  STRING_CONTRACT_ABI = [
10
10
  {
11
11
  "inputs": [{"internalType": "string", "name": "_value", "type": "string"}],
@@ -1,11 +1,11 @@
1
1
  """
2
2
  Generated by `compile_contracts.py` script.
3
- Compiled with Solidity v0.8.29.
3
+ Compiled with Solidity v0.8.30.
4
4
  """
5
5
 
6
6
  # source: web3/_utils/contract_sources/TupleContracts.sol:TupleContract
7
- TUPLE_CONTRACT_BYTECODE = "0x6080604052348015600e575f5ffd5b50610a688061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80638e1ae3c71461002d575b5f5ffd5b6100476004803603810190610042919061064d565b61005d565b6040516100549190610a12565b60405180910390f35b61006561006d565b819050919050565b60405180606001604052805f815260200160608152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100e8826100a2565b810181811067ffffffffffffffff82111715610107576101066100b2565b5b80604052505050565b5f61011961008d565b905061012582826100df565b919050565b5f5ffd5b5f819050919050565b6101408161012e565b811461014a575f5ffd5b50565b5f8135905061015b81610137565b92915050565b5f5ffd5b5f67ffffffffffffffff82111561017f5761017e6100b2565b5b602082029050602081019050919050565b5f5ffd5b5f6101a66101a184610165565b610110565b905080838252602082019050602084028301858111156101c9576101c8610190565b5b835b818110156101f257806101de888261014d565b8452602084019350506020810190506101cb565b5050509392505050565b5f82601f8301126102105761020f610161565b5b8135610220848260208601610194565b91505092915050565b5f67ffffffffffffffff821115610243576102426100b2565b5b602082029050602081019050919050565b5f819050919050565b61026681610254565b8114610270575f5ffd5b50565b5f813590506102818161025d565b92915050565b5f67ffffffffffffffff8211156102a1576102a06100b2565b5b602082029050919050565b5f8115159050919050565b6102c0816102ac565b81146102ca575f5ffd5b50565b5f813590506102db816102b7565b92915050565b5f6102f36102ee84610287565b610110565b9050806020840283018581111561030d5761030c610190565b5b835b81811015610336578061032288826102cd565b84526020840193505060208101905061030f565b5050509392505050565b5f82601f83011261035457610353610161565b5b60026103618482856102e1565b91505092915050565b5f67ffffffffffffffff821115610384576103836100b2565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103be82610395565b9050919050565b6103ce816103b4565b81146103d8575f5ffd5b50565b5f813590506103e9816103c5565b92915050565b5f6104016103fc8461036a565b610110565b9050808382526020820190506020840283018581111561042457610423610190565b5b835b8181101561044d578061043988826103db565b845260208401935050602081019050610426565b5050509392505050565b5f82601f83011261046b5761046a610161565b5b813561047b8482602086016103ef565b91505092915050565b5f608082840312156104995761049861009e565b5b6104a36060610110565b90505f6104b284828501610273565b5f8301525060206104c584828501610340565b602083015250606082013567ffffffffffffffff8111156104e9576104e861012a565b5b6104f584828501610457565b60408301525092915050565b5f61051361050e84610229565b610110565b9050808382526020820190506020840283018581111561053657610535610190565b5b835b8181101561057d57803567ffffffffffffffff81111561055b5761055a610161565b5b8086016105688982610484565b85526020850194505050602081019050610538565b5050509392505050565b5f82601f83011261059b5761059a610161565b5b81356105ab848260208601610501565b91505092915050565b5f606082840312156105c9576105c861009e565b5b6105d36060610110565b90505f6105e28482850161014d565b5f83015250602082013567ffffffffffffffff8111156106055761060461012a565b5b610611848285016101fc565b602083015250604082013567ffffffffffffffff8111156106355761063461012a565b5b61064184828501610587565b60408301525092915050565b5f6020828403121561066257610661610096565b5b5f82013567ffffffffffffffff81111561067f5761067e61009a565b5b61068b848285016105b4565b91505092915050565b61069d8161012e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6106d78383610694565b60208301905092915050565b5f602082019050919050565b5f6106f9826106a3565b61070381856106ad565b935061070e836106bd565b805f5b8381101561073e57815161072588826106cc565b9750610730836106e3565b925050600181019050610711565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61077d81610254565b82525050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6107a9816102ac565b82525050565b5f6107ba83836107a0565b60208301905092915050565b5f602082019050919050565b6107db81610783565b6107e5818461078d565b92506107f082610797565b805f5b8381101561082057815161080787826107af565b9650610812836107c6565b9250506001810190506107f3565b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61085a816103b4565b82525050565b5f61086b8383610851565b60208301905092915050565b5f602082019050919050565b5f61088d82610828565b6108978185610832565b93506108a283610842565b805f5b838110156108d25781516108b98882610860565b97506108c483610877565b9250506001810190506108a5565b5085935050505092915050565b5f608083015f8301516108f45f860182610774565b50602083015161090760208601826107d2565b506040830151848203606086015261091f8282610883565b9150508091505092915050565b5f61093783836108df565b905092915050565b5f602082019050919050565b5f6109558261074b565b61095f8185610755565b93508360208202850161097185610765565b805f5b858110156109ac578484038952815161098d858261092c565b94506109988361093f565b925060208a01995050600181019050610974565b50829750879550505050505092915050565b5f606083015f8301516109d35f860182610694565b50602083015184820360208601526109eb82826106ef565b91505060408301518482036040860152610a05828261094b565b9150508091505092915050565b5f6020820190508181035f830152610a2a81846109be565b90509291505056fea264697066735822122093989c185ced19ac413031c41f5829f7372fbdf036232e036a7610d4ecd2ed2264736f6c634300081d0033" # noqa: E501
8
- TUPLE_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80638e1ae3c71461002d575b5f5ffd5b6100476004803603810190610042919061064d565b61005d565b6040516100549190610a12565b60405180910390f35b61006561006d565b819050919050565b60405180606001604052805f815260200160608152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100e8826100a2565b810181811067ffffffffffffffff82111715610107576101066100b2565b5b80604052505050565b5f61011961008d565b905061012582826100df565b919050565b5f5ffd5b5f819050919050565b6101408161012e565b811461014a575f5ffd5b50565b5f8135905061015b81610137565b92915050565b5f5ffd5b5f67ffffffffffffffff82111561017f5761017e6100b2565b5b602082029050602081019050919050565b5f5ffd5b5f6101a66101a184610165565b610110565b905080838252602082019050602084028301858111156101c9576101c8610190565b5b835b818110156101f257806101de888261014d565b8452602084019350506020810190506101cb565b5050509392505050565b5f82601f8301126102105761020f610161565b5b8135610220848260208601610194565b91505092915050565b5f67ffffffffffffffff821115610243576102426100b2565b5b602082029050602081019050919050565b5f819050919050565b61026681610254565b8114610270575f5ffd5b50565b5f813590506102818161025d565b92915050565b5f67ffffffffffffffff8211156102a1576102a06100b2565b5b602082029050919050565b5f8115159050919050565b6102c0816102ac565b81146102ca575f5ffd5b50565b5f813590506102db816102b7565b92915050565b5f6102f36102ee84610287565b610110565b9050806020840283018581111561030d5761030c610190565b5b835b81811015610336578061032288826102cd565b84526020840193505060208101905061030f565b5050509392505050565b5f82601f83011261035457610353610161565b5b60026103618482856102e1565b91505092915050565b5f67ffffffffffffffff821115610384576103836100b2565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103be82610395565b9050919050565b6103ce816103b4565b81146103d8575f5ffd5b50565b5f813590506103e9816103c5565b92915050565b5f6104016103fc8461036a565b610110565b9050808382526020820190506020840283018581111561042457610423610190565b5b835b8181101561044d578061043988826103db565b845260208401935050602081019050610426565b5050509392505050565b5f82601f83011261046b5761046a610161565b5b813561047b8482602086016103ef565b91505092915050565b5f608082840312156104995761049861009e565b5b6104a36060610110565b90505f6104b284828501610273565b5f8301525060206104c584828501610340565b602083015250606082013567ffffffffffffffff8111156104e9576104e861012a565b5b6104f584828501610457565b60408301525092915050565b5f61051361050e84610229565b610110565b9050808382526020820190506020840283018581111561053657610535610190565b5b835b8181101561057d57803567ffffffffffffffff81111561055b5761055a610161565b5b8086016105688982610484565b85526020850194505050602081019050610538565b5050509392505050565b5f82601f83011261059b5761059a610161565b5b81356105ab848260208601610501565b91505092915050565b5f606082840312156105c9576105c861009e565b5b6105d36060610110565b90505f6105e28482850161014d565b5f83015250602082013567ffffffffffffffff8111156106055761060461012a565b5b610611848285016101fc565b602083015250604082013567ffffffffffffffff8111156106355761063461012a565b5b61064184828501610587565b60408301525092915050565b5f6020828403121561066257610661610096565b5b5f82013567ffffffffffffffff81111561067f5761067e61009a565b5b61068b848285016105b4565b91505092915050565b61069d8161012e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6106d78383610694565b60208301905092915050565b5f602082019050919050565b5f6106f9826106a3565b61070381856106ad565b935061070e836106bd565b805f5b8381101561073e57815161072588826106cc565b9750610730836106e3565b925050600181019050610711565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61077d81610254565b82525050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6107a9816102ac565b82525050565b5f6107ba83836107a0565b60208301905092915050565b5f602082019050919050565b6107db81610783565b6107e5818461078d565b92506107f082610797565b805f5b8381101561082057815161080787826107af565b9650610812836107c6565b9250506001810190506107f3565b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61085a816103b4565b82525050565b5f61086b8383610851565b60208301905092915050565b5f602082019050919050565b5f61088d82610828565b6108978185610832565b93506108a283610842565b805f5b838110156108d25781516108b98882610860565b97506108c483610877565b9250506001810190506108a5565b5085935050505092915050565b5f608083015f8301516108f45f860182610774565b50602083015161090760208601826107d2565b506040830151848203606086015261091f8282610883565b9150508091505092915050565b5f61093783836108df565b905092915050565b5f602082019050919050565b5f6109558261074b565b61095f8185610755565b93508360208202850161097185610765565b805f5b858110156109ac578484038952815161098d858261092c565b94506109988361093f565b925060208a01995050600181019050610974565b50829750879550505050505092915050565b5f606083015f8301516109d35f860182610694565b50602083015184820360208601526109eb82826106ef565b91505060408301518482036040860152610a05828261094b565b9150508091505092915050565b5f6020820190508181035f830152610a2a81846109be565b90509291505056fea264697066735822122093989c185ced19ac413031c41f5829f7372fbdf036232e036a7610d4ecd2ed2264736f6c634300081d0033" # noqa: E501
7
+ TUPLE_CONTRACT_BYTECODE = "0x6080604052348015600e575f5ffd5b50610a688061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80638e1ae3c71461002d575b5f5ffd5b6100476004803603810190610042919061064d565b61005d565b6040516100549190610a12565b60405180910390f35b61006561006d565b819050919050565b60405180606001604052805f815260200160608152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100e8826100a2565b810181811067ffffffffffffffff82111715610107576101066100b2565b5b80604052505050565b5f61011961008d565b905061012582826100df565b919050565b5f5ffd5b5f819050919050565b6101408161012e565b811461014a575f5ffd5b50565b5f8135905061015b81610137565b92915050565b5f5ffd5b5f67ffffffffffffffff82111561017f5761017e6100b2565b5b602082029050602081019050919050565b5f5ffd5b5f6101a66101a184610165565b610110565b905080838252602082019050602084028301858111156101c9576101c8610190565b5b835b818110156101f257806101de888261014d565b8452602084019350506020810190506101cb565b5050509392505050565b5f82601f8301126102105761020f610161565b5b8135610220848260208601610194565b91505092915050565b5f67ffffffffffffffff821115610243576102426100b2565b5b602082029050602081019050919050565b5f819050919050565b61026681610254565b8114610270575f5ffd5b50565b5f813590506102818161025d565b92915050565b5f67ffffffffffffffff8211156102a1576102a06100b2565b5b602082029050919050565b5f8115159050919050565b6102c0816102ac565b81146102ca575f5ffd5b50565b5f813590506102db816102b7565b92915050565b5f6102f36102ee84610287565b610110565b9050806020840283018581111561030d5761030c610190565b5b835b81811015610336578061032288826102cd565b84526020840193505060208101905061030f565b5050509392505050565b5f82601f83011261035457610353610161565b5b60026103618482856102e1565b91505092915050565b5f67ffffffffffffffff821115610384576103836100b2565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103be82610395565b9050919050565b6103ce816103b4565b81146103d8575f5ffd5b50565b5f813590506103e9816103c5565b92915050565b5f6104016103fc8461036a565b610110565b9050808382526020820190506020840283018581111561042457610423610190565b5b835b8181101561044d578061043988826103db565b845260208401935050602081019050610426565b5050509392505050565b5f82601f83011261046b5761046a610161565b5b813561047b8482602086016103ef565b91505092915050565b5f608082840312156104995761049861009e565b5b6104a36060610110565b90505f6104b284828501610273565b5f8301525060206104c584828501610340565b602083015250606082013567ffffffffffffffff8111156104e9576104e861012a565b5b6104f584828501610457565b60408301525092915050565b5f61051361050e84610229565b610110565b9050808382526020820190506020840283018581111561053657610535610190565b5b835b8181101561057d57803567ffffffffffffffff81111561055b5761055a610161565b5b8086016105688982610484565b85526020850194505050602081019050610538565b5050509392505050565b5f82601f83011261059b5761059a610161565b5b81356105ab848260208601610501565b91505092915050565b5f606082840312156105c9576105c861009e565b5b6105d36060610110565b90505f6105e28482850161014d565b5f83015250602082013567ffffffffffffffff8111156106055761060461012a565b5b610611848285016101fc565b602083015250604082013567ffffffffffffffff8111156106355761063461012a565b5b61064184828501610587565b60408301525092915050565b5f6020828403121561066257610661610096565b5b5f82013567ffffffffffffffff81111561067f5761067e61009a565b5b61068b848285016105b4565b91505092915050565b61069d8161012e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6106d78383610694565b60208301905092915050565b5f602082019050919050565b5f6106f9826106a3565b61070381856106ad565b935061070e836106bd565b805f5b8381101561073e57815161072588826106cc565b9750610730836106e3565b925050600181019050610711565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61077d81610254565b82525050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6107a9816102ac565b82525050565b5f6107ba83836107a0565b60208301905092915050565b5f602082019050919050565b6107db81610783565b6107e5818461078d565b92506107f082610797565b805f5b8381101561082057815161080787826107af565b9650610812836107c6565b9250506001810190506107f3565b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61085a816103b4565b82525050565b5f61086b8383610851565b60208301905092915050565b5f602082019050919050565b5f61088d82610828565b6108978185610832565b93506108a283610842565b805f5b838110156108d25781516108b98882610860565b97506108c483610877565b9250506001810190506108a5565b5085935050505092915050565b5f608083015f8301516108f45f860182610774565b50602083015161090760208601826107d2565b506040830151848203606086015261091f8282610883565b9150508091505092915050565b5f61093783836108df565b905092915050565b5f602082019050919050565b5f6109558261074b565b61095f8185610755565b93508360208202850161097185610765565b805f5b858110156109ac578484038952815161098d858261092c565b94506109988361093f565b925060208a01995050600181019050610974565b50829750879550505050505092915050565b5f606083015f8301516109d35f860182610694565b50602083015184820360208601526109eb82826106ef565b91505060408301518482036040860152610a05828261094b565b9150508091505092915050565b5f6020820190508181035f830152610a2a81846109be565b90509291505056fea26469706673582212207c5620c2257d173ed894791417ffad7e98aad1aab11d2ec22b5148e5d77de0c464736f6c634300081e0033" # noqa: E501
8
+ TUPLE_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80638e1ae3c71461002d575b5f5ffd5b6100476004803603810190610042919061064d565b61005d565b6040516100549190610a12565b60405180910390f35b61006561006d565b819050919050565b60405180606001604052805f815260200160608152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100e8826100a2565b810181811067ffffffffffffffff82111715610107576101066100b2565b5b80604052505050565b5f61011961008d565b905061012582826100df565b919050565b5f5ffd5b5f819050919050565b6101408161012e565b811461014a575f5ffd5b50565b5f8135905061015b81610137565b92915050565b5f5ffd5b5f67ffffffffffffffff82111561017f5761017e6100b2565b5b602082029050602081019050919050565b5f5ffd5b5f6101a66101a184610165565b610110565b905080838252602082019050602084028301858111156101c9576101c8610190565b5b835b818110156101f257806101de888261014d565b8452602084019350506020810190506101cb565b5050509392505050565b5f82601f8301126102105761020f610161565b5b8135610220848260208601610194565b91505092915050565b5f67ffffffffffffffff821115610243576102426100b2565b5b602082029050602081019050919050565b5f819050919050565b61026681610254565b8114610270575f5ffd5b50565b5f813590506102818161025d565b92915050565b5f67ffffffffffffffff8211156102a1576102a06100b2565b5b602082029050919050565b5f8115159050919050565b6102c0816102ac565b81146102ca575f5ffd5b50565b5f813590506102db816102b7565b92915050565b5f6102f36102ee84610287565b610110565b9050806020840283018581111561030d5761030c610190565b5b835b81811015610336578061032288826102cd565b84526020840193505060208101905061030f565b5050509392505050565b5f82601f83011261035457610353610161565b5b60026103618482856102e1565b91505092915050565b5f67ffffffffffffffff821115610384576103836100b2565b5b602082029050602081019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103be82610395565b9050919050565b6103ce816103b4565b81146103d8575f5ffd5b50565b5f813590506103e9816103c5565b92915050565b5f6104016103fc8461036a565b610110565b9050808382526020820190506020840283018581111561042457610423610190565b5b835b8181101561044d578061043988826103db565b845260208401935050602081019050610426565b5050509392505050565b5f82601f83011261046b5761046a610161565b5b813561047b8482602086016103ef565b91505092915050565b5f608082840312156104995761049861009e565b5b6104a36060610110565b90505f6104b284828501610273565b5f8301525060206104c584828501610340565b602083015250606082013567ffffffffffffffff8111156104e9576104e861012a565b5b6104f584828501610457565b60408301525092915050565b5f61051361050e84610229565b610110565b9050808382526020820190506020840283018581111561053657610535610190565b5b835b8181101561057d57803567ffffffffffffffff81111561055b5761055a610161565b5b8086016105688982610484565b85526020850194505050602081019050610538565b5050509392505050565b5f82601f83011261059b5761059a610161565b5b81356105ab848260208601610501565b91505092915050565b5f606082840312156105c9576105c861009e565b5b6105d36060610110565b90505f6105e28482850161014d565b5f83015250602082013567ffffffffffffffff8111156106055761060461012a565b5b610611848285016101fc565b602083015250604082013567ffffffffffffffff8111156106355761063461012a565b5b61064184828501610587565b60408301525092915050565b5f6020828403121561066257610661610096565b5b5f82013567ffffffffffffffff81111561067f5761067e61009a565b5b61068b848285016105b4565b91505092915050565b61069d8161012e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6106d78383610694565b60208301905092915050565b5f602082019050919050565b5f6106f9826106a3565b61070381856106ad565b935061070e836106bd565b805f5b8381101561073e57815161072588826106cc565b9750610730836106e3565b925050600181019050610711565b5085935050505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61077d81610254565b82525050565b5f60029050919050565b5f81905092915050565b5f819050919050565b6107a9816102ac565b82525050565b5f6107ba83836107a0565b60208301905092915050565b5f602082019050919050565b6107db81610783565b6107e5818461078d565b92506107f082610797565b805f5b8381101561082057815161080787826107af565b9650610812836107c6565b9250506001810190506107f3565b505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61085a816103b4565b82525050565b5f61086b8383610851565b60208301905092915050565b5f602082019050919050565b5f61088d82610828565b6108978185610832565b93506108a283610842565b805f5b838110156108d25781516108b98882610860565b97506108c483610877565b9250506001810190506108a5565b5085935050505092915050565b5f608083015f8301516108f45f860182610774565b50602083015161090760208601826107d2565b506040830151848203606086015261091f8282610883565b9150508091505092915050565b5f61093783836108df565b905092915050565b5f602082019050919050565b5f6109558261074b565b61095f8185610755565b93508360208202850161097185610765565b805f5b858110156109ac578484038952815161098d858261092c565b94506109988361093f565b925060208a01995050600181019050610974565b50829750879550505050505092915050565b5f606083015f8301516109d35f860182610694565b50602083015184820360208601526109eb82826106ef565b91505060408301518482036040860152610a05828261094b565b9150508091505092915050565b5f6020820190508181035f830152610a2a81846109be565b90509291505056fea26469706673582212207c5620c2257d173ed894791417ffad7e98aad1aab11d2ec22b5148e5d77de0c464736f6c634300081e0033" # noqa: E501
9
9
  TUPLE_CONTRACT_ABI = [
10
10
  {
11
11
  "inputs": [
@@ -71,8 +71,8 @@ TUPLE_CONTRACT_DATA = {
71
71
 
72
72
 
73
73
  # source: web3/_utils/contract_sources/TupleContracts.sol:NestedTupleContract
74
- NESTED_TUPLE_CONTRACT_BYTECODE = "0x6080604052348015600e575f5ffd5b5061067b8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80632655aef11461002d575b5f5ffd5b610047600480360381019061004291906103f1565b61005d565b6040516100549190610625565b60405180910390f35b61006561006d565b819050919050565b6040518060200160405280606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c610080565b905061011882826100d2565b919050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82111561013f5761013e6100a5565b5b602082029050602081019050919050565b5f5ffd5b5f67ffffffffffffffff82111561016e5761016d6100a5565b5b602082029050602081019050919050565b5f819050919050565b6101918161017f565b811461019b575f5ffd5b50565b5f813590506101ac81610188565b92915050565b5f604082840312156101c7576101c6610091565b5b6101d16040610103565b90505f6101e08482850161019e565b5f8301525060206101f38482850161019e565b60208301525092915050565b5f61021161020c84610154565b610103565b9050808382526020820190506040840283018581111561023457610233610150565b5b835b8181101561025d578061024988826101b2565b845260208401935050604081019050610236565b5050509392505050565b5f82601f83011261027b5761027a610121565b5b813561028b8482602086016101ff565b91505092915050565b5f602082840312156102a9576102a8610091565b5b6102b36020610103565b90505f82013567ffffffffffffffff8111156102d2576102d161011d565b5b6102de84828501610267565b5f8301525092915050565b5f6102fb6102f684610125565b610103565b9050808382526020820190506020840283018581111561031e5761031d610150565b5b835b8181101561036557803567ffffffffffffffff81111561034357610342610121565b5b8086016103508982610294565b85526020850194505050602081019050610320565b5050509392505050565b5f82601f83011261038357610382610121565b5b81356103938482602086016102e9565b91505092915050565b5f602082840312156103b1576103b0610091565b5b6103bb6020610103565b90505f82013567ffffffffffffffff8111156103da576103d961011d565b5b6103e68482850161036f565b5f8301525092915050565b5f6020828403121561040657610405610089565b5b5f82013567ffffffffffffffff8111156104235761042261008d565b5b61042f8482850161039c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6104938161017f565b82525050565b604082015f8201516104ad5f85018261048a565b5060208201516104c0602085018261048a565b50505050565b5f6104d18383610499565b60408301905092915050565b5f602082019050919050565b5f6104f382610461565b6104fd818561046b565b93506105088361047b565b805f5b8381101561053857815161051f88826104c6565b975061052a836104dd565b92505060018101905061050b565b5085935050505092915050565b5f602083015f8301518482035f86015261055f82826104e9565b9150508091505092915050565b5f6105778383610545565b905092915050565b5f602082019050919050565b5f61059582610438565b61059f8185610442565b9350836020820285016105b185610452565b805f5b858110156105ec57848403895281516105cd858261056c565b94506105d88361057f565b925060208a019950506001810190506105b4565b50829750879550505050505092915050565b5f602083015f8301518482035f860152610618828261058b565b9150508091505092915050565b5f6020820190508181035f83015261063d81846105fe565b90509291505056fea2646970667358221220ff697eed38af67c30b96e9fc9f252d47c047bb5fec7e88738ca25e9c2bdb661364736f6c634300081d0033" # noqa: E501
75
- NESTED_TUPLE_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80632655aef11461002d575b5f5ffd5b610047600480360381019061004291906103f1565b61005d565b6040516100549190610625565b60405180910390f35b61006561006d565b819050919050565b6040518060200160405280606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c610080565b905061011882826100d2565b919050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82111561013f5761013e6100a5565b5b602082029050602081019050919050565b5f5ffd5b5f67ffffffffffffffff82111561016e5761016d6100a5565b5b602082029050602081019050919050565b5f819050919050565b6101918161017f565b811461019b575f5ffd5b50565b5f813590506101ac81610188565b92915050565b5f604082840312156101c7576101c6610091565b5b6101d16040610103565b90505f6101e08482850161019e565b5f8301525060206101f38482850161019e565b60208301525092915050565b5f61021161020c84610154565b610103565b9050808382526020820190506040840283018581111561023457610233610150565b5b835b8181101561025d578061024988826101b2565b845260208401935050604081019050610236565b5050509392505050565b5f82601f83011261027b5761027a610121565b5b813561028b8482602086016101ff565b91505092915050565b5f602082840312156102a9576102a8610091565b5b6102b36020610103565b90505f82013567ffffffffffffffff8111156102d2576102d161011d565b5b6102de84828501610267565b5f8301525092915050565b5f6102fb6102f684610125565b610103565b9050808382526020820190506020840283018581111561031e5761031d610150565b5b835b8181101561036557803567ffffffffffffffff81111561034357610342610121565b5b8086016103508982610294565b85526020850194505050602081019050610320565b5050509392505050565b5f82601f83011261038357610382610121565b5b81356103938482602086016102e9565b91505092915050565b5f602082840312156103b1576103b0610091565b5b6103bb6020610103565b90505f82013567ffffffffffffffff8111156103da576103d961011d565b5b6103e68482850161036f565b5f8301525092915050565b5f6020828403121561040657610405610089565b5b5f82013567ffffffffffffffff8111156104235761042261008d565b5b61042f8482850161039c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6104938161017f565b82525050565b604082015f8201516104ad5f85018261048a565b5060208201516104c0602085018261048a565b50505050565b5f6104d18383610499565b60408301905092915050565b5f602082019050919050565b5f6104f382610461565b6104fd818561046b565b93506105088361047b565b805f5b8381101561053857815161051f88826104c6565b975061052a836104dd565b92505060018101905061050b565b5085935050505092915050565b5f602083015f8301518482035f86015261055f82826104e9565b9150508091505092915050565b5f6105778383610545565b905092915050565b5f602082019050919050565b5f61059582610438565b61059f8185610442565b9350836020820285016105b185610452565b805f5b858110156105ec57848403895281516105cd858261056c565b94506105d88361057f565b925060208a019950506001810190506105b4565b50829750879550505050505092915050565b5f602083015f8301518482035f860152610618828261058b565b9150508091505092915050565b5f6020820190508181035f83015261063d81846105fe565b90509291505056fea2646970667358221220ff697eed38af67c30b96e9fc9f252d47c047bb5fec7e88738ca25e9c2bdb661364736f6c634300081d0033" # noqa: E501
74
+ NESTED_TUPLE_CONTRACT_BYTECODE = "0x6080604052348015600e575f5ffd5b5061067b8061001c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80632655aef11461002d575b5f5ffd5b610047600480360381019061004291906103f1565b61005d565b6040516100549190610625565b60405180910390f35b61006561006d565b819050919050565b6040518060200160405280606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c610080565b905061011882826100d2565b919050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82111561013f5761013e6100a5565b5b602082029050602081019050919050565b5f5ffd5b5f67ffffffffffffffff82111561016e5761016d6100a5565b5b602082029050602081019050919050565b5f819050919050565b6101918161017f565b811461019b575f5ffd5b50565b5f813590506101ac81610188565b92915050565b5f604082840312156101c7576101c6610091565b5b6101d16040610103565b90505f6101e08482850161019e565b5f8301525060206101f38482850161019e565b60208301525092915050565b5f61021161020c84610154565b610103565b9050808382526020820190506040840283018581111561023457610233610150565b5b835b8181101561025d578061024988826101b2565b845260208401935050604081019050610236565b5050509392505050565b5f82601f83011261027b5761027a610121565b5b813561028b8482602086016101ff565b91505092915050565b5f602082840312156102a9576102a8610091565b5b6102b36020610103565b90505f82013567ffffffffffffffff8111156102d2576102d161011d565b5b6102de84828501610267565b5f8301525092915050565b5f6102fb6102f684610125565b610103565b9050808382526020820190506020840283018581111561031e5761031d610150565b5b835b8181101561036557803567ffffffffffffffff81111561034357610342610121565b5b8086016103508982610294565b85526020850194505050602081019050610320565b5050509392505050565b5f82601f83011261038357610382610121565b5b81356103938482602086016102e9565b91505092915050565b5f602082840312156103b1576103b0610091565b5b6103bb6020610103565b90505f82013567ffffffffffffffff8111156103da576103d961011d565b5b6103e68482850161036f565b5f8301525092915050565b5f6020828403121561040657610405610089565b5b5f82013567ffffffffffffffff8111156104235761042261008d565b5b61042f8482850161039c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6104938161017f565b82525050565b604082015f8201516104ad5f85018261048a565b5060208201516104c0602085018261048a565b50505050565b5f6104d18383610499565b60408301905092915050565b5f602082019050919050565b5f6104f382610461565b6104fd818561046b565b93506105088361047b565b805f5b8381101561053857815161051f88826104c6565b975061052a836104dd565b92505060018101905061050b565b5085935050505092915050565b5f602083015f8301518482035f86015261055f82826104e9565b9150508091505092915050565b5f6105778383610545565b905092915050565b5f602082019050919050565b5f61059582610438565b61059f8185610442565b9350836020820285016105b185610452565b805f5b858110156105ec57848403895281516105cd858261056c565b94506105d88361057f565b925060208a019950506001810190506105b4565b50829750879550505050505092915050565b5f602083015f8301518482035f860152610618828261058b565b9150508091505092915050565b5f6020820190508181035f83015261063d81846105fe565b90509291505056fea2646970667358221220e9a46dd271224211ac317ab5deb76259a8309e527c859b3d977cfc261a3780db64736f6c634300081e0033" # noqa: E501
75
+ NESTED_TUPLE_CONTRACT_RUNTIME = "0x608060405234801561000f575f5ffd5b5060043610610029575f3560e01c80632655aef11461002d575b5f5ffd5b610047600480360381019061004291906103f1565b61005d565b6040516100549190610625565b60405180910390f35b61006561006d565b819050919050565b6040518060200160405280606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6100db82610095565b810181811067ffffffffffffffff821117156100fa576100f96100a5565b5b80604052505050565b5f61010c610080565b905061011882826100d2565b919050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82111561013f5761013e6100a5565b5b602082029050602081019050919050565b5f5ffd5b5f67ffffffffffffffff82111561016e5761016d6100a5565b5b602082029050602081019050919050565b5f819050919050565b6101918161017f565b811461019b575f5ffd5b50565b5f813590506101ac81610188565b92915050565b5f604082840312156101c7576101c6610091565b5b6101d16040610103565b90505f6101e08482850161019e565b5f8301525060206101f38482850161019e565b60208301525092915050565b5f61021161020c84610154565b610103565b9050808382526020820190506040840283018581111561023457610233610150565b5b835b8181101561025d578061024988826101b2565b845260208401935050604081019050610236565b5050509392505050565b5f82601f83011261027b5761027a610121565b5b813561028b8482602086016101ff565b91505092915050565b5f602082840312156102a9576102a8610091565b5b6102b36020610103565b90505f82013567ffffffffffffffff8111156102d2576102d161011d565b5b6102de84828501610267565b5f8301525092915050565b5f6102fb6102f684610125565b610103565b9050808382526020820190506020840283018581111561031e5761031d610150565b5b835b8181101561036557803567ffffffffffffffff81111561034357610342610121565b5b8086016103508982610294565b85526020850194505050602081019050610320565b5050509392505050565b5f82601f83011261038357610382610121565b5b81356103938482602086016102e9565b91505092915050565b5f602082840312156103b1576103b0610091565b5b6103bb6020610103565b90505f82013567ffffffffffffffff8111156103da576103d961011d565b5b6103e68482850161036f565b5f8301525092915050565b5f6020828403121561040657610405610089565b5b5f82013567ffffffffffffffff8111156104235761042261008d565b5b61042f8482850161039c565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6104938161017f565b82525050565b604082015f8201516104ad5f85018261048a565b5060208201516104c0602085018261048a565b50505050565b5f6104d18383610499565b60408301905092915050565b5f602082019050919050565b5f6104f382610461565b6104fd818561046b565b93506105088361047b565b805f5b8381101561053857815161051f88826104c6565b975061052a836104dd565b92505060018101905061050b565b5085935050505092915050565b5f602083015f8301518482035f86015261055f82826104e9565b9150508091505092915050565b5f6105778383610545565b905092915050565b5f602082019050919050565b5f61059582610438565b61059f8185610442565b9350836020820285016105b185610452565b805f5b858110156105ec57848403895281516105cd858261056c565b94506105d88361057f565b925060208a019950506001810190506105b4565b50829750879550505050505092915050565b5f602083015f8301518482035f860152610618828261058b565b9150508091505092915050565b5f6020820190508181035f83015261063d81846105fe565b90509291505056fea2646970667358221220e9a46dd271224211ac317ab5deb76259a8309e527c859b3d977cfc261a3780db64736f6c634300081e0033" # noqa: E501
76
76
  NESTED_TUPLE_CONTRACT_ABI = [
77
77
  {
78
78
  "inputs": [
web3/_utils/decorators.py CHANGED
@@ -43,7 +43,7 @@ def deprecated_for(replace_message: str) -> Callable[..., Any]:
43
43
  """
44
44
  Decorate a deprecated function, with info about what to use instead, like:
45
45
 
46
- @deprecated_for("to_bytes()")
46
+ @deprecated_for("use to_bytes() instead")
47
47
  def toAscii(arg):
48
48
  ...
49
49
  """
@@ -52,7 +52,7 @@ def deprecated_for(replace_message: str) -> Callable[..., Any]:
52
52
  @functools.wraps(to_wrap)
53
53
  def wrapper(*args: Any, **kwargs: Any) -> Callable[..., Any]:
54
54
  warnings.warn(
55
- f"{to_wrap.__name__} is deprecated in favor of {replace_message}",
55
+ f"{to_wrap.__name__} is deprecated: {replace_message}",
56
56
  category=DeprecationWarning,
57
57
  stacklevel=2,
58
58
  )
web3/_utils/encoding.py CHANGED
@@ -36,6 +36,9 @@ from eth_utils.toolz import (
36
36
  from hexbytes import (
37
37
  HexBytes,
38
38
  )
39
+ from pydantic import (
40
+ BaseModel,
41
+ )
39
42
 
40
43
  from web3._utils.abi import (
41
44
  is_address_type,
@@ -299,6 +302,11 @@ class Web3JsonEncoder(json.JSONEncoder):
299
302
  return obj.__dict__
300
303
  elif isinstance(obj, (HexBytes, bytes)):
301
304
  return to_hex(obj)
305
+ elif isinstance(obj, BaseModel):
306
+ # TODO: For now we can assume all BaseModel objects behave this way, but
307
+ # internally we will start to use the CamelModel from eth-utils. Perhaps
308
+ # we should check for that type instead.
309
+ return obj.model_dump(by_alias=True)
302
310
  return json.JSONEncoder.default(self, obj)
303
311
 
304
312
 
web3/_utils/ens.py CHANGED
@@ -65,13 +65,21 @@ class StaticENS:
65
65
  return self.registry.get(name, None)
66
66
 
67
67
 
68
+ class AsyncStaticENS:
69
+ def __init__(self, name_addr_pairs: Dict[str, ChecksumAddress]) -> None:
70
+ self.registry = dict(name_addr_pairs)
71
+
72
+ async def address(self, name: str) -> ChecksumAddress:
73
+ return self.registry.get(name, None)
74
+
75
+
68
76
  @contextmanager
69
77
  def ens_addresses(
70
78
  w3: Union["Web3", "AsyncWeb3"], name_addr_pairs: Dict[str, ChecksumAddress]
71
79
  ) -> Iterator[None]:
72
80
  original_ens = w3.ens
73
81
  if w3.provider.is_async:
74
- w3.ens = cast(AsyncENS, StaticENS(name_addr_pairs))
82
+ w3.ens = cast(AsyncENS, AsyncStaticENS(name_addr_pairs))
75
83
  else:
76
84
  w3.ens = cast(ENS, StaticENS(name_addr_pairs))
77
85
  yield
@@ -8,6 +8,7 @@ from eth_utils import (
8
8
  )
9
9
 
10
10
  from web3.exceptions import (
11
+ BlockNotFound,
11
12
  ContractCustomError,
12
13
  ContractLogicError,
13
14
  ContractPanicError,
@@ -185,3 +186,19 @@ def raise_transaction_indexing_error_if_indexing(response: RPCResponse) -> RPCRe
185
186
  raise TransactionIndexingInProgress(message)
186
187
 
187
188
  return response
189
+
190
+
191
+ def raise_block_not_found_on_error(response: RPCResponse) -> RPCResponse:
192
+ """
193
+ Raise ``BlockNotFound`` on specific error message(s).
194
+ """
195
+ error = response.get("error")
196
+ if not isinstance(error, str) and error is not None:
197
+ message = error.get("message")
198
+ if message is not None:
199
+ if "not found" in message.lower() and any(
200
+ key in message.lower() for key in ("block", "header")
201
+ ):
202
+ raise BlockNotFound(message)
203
+
204
+ return response
web3/_utils/filters.py CHANGED
@@ -8,6 +8,7 @@ from typing import (
8
8
  List,
9
9
  Optional,
10
10
  Sequence,
11
+ Set,
11
12
  Tuple,
12
13
  Union,
13
14
  )
@@ -26,7 +27,6 @@ from eth_typing import (
26
27
  )
27
28
  from eth_utils import (
28
29
  is_hex,
29
- is_list_like,
30
30
  is_string,
31
31
  is_text,
32
32
  )
@@ -67,15 +67,48 @@ if TYPE_CHECKING:
67
67
  from web3.eth import Eth # noqa: F401
68
68
 
69
69
 
70
+ def _sanitize_addresses(
71
+ *address: Union[ChecksumAddress, List[ChecksumAddress]],
72
+ ) -> Union[ChecksumAddress, List[ChecksumAddress]]:
73
+ """
74
+ Validates an address or list of addresses and returns a single
75
+ ChecksumAddress or a list of ChecksumAddresses.
76
+ Raises Web3ValueError if the address is not valid.
77
+
78
+ :param address: A single address or a list of addresses.
79
+ :return: A list of ChecksumAddress.
80
+ """
81
+ address_set: Set[ChecksumAddress] = set()
82
+ for arg in address:
83
+ if not arg:
84
+ continue
85
+ elif isinstance(arg, str) or isinstance(arg, bytes):
86
+ address_set.add(arg)
87
+ elif isinstance(arg, list):
88
+ address_set.update(arg)
89
+ else:
90
+ raise Web3ValueError(
91
+ f"Unsupported type for `address` parameter: {type(address)}"
92
+ )
93
+
94
+ if not address_set:
95
+ return []
96
+ else:
97
+ for addr in address_set:
98
+ validate_address(addr)
99
+
100
+ return list(address_set) if len(address_set) > 1 else address_set.pop()
101
+
102
+
70
103
  def construct_event_filter_params(
71
104
  event_abi: ABIEvent,
72
105
  abi_codec: ABICodec,
73
- contract_address: Optional[ChecksumAddress] = None,
106
+ contract_address: Optional[Union[ChecksumAddress, List[ChecksumAddress]]] = None,
74
107
  argument_filters: Optional[Dict[str, Any]] = None,
75
108
  topics: Optional[Sequence[HexStr]] = None,
76
109
  from_block: Optional[BlockIdentifier] = None,
77
110
  to_block: Optional[BlockIdentifier] = None,
78
- address: Optional[ChecksumAddress] = None,
111
+ address: Optional[Union[ChecksumAddress, List[ChecksumAddress]]] = None,
79
112
  ) -> Tuple[List[List[Optional[HexStr]]], FilterParams]:
80
113
  filter_params: FilterParams = {}
81
114
  topic_set: Sequence[HexStr] = construct_event_topic_set(
@@ -92,31 +125,9 @@ def construct_event_filter_params(
92
125
 
93
126
  filter_params["topics"] = topic_set
94
127
 
95
- if address and contract_address:
96
- if is_list_like(address):
97
- filter_params["address"] = [address] + [contract_address]
98
- elif is_string(address):
99
- filter_params["address"] = (
100
- [address, contract_address]
101
- if address != contract_address
102
- else [address]
103
- )
104
- else:
105
- raise Web3ValueError(
106
- f"Unsupported type for `address` parameter: {type(address)}"
107
- )
108
- elif address:
109
- filter_params["address"] = address
110
- elif contract_address:
111
- filter_params["address"] = contract_address
112
-
113
- if "address" not in filter_params:
114
- pass
115
- elif is_list_like(filter_params["address"]):
116
- for addr in filter_params["address"]:
117
- validate_address(addr)
118
- else:
119
- validate_address(filter_params["address"])
128
+ sanitized_addresses = _sanitize_addresses(address, contract_address)
129
+ if sanitized_addresses:
130
+ filter_params["address"] = sanitized_addresses
120
131
 
121
132
  if from_block is not None:
122
133
  filter_params["fromBlock"] = from_block
@@ -47,11 +47,15 @@ from eth_utils.toolz import (
47
47
  from hexbytes import (
48
48
  HexBytes,
49
49
  )
50
+ from pydantic import (
51
+ BaseModel,
52
+ )
50
53
 
51
54
  from web3._utils.abi import (
52
55
  is_length,
53
56
  )
54
57
  from web3._utils.error_formatters_utils import (
58
+ raise_block_not_found_on_error,
55
59
  raise_contract_logic_error_on_revert,
56
60
  raise_transaction_indexing_error_if_indexing,
57
61
  )
@@ -161,6 +165,12 @@ def type_aware_apply_formatters_to_dict(
161
165
  """
162
166
  Preserve ``AttributeDict`` types if original ``value`` was an ``AttributeDict``.
163
167
  """
168
+ # TODO: In v8, Use eth-utils 5.3.0 as lower pin where ``apply_formatters_to_dict``
169
+ # already handles the CamelModel case, rather than generalizing to all BaseModel
170
+ # instances.
171
+ if isinstance(value, BaseModel):
172
+ value = value.model_dump(by_alias=True)
173
+
164
174
  formatted_dict: Dict[str, Any] = apply_formatters_to_dict(formatters, dict(value))
165
175
  return (
166
176
  AttributeDict.recursive(formatted_dict)
@@ -177,6 +187,9 @@ def type_aware_apply_formatters_to_dict_keys_and_values(
177
187
  """
178
188
  Preserve ``AttributeDict`` types if original ``value`` was an ``AttributeDict``.
179
189
  """
190
+ if isinstance(dict_like_object, BaseModel):
191
+ dict_like_object = dict_like_object.model_dump(by_alias=True)
192
+
180
193
  formatted_dict = {
181
194
  key_formatters(k): value_formatters(v) for k, v in dict_like_object.items()
182
195
  }
@@ -223,6 +236,22 @@ ACCESS_LIST_RESPONSE_FORMATTER = type_aware_apply_formatters_to_dict(
223
236
  }
224
237
  )
225
238
 
239
+ AUTH_LIST_RESULT_FORMATTER = apply_formatter_if(
240
+ is_not_null,
241
+ apply_formatter_to_array(
242
+ type_aware_apply_formatters_to_dict(
243
+ {
244
+ "chainId": to_integer_if_hex,
245
+ "address": to_checksum_address,
246
+ "nonce": to_integer_if_hex,
247
+ "yParity": to_integer_if_hex,
248
+ "r": to_hexbytes(32, variable_length=True),
249
+ "s": to_hexbytes(32, variable_length=True),
250
+ }
251
+ ),
252
+ ),
253
+ )
254
+
226
255
  TRANSACTION_RESULT_FORMATTERS = {
227
256
  "blockHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
228
257
  "blockNumber": apply_formatter_if(is_not_null, to_integer_if_hex),
@@ -255,6 +284,7 @@ TRANSACTION_RESULT_FORMATTERS = {
255
284
  "blobVersionedHashes": apply_formatter_if(
256
285
  is_not_null, apply_formatter_to_array(to_hexbytes(32))
257
286
  ),
287
+ "authorizationList": AUTH_LIST_RESULT_FORMATTER,
258
288
  }
259
289
 
260
290
 
@@ -332,6 +362,7 @@ BLOCK_REQUEST_FORMATTERS = {
332
362
  "transactionsRoot": to_hex_if_bytes,
333
363
  "withdrawalsRoot": to_hex_if_bytes,
334
364
  "parentBeaconBlockRoot": to_hex_if_bytes,
365
+ "requestsHash": to_hex_if_bytes,
335
366
  }
336
367
  block_request_formatter = type_aware_apply_formatters_to_dict(BLOCK_REQUEST_FORMATTERS)
337
368
 
@@ -374,6 +405,7 @@ BLOCK_RESULT_FORMATTERS = {
374
405
  "blobGasUsed": to_integer_if_hex,
375
406
  "excessBlobGas": to_integer_if_hex,
376
407
  "parentBeaconBlockRoot": apply_formatter_if(is_not_null, to_hexbytes(32)),
408
+ "requestsHash": apply_formatter_if(is_not_null, to_hexbytes(32)),
377
409
  }
378
410
  block_result_formatter = type_aware_apply_formatters_to_dict(BLOCK_RESULT_FORMATTERS)
379
411
 
@@ -466,6 +498,22 @@ filter_result_formatter = apply_one_of_formatters(
466
498
  )
467
499
  )
468
500
 
501
+ AUTH_LIST_REQUEST_FORMATTER = apply_formatter_if(
502
+ is_not_null,
503
+ apply_formatter_to_array(
504
+ type_aware_apply_formatters_to_dict(
505
+ {
506
+ "chainId": to_hex_if_integer,
507
+ "address": to_checksum_address,
508
+ "nonce": to_hex_if_integer,
509
+ "yParity": to_hex_if_integer,
510
+ "r": to_hex_if_integer,
511
+ "s": to_hex_if_integer,
512
+ }
513
+ ),
514
+ ),
515
+ )
516
+
469
517
  TRANSACTION_REQUEST_FORMATTER = {
470
518
  "from": to_checksum_address,
471
519
  "to": apply_formatter_if(is_address, to_checksum_address),
@@ -477,12 +525,13 @@ TRANSACTION_REQUEST_FORMATTER = {
477
525
  "maxFeePerGas": to_hex_if_integer,
478
526
  "maxPriorityFeePerGas": to_hex_if_integer,
479
527
  "chainId": to_hex_if_integer,
528
+ "authorizationList": AUTH_LIST_REQUEST_FORMATTER,
480
529
  }
481
530
  transaction_request_formatter = type_aware_apply_formatters_to_dict(
482
531
  TRANSACTION_REQUEST_FORMATTER
483
532
  )
484
533
 
485
- ACCESS_LIST_REQUEST_FORMATTER = type_aware_apply_formatters_to_dict(
534
+ ETH_CALL_TX_FORMATTER = type_aware_apply_formatters_to_dict(
486
535
  {
487
536
  "accessList": apply_formatter_if(
488
537
  is_not_null,
@@ -494,10 +543,11 @@ ACCESS_LIST_REQUEST_FORMATTER = type_aware_apply_formatters_to_dict(
494
543
  )
495
544
  ),
496
545
  ),
546
+ "authorizationList": AUTH_LIST_REQUEST_FORMATTER,
497
547
  }
498
548
  )
499
549
  transaction_param_formatter = compose(
500
- ACCESS_LIST_REQUEST_FORMATTER,
550
+ ETH_CALL_TX_FORMATTER,
501
551
  remove_key_if("to", lambda txn: txn["to"] in {"", b"", None}),
502
552
  remove_key_if("gasPrice", lambda txn: txn["gasPrice"] in {"", b"", None}),
503
553
  )
@@ -1043,6 +1093,7 @@ ERROR_FORMATTERS: Dict[RPCEndpoint, Callable[..., Any]] = {
1043
1093
  RPC.eth_estimateGas: raise_contract_logic_error_on_revert,
1044
1094
  RPC.eth_call: raise_contract_logic_error_on_revert,
1045
1095
  RPC.eth_getTransactionReceipt: raise_transaction_indexing_error_if_indexing,
1096
+ RPC.eth_getBlockReceipts: raise_block_not_found_on_error,
1046
1097
  }
1047
1098
 
1048
1099
 
@@ -1057,7 +1108,7 @@ def combine_formatters(
1057
1108
 
1058
1109
 
1059
1110
  def get_request_formatters(
1060
- method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]]
1111
+ method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]],
1061
1112
  ) -> Dict[str, Callable[..., Any]]:
1062
1113
  request_formatter_maps = (
1063
1114
  ABI_REQUEST_FORMATTERS,
@@ -1083,7 +1134,7 @@ def raise_block_not_found(params: Tuple[BlockIdentifier, bool]) -> NoReturn:
1083
1134
 
1084
1135
 
1085
1136
  def raise_block_not_found_for_uncle_at_index(
1086
- params: Tuple[BlockIdentifier, Union[HexStr, int]]
1137
+ params: Tuple[BlockIdentifier, Union[HexStr, int]],
1087
1138
  ) -> NoReturn:
1088
1139
  try:
1089
1140
  block_identifier = params[0]
@@ -1109,7 +1160,7 @@ def raise_transaction_not_found(params: Tuple[_Hash32]) -> NoReturn:
1109
1160
 
1110
1161
 
1111
1162
  def raise_transaction_not_found_with_index(
1112
- params: Tuple[BlockIdentifier, int]
1163
+ params: Tuple[BlockIdentifier, int],
1113
1164
  ) -> NoReturn:
1114
1165
  try:
1115
1166
  block_identifier = params[0]
@@ -1213,7 +1264,7 @@ def get_result_formatters(
1213
1264
 
1214
1265
 
1215
1266
  def get_error_formatters(
1216
- method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]]
1267
+ method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]],
1217
1268
  ) -> Callable[..., Any]:
1218
1269
  # Note error formatters work on the full response dict
1219
1270
  error_formatter_maps = (ERROR_FORMATTERS,)
@@ -1223,7 +1274,7 @@ def get_error_formatters(
1223
1274
 
1224
1275
 
1225
1276
  def get_null_result_formatters(
1226
- method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]]
1277
+ method_name: Union[RPCEndpoint, Callable[..., RPCEndpoint]],
1227
1278
  ) -> Callable[..., Any]:
1228
1279
  formatters = combine_formatters((NULL_RESULT_FORMATTERS,), method_name)
1229
1280