From bca88ec032dbcf02eb05c688ec8cb0f26231b64e Mon Sep 17 00:00:00 2001 From: refcell Date: Mon, 29 Jul 2024 18:23:48 -0400 Subject: [PATCH] feat(examples): multicall3 preinstall --- bin/opt8n/src/main.rs | 13 +-- examples/exec-scripts/Justfile | 10 +- .../script/Multicall3Preinstall.s.sol | 52 ++++++++++ .../execution/GovernanceTokenPrecompile.json | 94 +++++++++++++++++++ fixtures/execution/Multicall3Preinstall.json | 67 +++++++++++++ fixtures/execution/Weth9Precompile.json | 58 ++++++------ fixtures/execution/basic00.json | 68 -------------- 7 files changed, 257 insertions(+), 105 deletions(-) create mode 100644 examples/exec-scripts/script/Multicall3Preinstall.s.sol create mode 100644 fixtures/execution/GovernanceTokenPrecompile.json create mode 100644 fixtures/execution/Multicall3Preinstall.json delete mode 100644 fixtures/execution/basic00.json diff --git a/bin/opt8n/src/main.rs b/bin/opt8n/src/main.rs index 712d110..b9b8f05 100644 --- a/bin/opt8n/src/main.rs +++ b/bin/opt8n/src/main.rs @@ -13,6 +13,8 @@ use opt8n::Opt8n; pub struct Args { #[command(subcommand)] pub command: Commands, + #[command(flatten)] + pub node_args: NodeArgs, } #[derive(Parser, Clone, Debug)] @@ -44,11 +46,9 @@ impl Commands { #[derive(Parser, Clone, Debug)] pub struct Opt8nArgs { - #[command(flatten)] - pub node_args: NodeArgs, - #[clap(short, long, help = "Output file for the execution test fixture")] + #[clap(long, help = "Output file for the execution test fixture")] pub output: PathBuf, - #[clap(short, long, help = "Path to genesis state")] + #[clap(long, help = "Path to genesis state")] pub genesis: Option, } @@ -56,15 +56,16 @@ pub struct Opt8nArgs { async fn main() -> eyre::Result<()> { color_eyre::install()?; let args = Args::parse(); + let node_args = args.node_args.clone(); let opt8n_args = args.command.get_opt8n_args(); - let evm_options = &opt8n_args.node_args.evm_opts; + let evm_options = node_args.evm_opts.clone(); let forking = evm_options.fork_url.as_ref().map(|fork_url| Forking { json_rpc_url: Some(fork_url.url.clone()), block_number: evm_options.fork_block_number, }); - let node_config = opt8n_args.node_args.clone().into_node_config(); + let node_config = node_args.clone().into_node_config(); let mut opt8n = Opt8n::new( Some(node_config), forking, diff --git a/examples/exec-scripts/Justfile b/examples/exec-scripts/Justfile index 1433c4d..e62c6e9 100644 --- a/examples/exec-scripts/Justfile +++ b/examples/exec-scripts/Justfile @@ -15,11 +15,17 @@ forge-updates: # Generates all execution test fixtures for scripts in this project gen fork_url: install-opt8n forge-updates just gen-weth9 {{fork_url}} + just gen-governance-token {{fork_url}} + just gen-multicall3 {{fork_url}} # Generates the execution test fixture for the weth9 precompile script gen-weth9 fork_url: install-opt8n forge-updates - opt8n --output ../../fixtures/execution/Weth9Precompile.json --fork-url {{fork_url}} script Weth9Precompile + opt8n --fork-url {{fork_url}} script --output ../../fixtures/execution/Weth9Precompile.json Weth9Precompile # Generates the execution test fixture for the governance token precompile script gen-governance-token fork_url: install-opt8n forge-updates - opt8n --output ../../fixtures/execution/GovernanceTokenPrecompile.json --fork-url {{fork_url}} script GovernanceTokenPrecompile + opt8n --fork-url {{fork_url}} script --output ../../fixtures/execution/GovernanceTokenPrecompile.json GovernanceTokenPrecompile + +# Generates the execution test fixture for the multicall3 preinstall script +gen-multicall3 fork_url: install-opt8n forge-updates + opt8n --fork-url {{fork_url}} script --output ../../fixtures/execution/Multicall3Preinstall.json Multicall3Preinstall diff --git a/examples/exec-scripts/script/Multicall3Preinstall.s.sol b/examples/exec-scripts/script/Multicall3Preinstall.s.sol new file mode 100644 index 0000000..38cc499 --- /dev/null +++ b/examples/exec-scripts/script/Multicall3Preinstall.s.sol @@ -0,0 +1,52 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.13; + +import {Script} from "forge-std/Script.sol"; +import { StdAssertions } from "forge-std/StdAssertions.sol"; + +interface Multicall3 { + struct Call3 { + address target; + bool allowFailure; + bytes callData; + } + + struct Result { + bool success; + bytes returnData; + } + + function aggregate3(Call3[] calldata calls) external payable returns (Result[] memory returnData); +} + +interface GovernanceToken { + function name() external view returns (string memory); + function approve(address spender, uint256 amount) external returns (bool); + function allowance(address owner, address spender) external view returns (uint256); +} + +contract Multicall3Preinstall is Script, StdAssertions { + Multicall3 constant MULTICALL = Multicall3(address(0xcA11bde05977b3631167028862bE2a173976CA11)); + GovernanceToken constant TOKEN = GovernanceToken(address(0x4200000000000000000000000000000000000042)); + + function setUp() public {} + + function run() public { + Multicall3.Call3[] memory calls = new Multicall3.Call3[](2); + calls[0] = Multicall3.Call3({ + target: address(TOKEN), + allowFailure: false, + callData: abi.encodeWithSelector(TOKEN.name.selector) + }); + calls[1] = Multicall3.Call3({ + target: address(TOKEN), + allowFailure: false, + callData: abi.encodeWithSelector(TOKEN.allowance.selector, msg.sender, address(0xdeadeee)) + }); + + vm.broadcast(); + Multicall3.Result[] memory results = MULTICALL.aggregate3(calls); + assertEq(string(abi.decode(results[0].returnData, (string))), "Optimism"); + assertEq(abi.decode(results[1].returnData, (uint256)), 0); + } +} diff --git a/fixtures/execution/GovernanceTokenPrecompile.json b/fixtures/execution/GovernanceTokenPrecompile.json new file mode 100644 index 0000000..f260973 --- /dev/null +++ b/fixtures/execution/GovernanceTokenPrecompile.json @@ -0,0 +1,94 @@ +{ + "env": { + "currentCoinbase": "0x0000000000000000000000000000000000000000", + "currentDifficulty": "0xb2218ee88649587d0b873afc0e393ec8d98df20aedecd6fb198516937b13d3b", + "currentGasLimit": "0x1c9c380", + "previousHash": "0xe6ffa61663b65519be70cd9b3c0094d9ce556aa490b99950dcf1415a3b11aa04", + "currentNumber": "0x75a1d89", + "currentTimestamp": "0x66a814cc" + }, + "alloc": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x117b08b474fb13e6", + "nonce": 3 + }, + "0x4200000000000000000000000000000000000042": { + "balance": "0x0", + "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063715018a6116100f9578063a457c2d711610097578063d505accf11610071578063d505accf14610553578063dd62ed3e1461056f578063f1127ed81461059f578063f2fde38b146105cf576101c4565b8063a457c2d7146104d7578063a9059cbb14610507578063c3cda52014610537576101c4565b80638da5cb5b116100d35780638da5cb5b1461043b5780638e539e8c1461045957806395d89b41146104895780639ab24eb0146104a7576101c4565b8063715018a6146103e557806379cc6790146103ef5780637ecebe001461040b576101c4565b80633a46b1a811610166578063587cde1e11610140578063587cde1e146103395780635c19a95c146103695780636fcfff451461038557806370a08231146103b5576101c4565b80633a46b1a8146102d157806340c10f191461030157806342966c681461031d576101c4565b806323b872dd116101a257806323b872dd14610235578063313ce567146102655780633644e5151461028357806339509351146102a1576101c4565b806306fdde03146101c9578063095ea7b3146101e757806318160ddd14610217575b600080fd5b6101d16105eb565b6040516101de9190612a9e565b60405180910390f35b61020160048036038101906101fc9190612b59565b61067d565b60405161020e9190612bb4565b60405180910390f35b61021f6106a0565b60405161022c9190612bde565b60405180910390f35b61024f600480360381019061024a9190612bf9565b6106aa565b60405161025c9190612bb4565b60405180910390f35b61026d6106d9565b60405161027a9190612c68565b60405180910390f35b61028b6106e2565b6040516102989190612c9c565b60405180910390f35b6102bb60048036038101906102b69190612b59565b6106f1565b6040516102c89190612bb4565b60405180910390f35b6102eb60048036038101906102e69190612b59565b61079b565b6040516102f89190612bde565b60405180910390f35b61031b60048036038101906103169190612b59565b61082f565b005b61033760048036038101906103329190612cb7565b6108b9565b005b610353600480360381019061034e9190612ce4565b6108cd565b6040516103609190612d20565b60405180910390f35b610383600480360381019061037e9190612ce4565b610936565b005b61039f600480360381019061039a9190612ce4565b61094a565b6040516103ac9190612d5a565b60405180910390f35b6103cf60048036038101906103ca9190612ce4565b61099e565b6040516103dc9190612bde565b60405180910390f35b6103ed6109e6565b005b61040960048036038101906104049190612b59565b610a6e565b005b61042560048036038101906104209190612ce4565b610a8e565b6040516104329190612bde565b60405180910390f35b610443610ade565b6040516104509190612d20565b60405180910390f35b610473600480360381019061046e9190612cb7565b610b08565b6040516104809190612bde565b60405180910390f35b610491610b5e565b60405161049e9190612a9e565b60405180910390f35b6104c160048036038101906104bc9190612ce4565b610bf0565b6040516104ce9190612bde565b60405180910390f35b6104f160048036038101906104ec9190612b59565b610d01565b6040516104fe9190612bb4565b60405180910390f35b610521600480360381019061051c9190612b59565b610deb565b60405161052e9190612bb4565b60405180910390f35b610551600480360381019061054c9190612dcd565b610e0e565b005b61056d60048036038101906105689190612e5a565b610f12565b005b61058960048036038101906105849190612efc565b611054565b6040516105969190612bde565b60405180910390f35b6105b960048036038101906105b49190612f68565b6110db565b6040516105c6919061301d565b60405180910390f35b6105e960048036038101906105e49190612ce4565b6111eb565b005b6060600380546105fa90613067565b80601f016020809104026020016040519081016040528092919081815260200182805461062690613067565b80156106735780601f1061064857610100808354040283529160200191610673565b820191906000526020600020905b81548152906001019060200180831161065657829003601f168201915b5050505050905090565b6000806106886112e3565b90506106958185856112eb565b600191505092915050565b6000600254905090565b6000806106b56112e3565b90506106c28582856114b6565b6106cd858585611542565b60019150509392505050565b60006012905090565b60006106ec6117c3565b905090565b6000806106fc6112e3565b9050610790818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461078b91906130c8565b6112eb565b600191505092915050565b60004382106107df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d69061316a565b60405180910390fd5b610827600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836118dd565b905092915050565b6108376112e3565b73ffffffffffffffffffffffffffffffffffffffff16610855610ade565b73ffffffffffffffffffffffffffffffffffffffff16146108ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a2906131d6565b60405180910390fd5b6108b582826119e9565b5050565b6108ca6108c46112e3565b826119f7565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6109476109416112e3565b82611a05565b50565b6000610997600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611b1f565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ee6112e3565b73ffffffffffffffffffffffffffffffffffffffff16610a0c610ade565b73ffffffffffffffffffffffffffffffffffffffff1614610a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a59906131d6565b60405180910390fd5b610a6c6000611b72565b565b610a8082610a7a6112e3565b836114b6565b610a8a82826119f7565b5050565b6000610ad7600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611c38565b9050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000438210610b4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b439061316a565b60405180910390fd5b610b576008836118dd565b9050919050565b606060048054610b6d90613067565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9990613067565b8015610be65780601f10610bbb57610100808354040283529160200191610be6565b820191906000526020600020905b815481529060010190602001808311610bc957829003601f168201915b5050505050905090565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050905060008114610cd857600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600182610c8c91906131f6565b81548110610c9d57610c9c61322a565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610cdb565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b600080610d0c6112e3565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905083811015610dd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc9906132cb565b60405180910390fd5b610ddf82868684036112eb565b60019250505092915050565b600080610df66112e3565b9050610e03818585611542565b600191505092915050565b83421115610e51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4890613337565b60405180910390fd5b6000610eb3610eab7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf898989604051602001610e909493929190613357565b60405160208183030381529060405280519060200120611c46565b858585611c60565b9050610ebe81611c8b565b8614610eff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef6906133e8565b60405180910390fd5b610f098188611a05565b50505050505050565b83421115610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4c90613454565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610f848c611c8b565b89604051602001610f9a96959493929190613474565b6040516020818303038152906040528051906020012090506000610fbd82611c46565b90506000610fcd82878787611c60565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103490613521565b60405180910390fd5b6110488a8a8a6112eb565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110e36129c7565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff168154811061113a5761113961322a565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b6111f36112e3565b73ffffffffffffffffffffffffffffffffffffffff16611211610ade565b73ffffffffffffffffffffffffffffffffffffffff1614611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e906131d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce906135b3565b60405180910390fd5b6112e081611b72565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561135b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135290613645565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c2906136d7565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114a99190612bde565b60405180910390a3505050565b60006114c28484611054565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461153c578181101561152e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152590613743565b60405180910390fd5b61153b84848484036112eb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a9906137d5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611622576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161990613867565b60405180910390fd5b61162d838383611ce9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa906138f9565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461174691906130c8565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117aa9190612bde565b60405180910390a36117bd848484611cee565b50505050565b60007f000000000000000000000000420000000000000000000000000000000000004273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614801561183f57507f000000000000000000000000000000000000000000000000000000000000000a46145b1561186c577fd423c9c6b838296762a6bbf9663d4609148ea6bc83b5e94ce2c05615edc6907290506118da565b6118d77f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7ff997187c3c319ef9e33fa05f852d1612b66e309dc48d97a4b6b39832090a3bec7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6611cfe565b90505b90565b6000808380549050905060005b8181101561195c5760006118fe8284611d38565b9050848682815481106119145761191361322a565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16111561194657809250611956565b60018161195391906130c8565b91505b506118ea565b600082146119be578460018361197291906131f6565b815481106119835761198261322a565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166119c1565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169250505092915050565b6119f38282611d5e565b5050565b611a018282611deb565b5050565b6000611a10836108cd565b90506000611a1d8461099e565b905082600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611b19828483611e09565b50505050565b600063ffffffff8016821115611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b619061398b565b60405180910390fd5b819050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081600001549050919050565b6000611c59611c536117c3565b83612002565b9050919050565b6000806000611c7187878787612035565b91509150611c7e81612142565b8192505050949350505050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611cd881611c38565b9150611ce381612317565b50919050565b505050565b611cf983838361232d565b505050565b60008383834630604051602001611d199594939291906139ab565b6040516020818303038152906040528051906020012090509392505050565b60006002828418611d499190613a2d565b828416611d5691906130c8565b905092915050565b611d688282612358565b611d706124b8565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611d966106a0565b1115611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce90613ad0565b60405180910390fd5b611de560086124dc836124f2565b50505050565b611df5828261276a565b611e036008612941836124f2565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611e455750600081115b15611ffd57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f2357600080611ecc600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612941856124f2565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611f18929190613af0565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611ffc57600080611fa5600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206124dc856124f2565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611ff1929190613af0565b60405180910390a250505b5b505050565b60008282604051602001612017929190613b91565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612070576000600391509150612139565b601b8560ff16141580156120885750601c8560ff1614155b1561209a576000600491509150612139565b6000600187878787604051600081526020016040526040516120bf9493929190613bc8565b6020604051602081039080840390855afa1580156120e1573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561213057600060019250925050612139565b80600092509250505b94509492505050565b6000600481111561215657612155613c0d565b5b81600481111561216957612168613c0d565b5b141561217457612314565b6001600481111561218857612187613c0d565b5b81600481111561219b5761219a613c0d565b5b14156121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613c88565b60405180910390fd5b600260048111156121f0576121ef613c0d565b5b81600481111561220357612202613c0d565b5b1415612244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223b90613cf4565b60405180910390fd5b6003600481111561225857612257613c0d565b5b81600481111561226b5761226a613c0d565b5b14156122ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a390613d86565b60405180910390fd5b6004808111156122bf576122be613c0d565b5b8160048111156122d2576122d1613c0d565b5b1415612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a90613e18565b60405180910390fd5b5b50565b6001816000016000828254019250508190555050565b612338838383612957565b612353612344846108cd565b61234d846108cd565b83611e09565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123bf90613e84565b60405180910390fd5b6123d460008383611ce9565b80600260008282546123e691906130c8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461243b91906130c8565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124a09190612bde565b60405180910390a36124b460008383611cee565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b600081836124ea91906130c8565b905092915050565b60008060008580549050905060008114612560578560018261251491906131f6565b815481106125255761252461322a565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16612563565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16925061259183858763ffffffff16565b91506000811180156125e4575043866001836125ad91906131f6565b815481106125be576125bd61322a565b5b9060005260206000200160000160009054906101000a900463ffffffff1663ffffffff16145b15612671576125f28261295c565b8660018361260091906131f6565b815481106126115761261061322a565b5b9060005260206000200160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550612761565b85604051806040016040528061268643611b1f565b63ffffffff16815260200161269a8561295c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b50935093915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d190613f16565b60405180910390fd5b6127e682600083611ce9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561286c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286390613fa8565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546128c391906131f6565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129289190612bde565b60405180910390a361293c83600084611cee565b505050565b6000818361294f91906131f6565b905092915050565b505050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff80168211156129bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129b69061403a565b60405180910390fd5b819050919050565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a3f578082015181840152602081019050612a24565b83811115612a4e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a7082612a05565b612a7a8185612a10565b9350612a8a818560208601612a21565b612a9381612a54565b840191505092915050565b60006020820190508181036000830152612ab88184612a65565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612af082612ac5565b9050919050565b612b0081612ae5565b8114612b0b57600080fd5b50565b600081359050612b1d81612af7565b92915050565b6000819050919050565b612b3681612b23565b8114612b4157600080fd5b50565b600081359050612b5381612b2d565b92915050565b60008060408385031215612b7057612b6f612ac0565b5b6000612b7e85828601612b0e565b9250506020612b8f85828601612b44565b9150509250929050565b60008115159050919050565b612bae81612b99565b82525050565b6000602082019050612bc96000830184612ba5565b92915050565b612bd881612b23565b82525050565b6000602082019050612bf36000830184612bcf565b92915050565b600080600060608486031215612c1257612c11612ac0565b5b6000612c2086828701612b0e565b9350506020612c3186828701612b0e565b9250506040612c4286828701612b44565b9150509250925092565b600060ff82169050919050565b612c6281612c4c565b82525050565b6000602082019050612c7d6000830184612c59565b92915050565b6000819050919050565b612c9681612c83565b82525050565b6000602082019050612cb16000830184612c8d565b92915050565b600060208284031215612ccd57612ccc612ac0565b5b6000612cdb84828501612b44565b91505092915050565b600060208284031215612cfa57612cf9612ac0565b5b6000612d0884828501612b0e565b91505092915050565b612d1a81612ae5565b82525050565b6000602082019050612d356000830184612d11565b92915050565b600063ffffffff82169050919050565b612d5481612d3b565b82525050565b6000602082019050612d6f6000830184612d4b565b92915050565b612d7e81612c4c565b8114612d8957600080fd5b50565b600081359050612d9b81612d75565b92915050565b612daa81612c83565b8114612db557600080fd5b50565b600081359050612dc781612da1565b92915050565b60008060008060008060c08789031215612dea57612de9612ac0565b5b6000612df889828a01612b0e565b9650506020612e0989828a01612b44565b9550506040612e1a89828a01612b44565b9450506060612e2b89828a01612d8c565b9350506080612e3c89828a01612db8565b92505060a0612e4d89828a01612db8565b9150509295509295509295565b600080600080600080600060e0888a031215612e7957612e78612ac0565b5b6000612e878a828b01612b0e565b9750506020612e988a828b01612b0e565b9650506040612ea98a828b01612b44565b9550506060612eba8a828b01612b44565b9450506080612ecb8a828b01612d8c565b93505060a0612edc8a828b01612db8565b92505060c0612eed8a828b01612db8565b91505092959891949750929550565b60008060408385031215612f1357612f12612ac0565b5b6000612f2185828601612b0e565b9250506020612f3285828601612b0e565b9150509250929050565b612f4581612d3b565b8114612f5057600080fd5b50565b600081359050612f6281612f3c565b92915050565b60008060408385031215612f7f57612f7e612ac0565b5b6000612f8d85828601612b0e565b9250506020612f9e85828601612f53565b9150509250929050565b612fb181612d3b565b82525050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b612fe881612fb7565b82525050565b6040820160008201516130046000850182612fa8565b5060208201516130176020850182612fdf565b50505050565b60006040820190506130326000830184612fee565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061307f57607f821691505b6020821081141561309357613092613038565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130d382612b23565b91506130de83612b23565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561311357613112613099565b5b828201905092915050565b7f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400600082015250565b6000613154601f83612a10565b915061315f8261311e565b602082019050919050565b6000602082019050818103600083015261318381613147565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006131c0602083612a10565b91506131cb8261318a565b602082019050919050565b600060208201905081810360008301526131ef816131b3565b9050919050565b600061320182612b23565b915061320c83612b23565b92508282101561321f5761321e613099565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006132b5602583612a10565b91506132c082613259565b604082019050919050565b600060208201905081810360008301526132e4816132a8565b9050919050565b7f4552433230566f7465733a207369676e61747572652065787069726564000000600082015250565b6000613321601d83612a10565b915061332c826132eb565b602082019050919050565b6000602082019050818103600083015261335081613314565b9050919050565b600060808201905061336c6000830187612c8d565b6133796020830186612d11565b6133866040830185612bcf565b6133936060830184612bcf565b95945050505050565b7f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000600082015250565b60006133d2601983612a10565b91506133dd8261339c565b602082019050919050565b60006020820190508181036000830152613401816133c5565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b600061343e601d83612a10565b915061344982613408565b602082019050919050565b6000602082019050818103600083015261346d81613431565b9050919050565b600060c0820190506134896000830189612c8d565b6134966020830188612d11565b6134a36040830187612d11565b6134b06060830186612bcf565b6134bd6080830185612bcf565b6134ca60a0830184612bcf565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b600061350b601e83612a10565b9150613516826134d5565b602082019050919050565b6000602082019050818103600083015261353a816134fe565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061359d602683612a10565b91506135a882613541565b604082019050919050565b600060208201905081810360008301526135cc81613590565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061362f602483612a10565b915061363a826135d3565b604082019050919050565b6000602082019050818103600083015261365e81613622565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006136c1602283612a10565b91506136cc82613665565b604082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b600061372d601d83612a10565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006137bf602583612a10565b91506137ca82613763565b604082019050919050565b600060208201905081810360008301526137ee816137b2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613851602383612a10565b915061385c826137f5565b604082019050919050565b6000602082019050818103600083015261388081613844565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006138e3602683612a10565b91506138ee82613887565b604082019050919050565b60006020820190508181036000830152613912816138d6565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b6000613975602683612a10565b915061398082613919565b604082019050919050565b600060208201905081810360008301526139a481613968565b9050919050565b600060a0820190506139c06000830188612c8d565b6139cd6020830187612c8d565b6139da6040830186612c8d565b6139e76060830185612bcf565b6139f46080830184612d11565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a3882612b23565b9150613a4383612b23565b925082613a5357613a526139fe565b5b828204905092915050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b6000613aba603083612a10565b9150613ac582613a5e565b604082019050919050565b60006020820190508181036000830152613ae981613aad565b9050919050565b6000604082019050613b056000830185612bcf565b613b126020830184612bcf565b9392505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b6000613b5a600283613b19565b9150613b6582613b24565b600282019050919050565b6000819050919050565b613b8b613b8682612c83565b613b70565b82525050565b6000613b9c82613b4d565b9150613ba88285613b7a565b602082019150613bb88284613b7a565b6020820191508190509392505050565b6000608082019050613bdd6000830187612c8d565b613bea6020830186612c59565b613bf76040830185612c8d565b613c046060830184612c8d565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000613c72601883612a10565b9150613c7d82613c3c565b602082019050919050565b60006020820190508181036000830152613ca181613c65565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000613cde601f83612a10565b9150613ce982613ca8565b602082019050919050565b60006020820190508181036000830152613d0d81613cd1565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d70602283612a10565b9150613d7b82613d14565b604082019050919050565b60006020820190508181036000830152613d9f81613d63565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e02602283612a10565b9150613e0d82613da6565b604082019050919050565b60006020820190508181036000830152613e3181613df5565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000613e6e601f83612a10565b9150613e7982613e38565b602082019050919050565b60006020820190508181036000830152613e9d81613e61565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f00602183612a10565b9150613f0b82613ea4565b604082019050919050565b60006020820190508181036000830152613f2f81613ef3565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f92602283612a10565b9150613f9d82613f36565b604082019050919050565b60006020820190508181036000830152613fc181613f85565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b6000614024602783612a10565b915061402f82613fc8565b604082019050919050565b6000602082019050818103600083015261405381614017565b905091905056fea2646970667358221220138b857b6b6d837b7bcbbf0bbebb100d9b44fd2a46f6fbae4444310c2822129c64736f6c634300080c0033", + "nonce": 1 + }, + "0xa0ee7a142d267c1f36714e4a8f75612f20a79720": { + "balance": "0x21e19e0c9bab2400000" + } + }, + "outAlloc": { + "0x4200000000000000000000000000000000000042": { + "storage": { + "0xf980c21174727e87da7d3bd6f27ed8bd6c61e756fae8f17f3567e50f9a4de872": "0x0000000000000000000000000000000000000000000000000000000000000064" + } + }, + "0xa0ee7a142d267c1f36714e4a8f75612f20a79720": { + "balance": "0x21e19e0c9b49a110d00", + "nonce": 1 + }, + "0x0000000000000000000000000000000000000000": { + "balance": "0x117b08b78fce02a6" + } + }, + "txs": [ + { + "EIP1559": { + "chainId": "0xa", + "nonce": "0x0", + "gasLimit": "0xfbe7", + "maxFeePerGas": "0xdd642", + "maxPriorityFeePerGas": "0x45bb2", + "to": "0x4200000000000000000000000000000000000042", + "value": "0x0", + "accessList": [], + "input": "0x095ea7b3000000000000000000000000000000000000000000000000000000000deadeee0000000000000000000000000000000000000000000000000000000000000064", + "r": "0xea7c43d9baf51b4b297b77f638fdc3f1774cf8ac864d7136c5fb3c1ff2a1d1bf", + "s": "0x479f4ad9b9023664a4e515205bc29f19ed6c860992e377e870e68cb8c5194cba", + "yParity": "0x1", + "hash": "0xcb1773e45af35297f17a09011469fcbba0335560690cbc14f8419611441652ae" + } + } + ], + "result": { + "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "txRoot": "0x8d600b536f1ceb840a837785cf46a972f1d7429a395d0fea22d470975069c4cc", + "receiptRoot": "0x1651de9d86025808f854681ab008bab36aa17ca5817a47247249207e56e23b95", + "logsBloom": "0x00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040000000000000000020000000000000000000000000000000000008000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000001000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000004000000000000010000000000000000000000000000000000000000000000000000000000000", + "receipts": [ + { + "root": "0x0000000000000000000000000000000000000000000000000000000000000000", + "transactionHash": "0xcb1773e45af35297f17a09011469fcbba0335560690cbc14f8419611441652ae", + "gasUsed": "0xb660", + "blockHash": "0x4b4a6e8b0b94ee2cbe99159012578fda85d8317af23e90fb92ba974d1b6dae14", + "transactionIndex": "0x0", + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0xb660", + "logs": [ + { + "address": "0x4200000000000000000000000000000000000042", + "topics": [ + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720", + "0x000000000000000000000000000000000000000000000000000000000deadeee" + ], + "data": "0x0000000000000000000000000000000000000000000000000000000000000064", + "blockHash": "0x4b4a6e8b0b94ee2cbe99159012578fda85d8317af23e90fb92ba974d1b6dae14", + "blockNumber": "0x75a1d89", + "blockTimestamp": "0x66a814cc", + "transactionHash": "0xcb1773e45af35297f17a09011469fcbba0335560690cbc14f8419611441652ae", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200040000000000000000020000000000000000000000000000000000008000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000001000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000004000000000000010000000000000000000000000000000000000000000000000000000000000" + } + ] + } +} \ No newline at end of file diff --git a/fixtures/execution/Multicall3Preinstall.json b/fixtures/execution/Multicall3Preinstall.json new file mode 100644 index 0000000..8101e2e --- /dev/null +++ b/fixtures/execution/Multicall3Preinstall.json @@ -0,0 +1,67 @@ +{ + "env": { + "currentCoinbase": "0x0000000000000000000000000000000000000000", + "currentDifficulty": "0xa007e14f44c625904d7d47039486877e86e12a89d546e0e1a362a2fb17b79c3a", + "currentGasLimit": "0x1c9c380", + "previousHash": "0xf5f42bdf56f344c59a1580cfa8fed74f1f68800f5f38499bd241bbe1b6cdfcb5", + "currentNumber": "0x75a1d8c", + "currentTimestamp": "0x66a814d1" + }, + "alloc": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x117b08b474fb13e6", + "nonce": 3 + }, + "0xa0ee7a142d267c1f36714e4a8f75612f20a79720": { + "balance": "0x21e19e0c9bab2400000" + } + }, + "outAlloc": { + "0x0000000000000000000000000000000000000000": { + "balance": "0x117b08b62b56a1e1" + }, + "0xa0ee7a142d267c1f36714e4a8f75612f20a79720": { + "balance": "0x21e19e0c9b67a535d1a", + "nonce": 1 + } + }, + "txs": [ + { + "EIP1559": { + "chainId": "0xa", + "nonce": "0x0", + "gasLimit": "0xd2c9", + "maxFeePerGas": "0xca207", + "maxPriorityFeePerGas": "0x30a9b", + "to": "0xca11bde05977b3631167028862be2a173976ca11", + "value": "0x0", + "accessList": [], + "input": "0x82ad56cb00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000420000000000000000000000000000000000004200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000406fdde03000000000000000000000000000000000000000000000000000000000000000000000000000000004200000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044dd62ed3e000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720000000000000000000000000000000000000000000000000000000000deadeee00000000000000000000000000000000000000000000000000000000", + "r": "0xa2d599599aada7d2cb5a1055efff0614c7de127c5fb4f5a17f760ff861f341eb", + "s": "0x14054c7a37b36f18aa9e8e08258277e796d1d84a639a14dbb365fa96474f5a03", + "yParity": "0x1", + "hash": "0x127f6f00923b31b9cf117cd336490d6cef58808b57e399a6d91c62e3d1a0d43d" + } + } + ], + "result": { + "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", + "txRoot": "0xb2ca306b0c8561be7b461cd9f6443e81fa97d5bf9309f86a4505bae9e9cedd2b", + "receiptRoot": "0x8a2435e8a304d276ee6bebb6c6d815d4c35d91446233d5cec6f4636ce6dbd79b", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "receipts": [ + { + "root": "0x0000000000000000000000000000000000000000000000000000000000000000", + "transactionHash": "0x127f6f00923b31b9cf117cd336490d6cef58808b57e399a6d91c62e3d1a0d43d", + "gasUsed": "0x9021", + "blockHash": "0x42d589c3e9bc18c0b27d61d36fea48714c3ac56b59122d6093128f53c3f1a5e3", + "transactionIndex": "0x0", + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0x9021", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + } + ] + } +} \ No newline at end of file diff --git a/fixtures/execution/Weth9Precompile.json b/fixtures/execution/Weth9Precompile.json index b447004..e427662 100644 --- a/fixtures/execution/Weth9Precompile.json +++ b/fixtures/execution/Weth9Precompile.json @@ -1,38 +1,38 @@ { "env": { "currentCoinbase": "0x0000000000000000000000000000000000000000", - "currentDifficulty": "0x4f6a6d3433b9380ef1f0ab29f91afdc2842da78fe17b52a2ab86e1b5f9ed6c2f", + "currentDifficulty": "0xb2218ee88649587d0b873afc0e393ec8d98df20aedecd6fb198516937b13d3b", "currentGasLimit": "0x1c9c380", - "previousHash": "0x5a0f993d31f37229f27db27c90268a12356bb442873168c9c3ea4a47257b5239", - "currentNumber": "0x75a029f", - "currentTimestamp": "0x66a7def8" + "previousHash": "0x50fc0c982e36916f6ec4e5ae3562ba3a6855f733e5cb13efde15c88a3b17cae2", + "currentNumber": "0x75a1d86", + "currentTimestamp": "0x66a814c5" }, "alloc": { - "0x4200000000000000000000000000000000000006": { - "balance": "0x86c982bf9e41e41d251", - "code": "0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a7231582091c18790e0cca5011d2518024840ee00fecc67e11f56fd746f2cf84d5b583e0064736f6c63430005110032" - }, "0xa0ee7a142d267c1f36714e4a8f75612f20a79720": { "balance": "0x21e19e0c9bab2400000" }, "0x0000000000000000000000000000000000000000": { "balance": "0x117b08b474fb13e6", "nonce": 3 + }, + "0x4200000000000000000000000000000000000006": { + "balance": "0x86149437ee6847550f8", + "code": "0x6080604052600436106100bc5760003560e01c8063313ce56711610074578063a9059cbb1161004e578063a9059cbb146102cb578063d0e30db0146100bc578063dd62ed3e14610311576100bc565b8063313ce5671461024b57806370a082311461027657806395d89b41146102b6576100bc565b806318160ddd116100a557806318160ddd146101aa57806323b872dd146101d15780632e1a7d4d14610221576100bc565b806306fdde03146100c6578063095ea7b314610150575b6100c4610359565b005b3480156100d257600080fd5b506100db6103a8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101155781810151838201526020016100fd565b50505050905090810190601f1680156101425780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561015c57600080fd5b506101966004803603604081101561017357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610454565b604080519115158252519081900360200190f35b3480156101b657600080fd5b506101bf6104c7565b60408051918252519081900360200190f35b3480156101dd57600080fd5b50610196600480360360608110156101f457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356104cb565b34801561022d57600080fd5b506100c46004803603602081101561024457600080fd5b503561066b565b34801561025757600080fd5b50610260610700565b6040805160ff9092168252519081900360200190f35b34801561028257600080fd5b506101bf6004803603602081101561029957600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610709565b3480156102c257600080fd5b506100db61071b565b3480156102d757600080fd5b50610196600480360360408110156102ee57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610793565b34801561031d57600080fd5b506101bf6004803603604081101561033457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166107a7565b33600081815260036020908152604091829020805434908101909155825190815291517fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9281900390910190a2565b6000805460408051602060026001851615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b820191906000526020600020905b81548152906001019060200180831161042f57829003601f168201915b505050505081565b33600081815260046020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b4790565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600360205260408120548211156104fd57600080fd5b73ffffffffffffffffffffffffffffffffffffffff84163314801590610573575073ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14155b156105ed5773ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020548211156105b557600080fd5b73ffffffffffffffffffffffffffffffffffffffff841660009081526004602090815260408083203384529091529020805483900390555b73ffffffffffffffffffffffffffffffffffffffff808516600081815260036020908152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35060019392505050565b3360009081526003602052604090205481111561068757600080fd5b33600081815260036020526040808220805485900390555183156108fc0291849190818181858888f193505050501580156106c6573d6000803e3d6000fd5b5060408051828152905133917f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65919081900360200190a250565b60025460ff1681565b60036020526000908152604090205481565b60018054604080516020600284861615610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190941693909304601f8101849004840282018401909252818152929183018282801561044c5780601f106104215761010080835404028352916020019161044c565b60006107a03384846104cb565b9392505050565b60046020908152600092835260408084209091529082529020548156fea265627a7a7231582091c18790e0cca5011d2518024840ee00fecc67e11f56fd746f2cf84d5b583e0064736f6c63430005110032" } }, "outAlloc": { - "0x0000000000000000000000000000000000000000": { - "balance": "0x117b08b953355564" - }, - "0xa0ee7a142d267c1f36714e4a8f75612f20a79720": { - "balance": "0x21e0c0012febdab24b2", - "nonce": 1 - }, "0x4200000000000000000000000000000000000006": { - "balance": "0x86ca60cb097c5a5d251", + "balance": "0x8615724359a2bd950f8", "storage": { "0x6a706e96617ceafd46f24757f71aad32b88c8bf0b8ae22ec3de611582d2d4a6c": "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000" } + }, + "0xa0ee7a142d267c1f36714e4a8f75612f20a79720": { + "balance": "0x21e0c0012ff5067e020", + "nonce": 1 + }, + "0x0000000000000000000000000000000000000000": { + "balance": "0x117b08b93d372d24" } }, "txs": [ @@ -41,30 +41,30 @@ "chainId": "0xa", "nonce": "0x0", "gasLimit": "0x10050", - "maxFeePerGas": "0x103d91", - "maxPriorityFeePerGas": "0x71c5f", + "maxFeePerGas": "0x1083d5", + "maxPriorityFeePerGas": "0x6fc3f", "to": "0x4200000000000000000000000000000000000006", "value": "0xde0b6b3a7640000", "accessList": [], "input": "0xd0e30db0", - "r": "0xf7a167e8540149a29c8a44f519c78b2ff5c059d3959607df8aa8ed308c43bc3b", - "s": "0x4a2b02ea301282f4c06b9b4d6f1033b8b3978cab082a77e1185520b60acce444", - "yParity": "0x1", - "hash": "0xbfa05b7c2c5e50db6cf7f83469a996e1306712a17fe890e1b1e81856257b1d34" + "r": "0xf5ef69574b2e966b78642cd49bfa388125c92899cc80669e7a360d3fc98034fa", + "s": "0x79882861eabe2c110f375f522b0c2cff1eac43d93311412468f2ebc8b7d19bcf", + "yParity": "0x0", + "hash": "0x8cc44f631057a5bc0590310b6bdc1e54043a5a011a96cd47733d83318e1ac668" } } ], "result": { "stateRoot": "0x0000000000000000000000000000000000000000000000000000000000000000", - "txRoot": "0x90006ffb096a52c332d94153d66ae1aca204f36e2348660621ff1b80053990b6", + "txRoot": "0x3ea0854b2c4baf048f391a237a5b88bced1b67087f087c3b5ccf20c6fdd7f94c", "receiptRoot": "0xc4b290f69c74db3a91e2758c1489a26e40885f0e07e93a5158ffbb86ddbe36c0", "logsBloom": "0x00000000000000000000040000000000000000000000000000040000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000400000000000000000", "receipts": [ { "root": "0x0000000000000000000000000000000000000000000000000000000000000000", - "transactionHash": "0xbfa05b7c2c5e50db6cf7f83469a996e1306712a17fe890e1b1e81856257b1d34", + "transactionHash": "0x8cc44f631057a5bc0590310b6bdc1e54043a5a011a96cd47733d83318e1ac668", "gasUsed": "0xaf42", - "blockHash": "0x62043c412f3c10da9cefcf9165211b2b35c2c69ac52731852940120128604ebb", + "blockHash": "0x071e6e377b4fd55f0ad172de9a25dbbd0bde1b06297aa1edfe5d053a148bd5c2", "transactionIndex": "0x0", "type": "0x2", "status": "0x1", @@ -77,10 +77,10 @@ "0x000000000000000000000000a0ee7a142d267c1f36714e4a8f75612f20a79720" ], "data": "0x0000000000000000000000000000000000000000000000000de0b6b3a7640000", - "blockHash": "0x62043c412f3c10da9cefcf9165211b2b35c2c69ac52731852940120128604ebb", - "blockNumber": "0x75a029f", - "blockTimestamp": "0x66a7def8", - "transactionHash": "0xbfa05b7c2c5e50db6cf7f83469a996e1306712a17fe890e1b1e81856257b1d34", + "blockHash": "0x071e6e377b4fd55f0ad172de9a25dbbd0bde1b06297aa1edfe5d053a148bd5c2", + "blockNumber": "0x75a1d86", + "blockTimestamp": "0x66a814c5", + "transactionHash": "0x8cc44f631057a5bc0590310b6bdc1e54043a5a011a96cd47733d83318e1ac668", "transactionIndex": "0x0", "logIndex": "0x0", "removed": false diff --git a/fixtures/execution/basic00.json b/fixtures/execution/basic00.json deleted file mode 100644 index b1b560e..0000000 --- a/fixtures/execution/basic00.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "env": { - "currentCoinbase": "0x0000000000000000000000000000000000000000", - "currentDifficulty": "0x0", - "currentGasLimit": "0x1c9c380", - "previousHash": "0xbe169f598f72b7978621024db76f98d729704e3b584bd96da74fe332afeb4ac1", - "currentNumber": "0x1", - "currentTimestamp": "0x66975fad" - }, - "alloc": { - "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266": { - "balance": "0x21e19e0c9bab2400000" - }, - "0x0000000000000000000000000000000000000000": { - "balance": "0x0" - } - }, - "out_alloc": { - "0x0000000000000000000000000000000000000000": { - "balance": "0x5208" - }, - "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266": { - "balance": "0x21e19e0b6a140b55df8", - "nonce": 1 - } - }, - "txs": [ - { - "EIP1559": { - "chainId": "0x7a69", - "nonce": "0x0", - "gasLimit": "0x5209", - "maxFeePerGas": "0x77359401", - "maxPriorityFeePerGas": "0x1", - "to": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266", - "value": "0x56bc75e2d63100000", - "accessList": [], - "input": "0x", - "r": "0x4416fc558f436f5a3ced5da306c42f0452bcd46d4eee53191f73c40b0f2a30e4", - "s": "0x1a26caac6c8da9e7a47d4281ecd5a3d14fdd6a19706b556621a601ce3d88081a", - "yParity": "0x1", - "hash": "0x15c024c73a94142e42770f9af732e3c169fd9f25d831a5f24db2df0fe99188bf" - } - } - ], - "result": { - "stateRoot": "0x2c7fcddbc1671fceecf53498906ec3800f72eec2728089b960f583bdf1a7f345", - "txRoot": "0xdf54e628e5b9ac25c2907b3457fa959602b8ba95ec3e2a8c17669466827979b7", - "receiptRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa", - "logsHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "receipts": [ - { - "root": "0x2c7fcddbc1671fceecf53498906ec3800f72eec2728089b960f583bdf1a7f345", - "transactionHash": "0x15c024c73a94142e42770f9af732e3c169fd9f25d831a5f24db2df0fe99188bf", - "contractAddress": "0x0000000000000000000000000000000000000000", - "gasUsed": "0x5208", - "blockHash": "0x4d174637a95e46758f987c5fb7d9007bfbbf9601fe4192a6e4dcf51196da8b6f", - "transactionIndex": "0x0", - "type": "0x2", - "status": "0x1", - "cumulativeGasUsed": "0x5208", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } - ] - } -} \ No newline at end of file