Skip to content
This repository was archived by the owner on Apr 18, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions testool/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ external-tracer = { path="../external-tracer" }
glob = "0.3"
handlebars = "4.3"
hex.workspace = true
sha3 = "0.10"
keccak256 = { path = "../keccak256" }
log.workspace = true
itertools.workspace = true
Expand Down
10 changes: 9 additions & 1 deletion testool/Config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ ignore_tests = [
"static_Call50000_sha256_*",
]

[[suite]]
id="EIP1153"
path = "tests/src/GeneralStateTestsFiller/Cancun/stEIP1153-transientStorage/*"
max_gas = 500000
max_steps = 1000
ignore_tests = []

[[suite]]
id="EIP2930"
path="tests/src/GeneralStateTestsFiller/stEIP2930/*"
Expand Down Expand Up @@ -62,7 +69,8 @@ paths = [
"stEIP1559/valCausesOOFFiller.yml",
"stExample/mergeTestFiller.yml",
"Pyspecs",
"Cancun",
"stEIP4844-blobtransactions",
"stEIP5656-MCOPY",
# "EIP2930",
#"stPreCompiledContracts",
#"stZeroKnowledge"
Expand Down
53 changes: 53 additions & 0 deletions testool/codehash.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9982,3 +9982,56 @@ ffebfcc6ce81085d934a75577a19dba6466075125c048a0e220a11ce2e457b7f=61036f606452600
ffee2a3059880493356b38e75e9916952f95f87ee6d8d4df78a1eac3eef77ead=6000600780601f60003960006000f5506000600060003e60006000550000fe60016000550000
fff2d4aeae320996e333fbc9ab95240684d056a49fef0ef4e1a1662ed06ffbe5=61024b6064526000600060206000600073b100000000000000000000000000000000000000620493e0f25060006000600060006000731000000000000000000000000000000000000000620493e0f150600060006020600073b100000000000000000000000000000000000000620493e0fa506000600060006000732000000000000000000000000000000000000000620493e0fa5060006000600060006000732000000000000000000000000000000000000000620927c0f100
fffa53d0d2fb1c7fe01fd7a421e0b3796a24222f199963a6d7050cf9161ba16c=61046b6064526000600060206000600073b100000000000000000000000000000000000000620493e0f2506000600060006000733000000000000000000000000000000000000000620493e0fa506000600060206000600073b100000000000000000000000000000000000000620493e0f25060006000600060006000733000000000000000000000000000000000000000620493e0f15060006000600060006000732000000000000000000000000000000000000000620927c0f100
0b13953be4348918d5eebc8e439a6512b0a3ee6300471172b449a9da42a4a1e5=600a5f5d5f806020818073b00000000000000000000000000000000000000b5af15f5c5f5560015500
d1e1b266b42b75f5aa1a56c7a4f16ff0485f4d508f27827a5e13e0cfd273755f=5f3560e01c806343ac1c3914602157633f37169214601957005b601f602b565b005b50601f5f5c600155565b602c5f5d6343ac1c3960e01b5f525f8060208180305af15f5c5f5560025556
1925f29aa2c260e1de3b5517a7b808a144f363ac20954997bb49180f556d32b2=601e5f5d60015c60015500
83f2328a9666f8e26c8aac9c5883e2cecb3254564f9fef55c48654db9b602127=5f5c60015500
74f5a8b5474d90baa8ab32de620c11352d18f5054d63556c660c14cda76f3fd9=60585f5d5f5c60015500
acd163028aaf83a3065f93cb39c12ebe6fd07619e1bea3c95708e0da9435bf35=5f5c5f5560145f5d5f5c60015500
c7390d213511f68446a476321d7bd59a24a6b9128e9e3eb4dc9a31bfe440ac13=5f3560e01c80630accf73914602157633f37169214601957005b601f6031565b005b50601f605a60ff5d60ff5c600155565b605060ff5d60ff5c5f55630accf73960e01b5f525f8060208180305af160025560ff5c60035556
e2ac2549e0bd45830ae8f333545332ff08e0ad866cca801ec1e5dcc4e069fb12=5f3560e01c8063e2da2eb014602157633f37169214601957005b601f6029565b005b600b5f5d5f80fd5b600a5f5d5f5c5f55630e2da2eb60e41b5f525f80602081803061fffff16002555f5c60015556
c550fadcf3a57fecc535c09f22b1196a1fc767534e09eaad3255f4d95c6fcaf9=5f3560e01c806362fdb9be14602157633f37169214601957005b601f602a565b005b50601f604e5f5d565b60375f5d5f5c5f5563317edcdf60e11b5f525f8060208180305af16002555f5c60015556
d9759451adad0e15a9cd88951a8bcb7a66e4a93cc43ea3e59549d76591873ec9=5f3560e01c80633f37169214601d5763578290e514601957005b6026565b506024603c565b005b60055f5d60065f5d600b60015d600c60015d5f80fd5b60045f5d600a60015d63578290e560e01b5f525f8060208180305af15f555f5c60015560015c60025556
7a7d60584c18d1d7726c8a7dec56bd9d385ed27e94c7fbfb55cfb5462d31b781=5f3560e01c806370ac643e14602f57806376b85d2314602b57634ccca55314602357005b60296076565b005b605c565b50602960055f5d5f5c5f556376b85d2360e01b5f5260205f818180305af16001555f516002555f5c600355565b634ccca55360e01b5f525f8060208180305af15f5260205ffd5b60065f5d56
7a152bc303fe94b2665ffe669f873c2388a69798b272c8c2004595d142a5c32f=60015f5d5f8060208173b00000000000000000000000000000000000000b5af45f5c905f556001555f8060208173c00000000000000000000000000000000000000c5af45f5c9060025560035500
d217dfb4c34d43c3673bd1b9da23bff4d90e8d63fda6637da444a41d66745dbc=60025f5d5f8060208173b00000000000000000000000000000000000000b5af45f5500
df178a62a42b8e1da38c9699276de1216cf0561e3b587983af5a10b9793c0b26=5f3560e01c80633f371692146030578063611e535a14602757630172927514602357005b603d565b50602e6037565b005b50602e6046565b60035f5d565b5f5c5f5260205ff35b60025f5d63308f29ad60e11b5f525f806020813061fffffa5f555f5c600155630172927560e01b5f5260205f8181305afa6002555f5160035556
fec992032412489fc1e476128e55ebf4046f44b6f3372b7350581b28880afb2a=5f3560e01c8063f5f4059014602f578063f8dfc2d014602b576362fdb9be14602357005b60296077565b005b605d565b506029600a5f5d5f5c5f55630f8dfc2d60e41b5f5260205f81813061fffffa5f516001556002555f5c600355565b63317edcdf60e11b5f525f8060208180305af15f5260205ff35b600b5f5d56
e55eb70750a883aec207dd4024e3df2201803ee261f5118377ee825ef163df4e=60025f5d00
81b99ee199821004756eedc4e0cb140793bc93211cc864dd14723a5312080c36=5f5c60015500
66d2c03015e53eaebe1579201f80e1cae0fb4fce412f271f68910d264651b3aa=600460025f5d5a5f5c505a9003035f5500
6ca9e464fb3180b47c710b44214f5015c9a1ad59f4b81cec14bb554d0515659d=60075a60035f5d5a90030360015500
bd08ed0563c4152b047d422ef5089d45d35c9c09e2a6eac587e83631d1c1fc3a=60035f5d5f80fd
992eb7ba08726772c0a66fbed5207c2830c19fbf8fbdc1f212edd9394902a127=600a5f555f5c60015500
4d1b56ac854cb155e6ba89270c84596d1478d76f42679bf5a3e6bbc3b26a22da=5f3560e01c8063e2da2eb014602157633f37169214601957005b601f6031565b005b50601f600b5f5d622fffff5f2050565b604e5f5d5f5c5f55630e2da2eb60e41b5f525f80602081803061c350f16002555f5c60015556
9950ca4debfe1aef1fd8cc8a176c7cf1d8ec5f43712901467aaaeb5fb7d62db6=5f3560e01c8063883264e81460245763f7d6c0eb14601d5760055f55005b6020356055565b50602e6004356030565b005b63f7d6c0eb60e01b5f5260205260205f60408180305af15f555f516002555f5c600155565b5f905b808210606657505f5260205ffd5b9060019081811680156089578214607e575b01906058565b610258815f035d6078565b50610258815d607856
46dd0b1744cbd2e4cc97b2e59e873d632426a2de2e9ade013ca2024623952fa3=600560015d60015c600a555f806020818073b00000000000000000000000000000000000000b61c350f1600c5560015c600b5500
997f601f98c4214604229a7dd611ae2fbff0fd4be5e465bd9d1ff741792a8e89=3033146033575b303303600e57005b601b5f35806001555f606f565b5f80808080305af1600255602e6001606b565b600355005b603a5f606b565b80156069576001816054605a93604e84606b565b0183606f565b035f606f565b5f80808080305af16006575f80fd5b005b5c90565b5d56
68ac906b59383eb593af209f13f9b7813f780aa7b29cb3936b9e81347bfea810=600b5f5d622fffff5f2000
40f21ca7bebb72258b235dc42bef4f886e10a8ffe2b694f095aad9d4b810ba1b=5f35601e1a5f35601f1a90617e57908060f1146084578060f2146072578060f414606157156051575b6010558015604f578060fd14604b578060fe1460495760ff14604657005b5fff5bfe5b5f80fd5b005b605d63bad0beef5f6096565b6028565b50505f808080633f8390d55af46028565b50505f80808080633f8390d55af26028565b50505f80808080633f8390d55af16028565b5d56
aa1c63358a626c28d60cd48bc9d3b297dd0bc7c37b1368e9099191e8bebe0f72=5f35601d1a600b5f609b565b15602b576160a760195f609b565b14601f57005b602961beef5f609f565b005b60356160a75f609f565b5f355f525f9060025a04908060f1146088578060f21460755760f4146064575b5060015560605f609b565b5f55005b5f915060208261dead8193f45f6055565b505f91506020828061dead8194f25f6055565b505f91506020828061dead8194f15f6055565b5c90565b5d56
f1d36c6538bfe903955a2bcf7c3cfda955b65c948d02e9670f88962251931d91=3033146033575b303303600e57005b601b5f35806001555f606f565b5f80808080305af1600255602e6001606b565b600355005b603a5f606b565b80156069576001816054605a93604e84606b565b0183606f565b035f606f565b5f80808080305af26006575f80fd5b005b5c90565b5d56
9b1a1a400cd022412c0bd65bb2b29dfc0b82b8cb609767cb4568980d9f163c38=5f8060208180803560e01c60043581835582525af160015500
52f7c7359ace912019c2fc23f33c1a9fd3687c97cff7f1166600f813c999c00d=3033146033575b303303600e57005b601b5f35806001555f606e565b5f80808080305af1600255602e6001606a565b600355005b603a5f606a565b80156068576001816054605a93604e84606a565b0183606e565b035f606e565b5f808080305af46006575f80fd5b005b5c90565b5d56
87e579b9e9b4c3e996c7aa8850f216fb801d90c8b136f8bf52119494adff8daf=60065f601d565b5f5560106001601d565b6001555f80808080335af1005b5c9056
0c7eb58fa4909c7e11d629bd9014e693177b579b2e818f71640d802cf5fb6465=63ca11bacc3314603f575b63ca11bacc3303601657005b60235f35806001555f607f565b5f8080808063ca11bacc5af1600255603a6001607b565b600355005b60465f607b565b80156079576001816060606693605a84607b565b0183607f565b035f607f565b5f8080808063ca11bacc5af1600a575f80fd5b005b5c90565b5d56
6f127d71a27388107ae2d37d0d5315871f3bf58ebb7e9121295e92e9015f63de=3033146033575b303303600e57005b601b5f35806001555f608d565b5f80808080305af1600255602e60016089565b600355005b603a5f6089565b8015608757604a600182035f608d565b5f80808080305af1156083576001606191035f608d565b5f80808080305af115608357607f60016078816089565b016001608d565b6006565b5f80fd5b005b5c90565b5d56
3f35ac5650a376a9f8e2039ac846cf9feb3b6a2c094902b03e08e0cd662334d6=3033146033575b303303600e57005b601b5f35806001555f608c565b5f80808080305af1600255602e60016088565b600355005b603a5f6088565b8015608657604a600182035f608c565b5f80808080305af2156082576001606191035f608c565b5f808080305af415608257607e60016077816088565b016001608c565b6006565b5f80fd5b005b5c90565b5d56
f5cfd7c1d640394b21bee8e7f763ecf369690c6299e7f9395dc20e82f527f2c1=60106001600a5f6012565b015f6016565b005b5c90565b5d56
3093350f415760e48111999fbbad51f2ce4ca9e4743e3ca242971a216a8c8d52=60065f604e565b5f555f8080808061add15af2601155601c5f604e565b6001555f80808061add15af460125560325f604e565b6002555f8080808061add15af160135560495f604e565b600355005b5c9056
478cccedd806298e9c077da08a1aa35f4a5480acf4679fce432fbca8b3f91c8e=36156081573330036074575b5f3560f81c5f355f5260013603906001908060f1146064578060f21460545760f4146046575b5050333003603b57005b60425f6094565b5f55005b5f918291305af4505f806031565b505f91829182305af2505f806031565b505f91829182305af1505f806031565b607d60015f6098565b600b565b60926001608c5f6094565b015f6098565b005b5c90565b5d56
517b0a4f54bcd5b4ed6acf56eaa15aea345f867a92e68a081e2b5d493ad00922=366012575b600b5f6020565b5f5260205ff35b601c6160a75f6024565b6004565b5c90565b5d56
bb82815a7e7c64bc71a975e4f5bb43d70f0d9cc5fdb1844c6a76fa5478e9a2d9=60205f600181806157a75af16010555f515f555f805260205f80806157a75afa6011555f516001555f805260205f6001816157a75afa6012555f5160025500
b706844b87335b2b7b5d9b5ee6b0cce73f2729b63091b5b62b19df1ba274ddac=6049806101696000396000670de0b6b3a7640000f0506020600060006000600073deadbeef00000000000000000000000000000000620249f0f1506020600060003e6000516000556020600060006000600073deadbeef00000000000000000000000000000001620249f0f1506020600060003e6000516001556020600060006000600073deadbeef00000000000000000000000000000002620249f0f1506020600060003e6000516002556020600060006000600073d2571607e241ecf590ed94b12d87c94babe36db6620249f0f1506020600060006000600073deadbeef00000000000000000000000000000000620249f0f1506020600060003e6000516003556020600060006000600073deadbeef00000000000000000000000000000001620249f0f1506020600060003e6000516004556020600060006000600073deadbeef00000000000000000000000000000002620249f0f1506020600060003e60005160055500fe6000600060006000600073bbbbbbbb00000000000000000000000000000000620186a0f15060178060326000396000f300fe73deadbeef00000000000000000000000000000000ff00
06ab6256d38756ac18d627a30a060831f10d153c703c23b314a8dffd1c3adaa2=604a80608f6000396000670de0b6b3a7640000f05060016000526020600060206000600073bbbbbbbb00000000000000000000000000000000620249f0f1506020600060006000600073d2571607e241ecf590ed94b12d87c94babe36db6620249f0f15060046020526020600060206020600073bbbbbbbb00000000000000000000000000000000620249f0f100fe6000600060006000600073cccccccc00000000000000000000000000000000620186a0f15060188060326000396000f300fe73deadbeef0000000000000000000000000000000031ff00
a4307e076568043af32088d4709c505d8ece1fbfba9334475ae20586e04718f3=604a80603b6000396000670de0b6b3a7640000f0506020600060006000600073bbbbbbbb000000000000000000000000000000006203f7a0f100fe6000600060006000600073cccccccc00000000000000000000000000000000620186a0f15060188060326000396000f300fe73deadbeef0000000000000000000000000000000031ff00
3f229cacce2090e6f5362d253aed1f6b533927d6a5e444d3f2448987962dd0b9=60498061010c6000396000670de0b6b3a7640000f05073a0000000000000000000000000000000000000003f60015573a0000000000000000000000000000000000000003b60025560206000600073a0000000000000000000000000000000000000003c6000516003556020600060006000600073a00000000000000000000000000000000000000062055730f15073a0000000000000000000000000000000000000003f60045573a0000000000000000000000000000000000000003b60055560206000600073a0000000000000000000000000000000000000003c6000516006556020600060006000600073a00000000000000000000000000000000000000062055730f160075500fe6000600060006000600073d000000000000000000000000000000000000000620186a0f15060178060326000396000f300fe73a94f5374fce5edbc8e2a8697c15331677e6ebf0bff00
54304a698d8c5faea1d65c1d0603c88167a46d0fd26f5df78a3f43e0f00c421e=73d2571607e241ecf590ed94b12d87c94babe36db63f60005260206000f300
dd5d8b13cc8ccc4b379e4b73d107df94d0c91242a7beabc834f8a3743efc0652=600160015500
2d748284c6702a1b8d68999c0c5d96082e884568a7fddbcdadada3335f787726=6020600060003773d2571607e241ecf590ed94b12d87c94babe36db63f6000515573d2571607e241ecf590ed94b12d87c94babe36db63b602052600160005101600052602051600051556001600051016000526020516000604073d2571607e241ecf590ed94b12d87c94babe36db63c6040516000515500
138180b75456577b0cfdcbe4c9d4de869e901ad2575ec8146da7a0e4665a4c8e=60206000600060006000733e180b1862f9d158abb5e519a6d8605540c2368262055730f200
556f58d70d2405ff88f9388e316932634bd87b50d52ab7bacac1fea860ca0a43=73d2571607e241ecf590ed94b12d87c94babe36db63b60005260206000f300
42c0326a7bc2f0127882c029bf2b7c8f08d19145eda3bf63557a1ffd47dcd41d=73d2571607e241ecf590ed94b12d87c94babe36db63f60015573d2571607e241ecf590ed94b12d87c94babe36db63b6002556002546000600073d2571607e241ecf590ed94b12d87c94babe36db63c6000516003556020600060006000600073d2571607e241ecf590ed94b12d87c94babe36db6620249f0f15073d2571607e241ecf590ed94b12d87c94babe36db63f60045573d2571607e241ecf590ed94b12d87c94babe36db63b6005556005546000602073d2571607e241ecf590ed94b12d87c94babe36db63c60205160065500
6331f9dd1b53b7184841e2ce0f225d20b1829f48def78c1d3b0a23b7cd12d5fc=600160015500
f9db5cf3f933cde97c503e7a7f719db5da49a00b1ba840378102bf727c24f729=73d2571607e241ecf590ed94b12d87c94babe36db63b6000600073d2571607e241ecf590ed94b12d87c94babe36db63c60206000f300
ae77c8ed1f780178687368265b3179db65f5fef82875b5e54342b1e726e1c126=5f3560e01c8063883264e81460205763f7d6c0eb14601957005b6020356051565b50602a600435602c565b005b63f7d6c0eb60e01b5f5260205260205f60408180305af15f555f516002555f5c600155565b5f905b808210606257505f5260205ffd5b908060306001925d0190605456
14 changes: 13 additions & 1 deletion testool/src/abi.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use anyhow::Result;
use eth_types::{Bytes, U256};
use sha3::Digest;

/// encodes an abi call (e.g. "f(uint) 1")
pub fn encode_funccall(spec: &str) -> Result<Bytes> {
Expand Down Expand Up @@ -73,8 +74,19 @@ pub fn encode_funccall(spec: &str) -> Result<Bytes> {
state_mutability: StateMutability::Payable,
constant: Some(false),
};
// Shoule be false for stEIP1153-transientStorage,
// due to this bughttps://github.com/ethereum/tests/issues/1369
let enable_normalize = true;
let bytes: Vec<u8> = if !enable_normalize {
let encoded_params = ethers_core::abi::encode(&args);
let short_signature: Vec<u8> = sha3::Keccak256::digest(tokens[0])[0..4].to_vec();
let bytes: Vec<u8> = short_signature.into_iter().chain(encoded_params).collect();
bytes
} else {
func.encode_input(&args)?
};

Ok(Bytes::from(func.encode_input(&args)?))
Ok(Bytes::from(bytes))
}

#[cfg(test)]
Expand Down
19 changes: 12 additions & 7 deletions testool/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -131,18 +131,19 @@ fn write_test_ids(test_ids: &[String]) -> Result<()> {
Ok(())
}

fn run_single_test(test: StateTest, circuits_config: CircuitsConfig) -> Result<()> {
fn run_single_test(
test: StateTest,
suite: TestSuite,
circuits_config: CircuitsConfig,
) -> Result<()> {
log::info!("run single test {}", &test);
let circuits_config = CircuitsConfig {
verbose: true,
super_circuit: circuits_config.super_circuit,
};
//let trace = geth_trace(test.clone())?;
//crate::utils::print_trace(trace)?;
log::info!(
"result={:?}",
run_test(test, TestSuite::default(), circuits_config)
);
log::info!("result={:?}", run_test(test, suite, circuits_config));
Ok(())
}

Expand All @@ -161,7 +162,7 @@ fn go() -> Result<()> {

if let Some(oneliner) = &args.oneliner {
let test = StateTest::parse_oneline_spec(oneliner)?;
run_single_test(test, circuits_config)?;
run_single_test(test, Default::default(), circuits_config)?;
return Ok(());
}

Expand Down Expand Up @@ -197,7 +198,11 @@ fn go() -> Result<()> {
}
bail!("test '{}' not found", test_id);
}
run_single_test(state_tests_filtered.remove(0).clone(), circuits_config)?;
run_single_test(
state_tests_filtered.remove(0).clone(),
suite,
circuits_config,
)?;
return Ok(());
};

Expand Down
12 changes: 10 additions & 2 deletions testool/src/statetest/executor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -292,10 +292,18 @@ fn trace_config_to_witness_block_l2(
.into_iter()
.map(From::from)
.collect::<Vec<_>>();

// if the trace exceed max steps, we cannot fit it into circuit
// but we still want to make it go through bus-mapping generation
// but sometimes we still want to make it go through bus-mapping generation
let always_run_bus_mapping = false;
let exceed_max_steps = match check_geth_traces(&geth_traces, &suite, verbose) {
Err(StateTestError::SkipTestMaxSteps(steps)) => steps,
Err(StateTestError::SkipTestMaxSteps(steps)) => {
if always_run_bus_mapping {
steps
} else {
return Err(StateTestError::SkipTestMaxSteps(steps));
}
}
Err(e) => return Err(e),
Ok(_) => 0,
};
Expand Down