From 72fd736934fbb4ed66cbaba09b750f9bb83b8b86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:01:11 +0200 Subject: [PATCH 01/17] chore(deps): bump serde_json from 1.0.122 to 1.0.127 (#1737) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.122 to 1.0.127. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.122...1.0.127) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eeda490fa8..727ac1c473 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3645,9 +3645,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" dependencies = [ "indexmap", "itoa", From cbf0a5b48a91cfe8295200ff309d3e7d7a44dbe6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:01:20 +0200 Subject: [PATCH 02/17] chore(deps): bump tokio from 1.39.2 to 1.40.0 (#1739) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.39.2 to 1.40.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.39.2...tokio-1.40.0) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- crates/revm/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 727ac1c473..50ea3ec8c6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4091,9 +4091,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", diff --git a/crates/revm/Cargo.toml b/crates/revm/Cargo.toml index e07d33e2af..9479989aeb 100644 --- a/crates/revm/Cargo.toml +++ b/crates/revm/Cargo.toml @@ -41,7 +41,7 @@ serde_json = { version = "1.0", default-features = false, features = [ ], optional = true } # ethersdb -tokio = { version = "1.39", features = [ +tokio = { version = "1.40", features = [ "rt-multi-thread", "macros", ], optional = true } From 94bbe7161023e541bce46f719bb7d959c915a4fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 12:01:28 +0200 Subject: [PATCH 03/17] chore(deps): bump reqwest from 0.12.5 to 0.12.7 (#1740) Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.12.5 to 0.12.7. - [Release notes](https://github.com/seanmonstar/reqwest/releases) - [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md) - [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.5...v0.12.7) --- updated-dependencies: - dependency-name: reqwest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 86 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 21 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 50ea3ec8c6..728f18a1e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -233,7 +233,7 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde", "serde_json", "thiserror", @@ -275,7 +275,7 @@ dependencies = [ "alloy-transport-http", "futures", "pin-project", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde", "serde_json", "tokio", @@ -427,7 +427,7 @@ checksum = "377f2353d7fea03a2dba6b9ffbb7d610402c040dd5700d1fae8b9ec2673eed9b" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.5", + "reqwest 0.12.7", "serde_json", "tower", "tracing", @@ -3029,7 +3029,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper 0.1.2", - "system-configuration", + "system-configuration 0.5.1", "tokio", "tokio-rustls 0.24.1", "tower-service", @@ -3038,14 +3038,14 @@ dependencies = [ "wasm-bindgen-futures", "web-sys", "webpki-roots", - "winreg 0.50.0", + "winreg", ] [[package]] name = "reqwest" -version = "0.12.5" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" dependencies = [ "base64 0.22.1", "bytes", @@ -3073,7 +3073,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration", + "system-configuration 0.6.1", "tokio", "tokio-native-tls", "tower-service", @@ -3081,7 +3081,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.52.0", + "windows-registry", ] [[package]] @@ -3101,7 +3101,7 @@ dependencies = [ "ethers-core", "ethers-providers", "indicatif", - "reqwest 0.12.5", + "reqwest 0.12.7", "revm-interpreter", "revm-precompile", "rstest", @@ -3946,6 +3946,9 @@ name = "sync_wrapper" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +dependencies = [ + "futures-core", +] [[package]] name = "system-configuration" @@ -3955,7 +3958,18 @@ checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ "bitflags 1.3.2", "core-foundation", - "system-configuration-sys", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "system-configuration-sys 0.6.0", ] [[package]] @@ -3968,6 +3982,16 @@ dependencies = [ "libc", ] +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" @@ -4579,6 +4603,36 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-registry" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e400001bb720a623c1c69032f8e3e4cf09984deec740f007dd2b03ec864804b0" +dependencies = [ + "windows-result", + "windows-strings", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-result" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-strings" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -4746,16 +4800,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "ws_stream_wasm" version = "0.7.4" From 73366e7acdb1f5639ff96b651bda3a35dd968ba0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 13:15:54 +0200 Subject: [PATCH 04/17] chore(deps): bump alloy-rlp from 0.3.7 to 0.3.8 (#1738) Bumps [alloy-rlp](https://github.com/alloy-rs/rlp) from 0.3.7 to 0.3.8. - [Changelog](https://github.com/alloy-rs/rlp/blob/main/CHANGELOG.md) - [Commits](https://github.com/alloy-rs/rlp/compare/v0.3.7...v0.3.8) --- updated-dependencies: - dependency-name: alloy-rlp dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 728f18a1e0..94465d457b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -244,9 +244,9 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a43b18702501396fa9bcdeecd533bc85fac75150d308fc0f6800a01e6234a003" +checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" dependencies = [ "alloy-rlp-derive", "arrayvec", @@ -255,9 +255,9 @@ dependencies = [ [[package]] name = "alloy-rlp-derive" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d83524c1f6162fcb5b0decf775498a125066c86dda6066ed609531b0e912f85a" +checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ "proc-macro2", "quote", From fa5650ee8a4d802f4f3557014dd157adfb074460 Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Tue, 3 Sep 2024 11:15:32 +0200 Subject: [PATCH 05/17] Add test for `revm::optimism::L1BlockInfo::calculate_tx_l1_cost_fjord` (#1743) * Add test for revm::optimism::L1BlockInfo::calculate_tx_l1_cost_fjord * Fix lint --- crates/revm/src/optimism/l1block.rs | 33 ++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/crates/revm/src/optimism/l1block.rs b/crates/revm/src/optimism/l1block.rs index 86e32850fa..1f345478a4 100644 --- a/crates/revm/src/optimism/l1block.rs +++ b/crates/revm/src/optimism/l1block.rs @@ -244,7 +244,7 @@ impl L1BlockInfo { #[cfg(test)] mod tests { use super::*; - use crate::primitives::bytes; + use crate::primitives::{bytes, hex}; #[test] fn test_data_gas_non_zero_bytes() { @@ -410,4 +410,35 @@ mod tests { let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::FJORD); assert_eq!(gas_cost, U256::ZERO); } + + #[test] + fn calculate_tx_l1_cost_fjord() { + // rig + + // L1 block info for OP mainnet fjord block 124665056 + // + let l1_block_info = L1BlockInfo { + l1_base_fee: U256::from(1055991687), + l1_base_fee_scalar: U256::from(5227), + l1_blob_base_fee_scalar: Some(U256::from(1014213)), + l1_blob_base_fee: Some(U256::from(1)), + ..Default::default() // l1 fee overhead (l1 gas used) deprecated since Fjord + }; + + // first tx in OP mainnet Fjord block 124665056 + // https://optimistic.etherscan.io/tx/0x1059e8004daff32caa1f1b1ef97fe3a07a8cf40508f5b835b66d9420d87c4a4a + const TX: &[u8] = &hex!("02f904940a8303fba78401d6d2798401db2b6d830493e0943e6f4f7866654c18f536170780344aa8772950b680b904246a761202000000000000000000000000087000a300de7200382b55d40045000000e5d60e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000022482ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000dc6ff44d5d932cbd77b52e5612ba0529dc6226f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b300000000000000000000000021c4928109acb0659a88ae5329b5374a3024694c0000000000000000000000000000000000000000000000049b9ca9a6943400000000000000000000000000000000000000000000000000000000000000000000000000000000000021c4928109acb0659a88ae5329b5374a3024694c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024b6b55f250000000000000000000000000000000000000000000000049b9ca9a694340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000415ec214a3950bea839a7e6fbb0ba1540ac2076acd50820e2d5ef83d0902cdffb24a47aff7de5190290769c4f0a9c6fabf63012986a0d590b1b571547a8c7050ea1b00000000000000000000000000000000000000000000000000000000000000c080a06db770e6e25a617fe9652f0958bd9bd6e49281a53036906386ed39ec48eadf63a07f47cf51a4a40b4494cf26efc686709a9b03939e20ee27e59682f5faa536667e"); + + // L1 fee for tx, from OP mainnet block scanner + // https://optimistic.etherscan.io/tx/0x1059e8004daff32caa1f1b1ef97fe3a07a8cf40508f5b835b66d9420d87c4a4a + let expected_l1_fee = U256::from_be_bytes(hex!( + "00000000000000000000000000000000000000000000000000000005bf1ab43d" + )); + + // test + + let l1_fee = l1_block_info.calculate_tx_l1_cost_fjord(TX); + + assert_eq!(l1_fee, expected_l1_fee) + } } From 32f357faab07d65b915dd8cade204e3f54704eab Mon Sep 17 00:00:00 2001 From: Delweng Date: Wed, 4 Sep 2024 19:30:03 +0800 Subject: [PATCH 06/17] fix(inspector): always call selfdestruct if entry is made (#1746) Signed-off-by: jsvisa --- crates/revm/src/inspector/handler_register.rs | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/crates/revm/src/inspector/handler_register.rs b/crates/revm/src/inspector/handler_register.rs index 599ab9fc6a..4f28508f61 100644 --- a/crates/revm/src/inspector/handler_register.rs +++ b/crates/revm/src/inspector/handler_register.rs @@ -67,16 +67,25 @@ pub fn inspector_handle_register>( // execute selfdestruct prev(interpreter, host); // check if selfdestruct was successful and if journal entry is made. - if let Some(JournalEntry::AccountDestroyed { - address, - target, - had_balance, - .. - }) = host.evm.journaled_state.journal.last().unwrap().last() - { - host.external - .get_inspector() - .selfdestruct(*address, *target, *had_balance); + match host.evm.journaled_state.journal.last().unwrap().last() { + Some(JournalEntry::AccountDestroyed { + address, + target, + had_balance, + .. + }) => { + host.external + .get_inspector() + .selfdestruct(*address, *target, *had_balance); + } + Some(JournalEntry::BalanceTransfer { + from, to, balance, .. + }) => { + host.external + .get_inspector() + .selfdestruct(*from, *to, *balance); + } + _ => {} } }); From bc0017a450cb320f9b0352827cbcfd66e83b5469 Mon Sep 17 00:00:00 2001 From: rakita Date: Wed, 4 Sep 2024 15:31:45 +0200 Subject: [PATCH 07/17] chore: add gitattributes linguist-vendored for tests (#1750) --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..52d3dd69f2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +tests/** linguist-vendored From 1026e27b5745da53aa334d888435769f79c112fc Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Wed, 4 Sep 2024 06:33:57 -0700 Subject: [PATCH 08/17] chore: add `.gitattributes` (#1751) --- .gitattributes | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index 52d3dd69f2..2bb6dcc6de 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,3 @@ -tests/** linguist-vendored +assets/** linguist-vendored +documentation/** linguist-vendored +tests/** linguist-vendored \ No newline at end of file From 89b65e1e4b5bbb2ddba4f414ca41ce3f8ad9758d Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Wed, 4 Sep 2024 15:37:43 +0200 Subject: [PATCH 09/17] Test l1 gas used fjord (#1749) * Fix docs * Verify calculation of data gas cost for tx in fjord block --- crates/revm/src/optimism/l1block.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/crates/revm/src/optimism/l1block.rs b/crates/revm/src/optimism/l1block.rs index 1f345478a4..d7195c456b 100644 --- a/crates/revm/src/optimism/l1block.rs +++ b/crates/revm/src/optimism/l1block.rs @@ -425,18 +425,23 @@ mod tests { ..Default::default() // l1 fee overhead (l1 gas used) deprecated since Fjord }; - // first tx in OP mainnet Fjord block 124665056 - // https://optimistic.etherscan.io/tx/0x1059e8004daff32caa1f1b1ef97fe3a07a8cf40508f5b835b66d9420d87c4a4a + // second tx in OP mainnet Fjord block 124665056 + // const TX: &[u8] = &hex!("02f904940a8303fba78401d6d2798401db2b6d830493e0943e6f4f7866654c18f536170780344aa8772950b680b904246a761202000000000000000000000000087000a300de7200382b55d40045000000e5d60e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000022482ad56cb0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000120000000000000000000000000dc6ff44d5d932cbd77b52e5612ba0529dc6226f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000044095ea7b300000000000000000000000021c4928109acb0659a88ae5329b5374a3024694c0000000000000000000000000000000000000000000000049b9ca9a6943400000000000000000000000000000000000000000000000000000000000000000000000000000000000021c4928109acb0659a88ae5329b5374a3024694c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000024b6b55f250000000000000000000000000000000000000000000000049b9ca9a694340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000415ec214a3950bea839a7e6fbb0ba1540ac2076acd50820e2d5ef83d0902cdffb24a47aff7de5190290769c4f0a9c6fabf63012986a0d590b1b571547a8c7050ea1b00000000000000000000000000000000000000000000000000000000000000c080a06db770e6e25a617fe9652f0958bd9bd6e49281a53036906386ed39ec48eadf63a07f47cf51a4a40b4494cf26efc686709a9b03939e20ee27e59682f5faa536667e"); - // L1 fee for tx, from OP mainnet block scanner + // l1 gas used for tx and l1 fee for tx, from OP mainnet block scanner // https://optimistic.etherscan.io/tx/0x1059e8004daff32caa1f1b1ef97fe3a07a8cf40508f5b835b66d9420d87c4a4a + let expected_data_gas = U256::from(4471); let expected_l1_fee = U256::from_be_bytes(hex!( "00000000000000000000000000000000000000000000000000000005bf1ab43d" )); // test + let data_gas = l1_block_info.data_gas(TX, SpecId::FJORD); + + assert_eq!(data_gas, expected_data_gas); + let l1_fee = l1_block_info.calculate_tx_l1_cost_fjord(TX); assert_eq!(l1_fee, expected_l1_fee) From d38ff452714e1c4a17cf0fbdaa4913f6d61033c4 Mon Sep 17 00:00:00 2001 From: rakita Date: Wed, 4 Sep 2024 17:08:14 +0200 Subject: [PATCH 10/17] feat(statetest): enable EOF in Prague tests (#1753) * feat(statetest): enable EOF in Prague tests * statetest json PragueEOF to Prague --- bins/revme/src/cmd/statetest/models/spec.rs | 2 - bins/revme/src/cmd/statetest/runner.rs | 7 +- .../eof_functions_contract_call_fail.json | 8 +- .../eof_functions_contract_call_succeed.json | 8 +- ...ions_contract_call_within_deep_nested.json | 2 +- .../extcode/legacy_calls_eof_sstore.json | 2 +- .../opcodes_in_legacy/opcodes_in_legacy.json | 36 +- .../rjump/rjump_maxes.json | 2 +- .../rjump/rjump_positive_negative.json | 2 +- .../rjump_positive_negative_with_data.json | 2 +- .../rjump/rjump_zero.json | 2 +- .../rjumpi/rjumpi_backwards.json | 2 +- .../rjumpi/rjumpi_condition_backwards.json | 4 +- .../rjumpi/rjumpi_condition_forwards.json | 4 +- .../rjumpi/rjumpi_condition_zero.json | 4 +- .../rjumpi/rjumpi_forwards.json | 2 +- .../rjumpi/rjumpi_max_backward.json | 2 +- .../rjumpi/rjumpi_max_forward.json | 2 +- .../rjumpi/rjumpi_zero.json | 2 +- .../rjumpv/rjumpv_backwards.json | 2 +- .../rjumpv/rjumpv_condition.json | 36 +- .../rjumpv/rjumpv_forwards.json | 2 +- .../rjumpv/rjumpv_full_table.json | 2 +- .../rjumpv/rjumpv_full_table_end.json | 2 +- .../rjumpv/rjumpv_full_table_last.json | 2 +- .../rjumpv/rjumpv_full_table_mid.json | 2 +- .../rjumpv/rjumpv_max_forwards.json | 2 +- .../rjumpv/rjumpv_size_3.json | 2 +- .../rjumpv/rjumpv_zero.json | 2 +- .../callf_execution/callf_stack_overflow.json | 2 +- .../callf_stack_size_1024.json | 2 +- .../callf_stack_size_1024_at_callf.json | 2 +- .../callf_stack_size_1024_at_push.json | 2 +- .../callf_with_inputs_stack_overflow.json | 2 +- .../callf_with_inputs_stack_size_1024.json | 2 +- ...f_with_inputs_stack_size_1024_at_push.json | 2 +- .../callf_to_non_returning_section.json | 2 +- .../jumpf_execution/jumpf_backward.json | 2 +- .../jumpf_execution/jumpf_forward.json | 2 +- .../jumpf_execution/jumpf_stack_overflow.json | 2 +- .../jumpf_stack_size_1024.json | 2 +- .../jumpf_stack_size_1024_at_push.json | 2 +- .../jumpf_to_nonexistent_section.json | 2 +- .../jumpf_execution/jumpf_to_self.json | 2 +- .../jumpf_execution/jumpf_too_large.json | 2 +- .../jumpf_execution/jumpf_way_too_large.json | 2 +- .../jumpf_with_inputs_stack_overflow.json | 2 +- .../jumpf_with_inputs_stack_size_1024.json | 2 +- ...f_with_inputs_stack_size_1024_at_push.json | 2 +- .../jumpf_stack_non_returning_rules.json | 18 +- .../jumpf_stack_returning_rules.json | 96 +- .../jumpf_target/jumpf_target_rules.json | 50 +- .../dupn/dupn_all_valid_immediates.json | 2 +- .../exchange_all_valid_immediates.json | 2 +- .../swapn/swapn_all_valid_immediates.json | 2 +- .../address_space_extension.json | 448 ++++----- .../calldata_remains_after_subcall.json | 14 +- .../calldata/extcalls_inputdata.json | 256 ++--- .../calldata/extdelegatecall_inputdata.json | 128 +-- .../calldata/extstaticcall_inputdata.json | 128 +-- .../calls/eof_calls_clear_return_buffer.json | 72 +- .../calls/eof_calls_eof_mstore.json | 6 +- .../calls/eof_calls_eof_sstore.json | 6 +- .../calls/eof_calls_eof_then_fails.json | 8 +- .../calls/eof_calls_legacy_mstore.json | 6 +- .../calls/eof_calls_legacy_sstore.json | 6 +- .../calls/eof_calls_min_callee_gas.json | 32 +- .../calls/eof_calls_msg_depth.json | 6 +- .../calls/eof_calls_revert_abort.json | 24 +- .../eof_calls_static_flag_with_value.json | 4 +- .../calls/eof_calls_with_value.json | 32 +- .../calls/legacy_calls_eof_mstore.json | 8 +- .../calls/legacy_calls_eof_sstore.json | 8 +- .../eip7069_extcall/gas/ext_calls_gas.json | 8 +- .../returndatacopy_huge_memory_expansion.json | 24 +- .../returndatacopy_memory_expansion.json | 80 +- .../returndatacopy_handling.json | 896 +++++++++--------- .../returndataload/returndatacopy_oob.json | 4 +- .../returndataload_handling.json | 96 +- .../data_opcodes/data_section_succeed.json | 24 +- .../datacopy_huge_memory_expansion.json | 96 +- .../datacopy_memory_expansion.json | 320 +++---- .../eofcreate/address_collision.json | 2 +- .../eofcreate/auxdata_variations.json | 12 +- .../eofcreate/calldata.json | 2 +- .../eofcreate/eofcreate_in_initcode.json | 2 +- .../eofcreate_in_initcode_reverts.json | 2 +- .../eofcreate_revert_eof_returndata.json | 2 +- .../eofcreate/eofcreate_then_call.json | 2 +- .../eofcreate/return_data_cleared.json | 2 +- .../eofcreate/simple_eofcreate.json | 2 +- .../auxdata_size_failures.json | 12 +- .../eof_eofcreate_msg_depth.json | 8 +- .../eofcreate_deploy_sizes.json | 8 +- .../eofcreate_insufficient_stipend.json | 4 +- .../eofcreate_failures/initcode_aborts.json | 2 +- .../eofcreate_failures/initcode_revert.json | 4 +- .../insufficient_gas_memory_expansion.json | 2 +- .../insufficient_initcode_gas.json | 2 +- ...sufficient_returncontract_auxdata_gas.json | 2 +- .../static_flag_eofcreate.json | 16 +- .../cross_version_creates_fail.json | 8 +- .../legacy_initcode_eof_contract_fails.json | 8 +- .../container_combos_valid.json | 10 +- .../reverting_container.json | 4 +- .../simple_create_from_creation.json | 2 +- .../simple_create_from_deployed.json | 2 +- .../call/delegatecall_static_legacy.json | 2 +- .../state_transition/eip663/dupn.json | 2 +- .../state_transition/eip663/exchange.json | 2 +- .../state_transition/eip663/swapn.json | 2 +- .../eof_calls/eof1_extdelegatecall_eof1.json | 2 +- .../eof1_extdelegatecall_legacy.json | 2 +- .../extcall_ase_ready_violation.json | 2 +- .../eof_calls/extcall_callee_abort.json | 2 +- .../eof_calls/extcall_callee_revert.json | 2 +- .../eof_calls/extcall_clears_returndata.json | 2 +- .../eof_calls/extcall_cold_oog.json | 2 +- ...ll_failing_with_value_additional_cost.json | 2 +- ...call_failing_with_value_balance_check.json | 2 +- .../extcall_gas_refund_propagation.json | 2 +- .../eof_calls/extcall_input.json | 2 +- .../eof_calls/extcall_memory.json | 2 +- .../extcall_min_callee_gas_failure_mode.json | 2 +- .../eof_calls/extcall_output.json | 2 +- .../extcall_recipient_and_code_address.json | 2 +- .../eof_calls/extcall_static_with_value.json | 2 +- .../eof_calls/extcall_then_oog.json | 2 +- .../eof_calls/extcall_value.json | 2 +- ...all_value_zero_to_nonexistent_account.json | 2 +- .../eof_calls/extcall_with_value.json | 2 +- .../extcall_with_value_enough_gas.json | 2 +- .../eof_calls/extcall_with_value_low_gas.json | 2 +- .../extdelegatecall_ase_ready_violation.json | 2 +- .../extdelegatecall_callee_abort.json | 2 +- .../extdelegatecall_callee_revert.json | 2 +- .../eof_calls/extdelegatecall_cold_oog.json | 2 +- ...xtdelegatecall_gas_refund_propagation.json | 2 +- .../eof_calls/extdelegatecall_input.json | 2 +- .../eof_calls/extdelegatecall_memory.json | 2 +- .../eof_calls/extdelegatecall_output.json | 2 +- ...legatecall_recipient_and_code_address.json | 2 +- .../extdelegatecall_returndatasize.json | 2 +- .../extdelegatecall_returndatasize_abort.json | 2 +- .../eof_calls/extdelegatecall_static.json | 2 +- .../eof_calls/extdelegatecall_then_oog.json | 2 +- .../extstaticcall_ase_ready_violation.json | 2 +- .../eof_calls/extstaticcall_callee_abort.json | 2 +- .../extstaticcall_callee_revert.json | 2 +- .../eof_calls/extstaticcall_cold_oog.json | 2 +- .../eof_calls/extstaticcall_input.json | 2 +- .../eof_calls/extstaticcall_memory.json | 2 +- .../eof_calls/extstaticcall_output.json | 2 +- ...staticcall_recipient_and_code_address.json | 2 +- .../eof_calls/extstaticcall_then_oog.json | 2 +- .../eof_calls/returndatacopy.json | 2 +- .../eof_calls/returndataload.json | 2 +- .../returndatasize_before_extcall.json | 2 +- .../eof_create/create2_deploying_eof.json | 2 +- .../eof_create/create2_with_eof_initcode.json | 2 +- .../eof_create/create_deploying_eof.json | 2 +- .../eof_create/create_with_eof_initcode.json | 2 +- .../eof_create/creation_tx.json | 2 +- ...ion_tx_dataloadn_referring_to_auxdata.json | 2 +- ...creation_tx_deploy_container_max_size.json | 2 +- ...reation_tx_deploy_container_too_large.json | 2 +- .../eof_create/creation_tx_deploy_data.json | 2 +- .../eof_create/creation_tx_deploying_eof.json | 2 +- ...eation_tx_dynamic_auxdata_in_calldata.json | 2 +- .../creation_tx_initcontainer_aborts.json | 2 +- .../creation_tx_initcontainer_max_size.json | 2 +- .../creation_tx_initcontainer_return.json | 2 +- .../creation_tx_initcontainer_stop.json | 2 +- .../creation_tx_initcontainer_too_large.json | 2 +- .../creation_tx_invalid_deploycode.json | 2 +- .../creation_tx_invalid_eof_version.json | 2 +- .../creation_tx_invalid_initcode.json | 2 +- .../creation_tx_invalid_initcode_header.json | 2 +- .../creation_tx_nested_eofcreate.json | 2 +- ...reation_tx_static_auxdata_in_calldata.json | 2 +- .../creation_tx_truncated_data_initcode.json | 2 +- ...te_appended_data_size_larger_than_64K.json | 2 +- .../eofcreate_auxdata_equal_to_declared.json | 2 +- ...ofcreate_auxdata_longer_than_declared.json | 2 +- ...fcreate_auxdata_shorter_than_declared.json | 2 +- .../eofcreate_call_created_contract.json | 2 +- .../eofcreate_caller_balance_too_low.json | 2 +- .../eofcreate_clears_returndata.json | 2 +- ...create_dataloadn_referring_to_auxdata.json | 2 +- .../eofcreate_deploy_container_max_size.json | 2 +- .../eofcreate_deploy_container_too_large.json | 2 +- ...loy_container_with_aux_data_too_large.json | 2 +- .../eof_create/eofcreate_empty_auxdata.json | 2 +- ...reate_failure_after_eofcreate_success.json | 2 +- .../eofcreate_initcontainer_aborts.json | 2 +- .../eofcreate_nested_eofcreate.json | 2 +- .../eofcreate_nested_eofcreate_revert.json | 2 +- ...te_not_enough_gas_for_initcode_charge.json | 2 +- ...eate_not_enough_gas_for_mem_expansion.json | 2 +- .../eofcreate_revert_empty_returndata.json | 2 +- ...eofcreate_revert_non_empty_returndata.json | 2 +- ...fcreate_with_auxdata_and_subcontainer.json | 2 +- ...ract_not_enough_gas_for_mem_expansion.json | 2 +- .../state_transition/eof_examples_callf.json | 2 +- .../eof_examples_creation_tx.json | 2 +- .../state_transition/eof_examples_data.json | 2 +- .../eof_examples_eofcreate.json | 2 +- .../eof_examples_minimal.json | 2 +- ...of_examples_static_relative_jump_loop.json | 2 +- .../extcode/legacy_extcodecopy_eof.json | 2 +- .../extcode/legacy_extcodehash_eof.json | 2 +- .../extcode/legacy_extcodesize_eof.json | 2 +- 212 files changed, 1717 insertions(+), 1714 deletions(-) diff --git a/bins/revme/src/cmd/statetest/models/spec.rs b/bins/revme/src/cmd/statetest/models/spec.rs index f33ad68f6e..e3fde73da5 100644 --- a/bins/revme/src/cmd/statetest/models/spec.rs +++ b/bins/revme/src/cmd/statetest/models/spec.rs @@ -25,7 +25,6 @@ pub enum SpecName { Shanghai, Cancun, Prague, - PragueEOF, Osaka, // SKIPPED #[serde(other)] Unknown, @@ -49,7 +48,6 @@ impl SpecName { Self::Shanghai => SpecId::SHANGHAI, Self::Cancun => SpecId::CANCUN, Self::Prague => SpecId::PRAGUE, - Self::PragueEOF => SpecId::PRAGUE_EOF, Self::ByzantiumToConstantinopleAt5 | Self::Constantinople => { panic!("Overridden with PETERSBURG") } diff --git a/bins/revme/src/cmd/statetest/runner.rs b/bins/revme/src/cmd/statetest/runner.rs index c6851cdd2e..de9aaec269 100644 --- a/bins/revme/src/cmd/statetest/runner.rs +++ b/bins/revme/src/cmd/statetest/runner.rs @@ -334,7 +334,12 @@ pub fn execute_test_suite( continue; } - let spec_id = spec_name.to_spec_id(); + // Enable EOF in Prague tests. + let spec_id = if spec_name == SpecName::Prague { + SpecId::PRAGUE_EOF + } else { + spec_name.to_spec_id() + }; if spec_id.is_enabled_in(SpecId::MERGE) && env.block.prevrandao.is_none() { // if spec is merge and prevrandao is not set, set it to default diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_fail.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_fail.json index cdabac4828..3b1cbeb3c8 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_fail.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_fail.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xea6d1955dbd485fb2ba7fa7ec1215bd62b6da33f9d563785dfea37ef1d3aea65", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfe99456f70a9b974fb603309b57c4ecaa39600c744f21e9d96632da27a968f26", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x210d52732fba05728a2c0ddee898904a8bb0e302141df4084d9a1588e87846c2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0830a5fff324459295c7cb1a30b9b41bb61ec430db546bf80b561f13e15b13e0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_succeed.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_succeed.json index 882de3d229..545513baa4 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_succeed.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_succeed.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2c47b4070c1eef501d9548959c3abde2d8dc78ed1d819697c61d2b0861cc78cf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0811964baccaaf645dad0bc74f2965ae05884aa8df47d5afe781b1a5320ff69d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x03f2bcefdc2878ca645cc6ecbe6e8fc24eb2f775b53eb24515849be5033432f6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbe262dfb926aef65e61f07e1819fde6e91ce64eefdbad7df0cba448aae6b7cd0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_within_deep_nested.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_within_deep_nested.json index d1ae53c0aa..b006e583a3 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_within_deep_nested.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/execution_function/eof_functions_contract_call_within_deep_nested.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5e94cf42a27c0de450748e81c64b93b1a232be840d5b5fcc7dbe54943f0667c2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/extcode/legacy_calls_eof_sstore.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/extcode/legacy_calls_eof_sstore.json index ea9de9d97e..ea1313f1f6 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/extcode/legacy_calls_eof_sstore.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/extcode/legacy_calls_eof_sstore.json @@ -53,7 +53,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x047ac0a772e4ac8ab931296ee30153aa532e3682561051d290a3322f93a2ef44", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/opcodes_in_legacy/opcodes_in_legacy.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/opcodes_in_legacy/opcodes_in_legacy.json index e60ace4760..e5b784722d 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/opcodes_in_legacy/opcodes_in_legacy.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip3540_eof_v1/opcodes_in_legacy/opcodes_in_legacy.json @@ -43,7 +43,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x940f8b9fda3b4b279337e71c8a1f091c61b107912470a3a58a68d275f0656638", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -110,7 +110,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8078c68a8a433831e2eb3190d3bcca8fc4681829e33efe017a32cd8da208003e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -177,7 +177,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6b914e3aec4bcb56ec0c1762500acaba60999f888df9bb30284fe16b75158659", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -244,7 +244,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc2beed5158d850588ee001df386e6057e242af5213dca6292870d14ec2e5e880", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -311,7 +311,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3c39937b5ba6e4df08ba047da5cf78bed21cf98acd16c4aec43ccbd7abb8cfdd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -378,7 +378,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x21ac6a18f6e1f63512baaae4977e8dc9d2f8a6a4b35831bcef0aa551c682067f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -445,7 +445,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7382c96342888b0f01f4d1bbdcbe8ce8e20b53eba5bdfb076bb0c6cc403c92b9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -512,7 +512,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x01bfc3988fdd3f1d079353c0f45b66a1421771936ce936d190da0b6398399a7d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -579,7 +579,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x47a3607089342b951314268f6f0556481b83c7d7ff4e234a8d56687692a3f5b3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -646,7 +646,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x072cbf3e60b265f7e37cd289d5969919382e11015f5c8d9b5c964a5167a53729", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -713,7 +713,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x526f44a18c981bda27542116b50adfec68a5c57d0a99c27c7f905dffdd20d755", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -780,7 +780,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x116f952b4dfa068f7849f835064ec71337dfd15748f1fdba0c0ec31bd19df406", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -847,7 +847,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0fc783fb0f35f7e6b665f8e030f3a09e7e750923d5dc22c826813f41367828e8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -914,7 +914,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb92d4f02d82c5057180dc8ae98783f1a2b0397b390a06551fbfcf11bb7b0ad76", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -981,7 +981,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8be82b1ce19dda6e6a6021b933ac81fede33c1e528c46fbc46238ccf12211ab8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1048,7 +1048,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x42bf723f7c962834f0e25fa518c9e3d1d4f14f86ffdf7c8e3bfb11a3b2adf0a4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1115,7 +1115,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe20746f4fe63545b30365eeda89b7f44829653c8c1ef92d1042934dad3ea5adc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1182,7 +1182,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0dd02316bf484c0696ddc39d48573fb89a721d8b77129652ad891b0416ced35c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_maxes.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_maxes.json index be5a9b68c4..d615d73a26 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_maxes.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_maxes.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x765d7e6396e4a510f4d2ae73421026c20aff3fa4c4667b3acccf15bb8974405a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_positive_negative.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_positive_negative.json index 0dbd4cf2e1..569803d48b 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_positive_negative.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_positive_negative.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x257b6ddd48f5cf54ee926fbdda42e72f9752223d6e27cbacc7ec85d789d487ad", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_positive_negative_with_data.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_positive_negative_with_data.json index c36711f65b..a19f90a483 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_positive_negative_with_data.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_positive_negative_with_data.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x011fbaf7ef7682970bbca9cbff320edc2fdc62895b4a10b89c78479fa1a2ab4a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_zero.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_zero.json index db8386293d..7c15a0457e 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_zero.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjump/rjump_zero.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa2e9fd4c48d6b28fb8eba8980b31ea9e02ae6414c8e9bf34ea620b8101c8c035", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_backwards.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_backwards.json index 12052b67d1..be3d38e15c 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_backwards.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_backwards.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x931fcda3aecb913db49b6d569999152263ae0d1a20232ffb74489aa370b60ac2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_backwards.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_backwards.json index 4dece45557..f07a66a291 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_backwards.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_backwards.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8d8e673f606ab844623dce57232cbf4fc72627df5521a51db0e0a6d3951cd3b6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6cd5d3e337c42e25d3c3119c932344f8da13fa947dbd6c8a6a05b5fea3477676", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_forwards.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_forwards.json index 7949ef7a9b..d3f7b88d69 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_forwards.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_forwards.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdb954ee87ac997cf3d0bafd44bd49a3e41a01301e06a9b9518b4bca636a1fac4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5584119c88041b1a8d272ae72ce704c4d29785c8835849f74102142e798c2b2c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_zero.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_zero.json index 48c5b9718e..033fff8e83 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_zero.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_condition_zero.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9b49ab1447fd989ff33430ebb96dfcdbf0a8571a51e5cce46ac38e3bb7f695a0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4696b874867ea37834a69affe1191b5086008c8df7a3ee162255f64bb4acc03e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_forwards.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_forwards.json index dabe120822..c4fc3314c0 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_forwards.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_forwards.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0fedfa8137ecd4ce07dbd62b4127b32bd493405d8f40ee13111abbfb8ba15c26", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_max_backward.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_max_backward.json index d61d5b755c..ff65a935c1 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_max_backward.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_max_backward.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdf3fc69a250b63b8a4679a1a7ce1b95548223bb62552f31f7e813744e10bff5f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_max_forward.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_max_forward.json index 48689c39b1..3482e5e0b1 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_max_forward.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_max_forward.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xba719177bdaa031c82208b009a2d9bea3380aa82f2cc602482a55cf829bf7f63", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_zero.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_zero.json index 01a965fd2b..8938277b89 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_zero.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpi/rjumpi_zero.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5167faeca8445800fd3431e563c2557aca06450975ba1cb418115f625f6f50aa", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_backwards.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_backwards.json index 67a08e3a0c..6d2d6bbc93 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_backwards.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_backwards.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd307298fef4cb2adfd00a43d21a98c1ef9c8fc8f7e7fbc5ae38ff2032e2489ac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_condition.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_condition.json index 67b85f869d..d021d0619f 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_condition.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_condition.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x791c518e8f2ca365c2e1d257adf3e5b6f886c77093418e5d565caccdf1bb9d84", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd23967941bc98dc6c2486d283e71bdce44f7ccbe2059a8dffa45b8616a99a130", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -171,7 +171,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd23967941bc98dc6c2486d283e71bdce44f7ccbe2059a8dffa45b8616a99a130", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -236,7 +236,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd23967941bc98dc6c2486d283e71bdce44f7ccbe2059a8dffa45b8616a99a130", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -301,7 +301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd23967941bc98dc6c2486d283e71bdce44f7ccbe2059a8dffa45b8616a99a130", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -366,7 +366,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x363362261c9e9f65c0ab37c3dbe1f4118daa908ce1ec81ecc8f28955069380d0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -431,7 +431,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7bdd1e5e4d304a62de854e8c157249ba68f06a4040e445c02b6d357293749cd9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -496,7 +496,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x143e5eedfd7a457f29d425b7dec8103c74effee4659bb73b1ee8bf044c1387b6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -561,7 +561,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x20535b15acc7f47452e0cc58de8da8b6b72e7f65a566a645885e759fe5aeceeb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -626,7 +626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x20535b15acc7f47452e0cc58de8da8b6b72e7f65a566a645885e759fe5aeceeb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -691,7 +691,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x20535b15acc7f47452e0cc58de8da8b6b72e7f65a566a645885e759fe5aeceeb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -756,7 +756,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe46cfe377eab729e9af2f69f437759228c68152f62f274411193d3abf89c4137", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -821,7 +821,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe8ff3a415d9e2ecabb82a80d2168ab761ed4b5fd8897d4b3062b8adb5969df70", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -886,7 +886,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x30aea14c8363b0b63b39cd2a012b47325237522b02235ec3c9eceac5a5ff21ff", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -951,7 +951,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0cdcbc5e533a8ec5f39677ea325af91d6352c81e4a6a81273c4608a6a0350d0e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1016,7 +1016,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xacac64d8be6bf2805f491869b06b847a48ad12f357c1aae542194ec26d333ea8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1081,7 +1081,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe8bd4c683a1afd6e14161fb8fe847230c4e49da591c8b80c6438c3400cac9525", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1146,7 +1146,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa825b93e8b95853c25b629ae078cde9def4779d0f1010648691e93f4a4413636", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_forwards.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_forwards.json index 13409a8fb6..0483101572 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_forwards.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_forwards.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x61afe270791ad7f9e0bd9a74df90024f59cb931804d0938315f0b1dfc1429601", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table.json index 18cda7556f..80554fb282 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1427c7eb5a74893a37100df4e538c9b9db5ffaf50bb68216850e5e6da4ffbe2c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_end.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_end.json index c19cf6d64d..893a453dc7 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_end.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_end.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x365d715491b05aedd969ba50f102a563846b5b96d48efd61c4fd51bdaa25d7ab", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_last.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_last.json index 85b6e1e029..6d46347006 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_last.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_last.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xed6a66da64453c06df12610792ec35fb2e15661ef1d666ebd66be36e9ebdcc1b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_mid.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_mid.json index 708f887712..3fc814c3cf 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_mid.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_full_table_mid.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2f2ed3e188f33c3526008ec18a923becc22f5daec8c3711b56aff98860a49767", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_max_forwards.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_max_forwards.json index bdaf8cc342..93d2bd86bc 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_max_forwards.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_max_forwards.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x52ebb03884bafb889011cc17306ba00013fe458927fb3f09b0b6fb7b97b80372", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_size_3.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_size_3.json index c4907f2e22..8a60fd8cea 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_size_3.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_size_3.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf12fbb2f27386e042a4b0be9fa7a2b3e783b88fc6f8acd5fc99d8c8938d192e6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_zero.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_zero.json index 39f4d36ad1..51668abf65 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_zero.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4200_relative_jumps/rjumpv/rjumpv_zero.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x13c650188ce0ae9cfd264dfa53e96e6cace9ea5d074e623b708fb73984bcbede", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_overflow.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_overflow.json index 05fe73b4c1..60dc3b9817 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_overflow.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_overflow.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8b0e5abd706f5e21e222cc171de8bde2316ac65432e8f3d7a824bf3d3c61ea41", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024.json index 5e1bea39f0..5782c6b2bd 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x536f5e301678927b720396a6ac4da9696bf4f3ab248367c8d9254acc41c24a96", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024_at_callf.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024_at_callf.json index 7cabdc9830..12c394c074 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024_at_callf.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024_at_callf.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x879d582ee1328fa7b5f0cfe69c20803cf3973757088db20f0b50d18d104227db", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024_at_push.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024_at_push.json index f6bf9d35a9..599de61a6c 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024_at_push.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_stack_size_1024_at_push.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcc5391b12baad1e23e433f2678cc2f11a9c03793354c477e466a45501cb779c2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_overflow.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_overflow.json index 4285499422..6139780311 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_overflow.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_overflow.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc2d3d790830f7890ae5c2379c1470832778c890942acc40b80c2d97d0bac50e1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_size_1024.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_size_1024.json index 0bad1dd15e..e464b750dc 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_size_1024.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_size_1024.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaeb270aef95823896f15d6390b9e636e89a14bf1b93a201287741ac2f94055c3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_size_1024_at_push.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_size_1024_at_push.json index 6a038567f9..5a265d948b 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_size_1024_at_push.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip4750_functions/callf_execution/callf_with_inputs_stack_size_1024_at_push.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x052000625730b0bc7db7e92fcf93146b17dc851995bf67f90e2d32212f361078", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/callf_to_non_returning_section.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/callf_to_non_returning_section.json index 693181f3b5..706d5d3601 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/callf_to_non_returning_section.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/callf_to_non_returning_section.json @@ -35,7 +35,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb06438897f764e1f9a46d362c90b43e7ec62f194515a94328c7ed2b029dfe2a8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_backward.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_backward.json index 0d94832d2f..e0a93dcb1b 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_backward.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_backward.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x609970c0fcc7f76a0f97d4e07c6c904896c12e15352c3c46e50bed4ca3a2a3bc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_forward.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_forward.json index a9428268b6..576ceb6dd7 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_forward.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_forward.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4dd2b46182bb3995102c0d9f83b2e429cd64e972e2862763278b509b034520ae", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_overflow.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_overflow.json index 24c3321035..45d665a166 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_overflow.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_overflow.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x64d0e3bf52bccc02cc1d1c81f6bc659ce25534e55d465c74f3357dfbbe59e35a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_size_1024.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_size_1024.json index b8680bd26e..27fb94233b 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_size_1024.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_size_1024.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe6e5998bdfeb431dc2b8f54890454efbaacf39552fdf0fc1e0789da2100c91ef", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_size_1024_at_push.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_size_1024_at_push.json index 9e2a7047b0..aebd810119 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_size_1024_at_push.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_stack_size_1024_at_push.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x23674b471ed936f028caff064817f62abfc0b98506ef3c8fe9901df3ef9e3a9e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_to_nonexistent_section.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_to_nonexistent_section.json index d9a894890a..13ef470b34 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_to_nonexistent_section.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_to_nonexistent_section.json @@ -35,7 +35,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa01bfcdb6f8a681f8d44b4e2bf909592726a7f8e4e49244f7d29c121d15972e8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_to_self.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_to_self.json index 829200ce83..bf378a7c70 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_to_self.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_to_self.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5f5ca342f30384de27b257d7eab36b0457a9d12e3a67c34150e368990931b942", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_too_large.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_too_large.json index a30c3262c5..feee14eb9b 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_too_large.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_too_large.json @@ -35,7 +35,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd05921cdb8e6b4d6474bcb44e87314535cfc61dcdc62aaf0625fc0f64d74547a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_way_too_large.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_way_too_large.json index abdbf4e52d..f110c06877 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_way_too_large.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_way_too_large.json @@ -35,7 +35,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd05921cdb8e6b4d6474bcb44e87314535cfc61dcdc62aaf0625fc0f64d74547a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_overflow.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_overflow.json index 25881ed01c..bb67673ffa 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_overflow.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_overflow.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf0590af711a1de3e2301abefe6cef5922ad84975a467dfce840766525a8b6c02", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_size_1024.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_size_1024.json index 1e49759e2d..6e4ad19fa4 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_size_1024.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_size_1024.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x23291528085679743574e4b2374b8599268def3e1a2bd09fb3bddb66dd057d6c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_size_1024_at_push.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_size_1024_at_push.json index 24df07efe4..4c14698a6d 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_size_1024_at_push.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_execution/jumpf_with_inputs_stack_size_1024_at_push.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa45460d680d33b47b3019431e2c953d2c68d40ae87ffc1c7f3c6989ab64c43af", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_stack/jumpf_stack_non_returning_rules.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_stack/jumpf_stack_non_returning_rules.json index 617a026517..e62af9197c 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_stack/jumpf_stack_non_returning_rules.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_stack/jumpf_stack_non_returning_rules.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x60d6c2f697d014d7a677e0c7a69827ccbe0f6408b0b2d1421b007209f16b7326", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -100,7 +100,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x682ec75d0dd4bd37220709f91130c3e9c95322283801377447938f6340d5c4dc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -159,7 +159,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdfdbdcfd3e11b3d0f0cef612acfa79324f91aaa0e27a46c5d02666e6f4d4dfa9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -224,7 +224,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdbaf93691258e99103851ef4ef61e541520cd633e1558dc259e308e72d49d8c0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -289,7 +289,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa85536838265df5c574647929fcc9b502af8f1bee571a7696f64b4feb4d5ceb4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -348,7 +348,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x069be23bfd733b808cbcd41c227d7257e440cb0b9cefb8d73c51b55705489163", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -413,7 +413,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa3af728b459dd476e57036ef5fd610df3c318a0a9b4cc9885ed6ccfc0b60de2c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -478,7 +478,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa91088d4ee2c43c556822b8181774acc3935c946cc810a9ebcd553cb64869786", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -543,7 +543,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf4a714715ecc76ff5c367b0b98f8fb410cc7abfa3ac09501514b471b02872f81", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_stack/jumpf_stack_returning_rules.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_stack/jumpf_stack_returning_rules.json index 403d09feb3..738d4eec24 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_stack/jumpf_stack_returning_rules.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_stack/jumpf_stack_returning_rules.json @@ -35,7 +35,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdfdbdcfd3e11b3d0f0cef612acfa79324f91aaa0e27a46c5d02666e6f4d4dfa9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -94,7 +94,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd8210226de73479284fe1a2fa9324e8d82f50da32e9c9fb90af81a3277c7509d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -153,7 +153,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd8210226de73479284fe1a2fa9324e8d82f50da32e9c9fb90af81a3277c7509d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -212,7 +212,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd820d0e70f49e6eedf49331e2d7f5ba26c9b4c4e32e2b269e2b2b0a4d9fa99dc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -271,7 +271,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd820d0e70f49e6eedf49331e2d7f5ba26c9b4c4e32e2b269e2b2b0a4d9fa99dc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -330,7 +330,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9d7de5e1ad2d2b47aeb6c4d41c17abef77c8be6221f22932129ac5a99df378f6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -389,7 +389,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x18eee758e638cd5a562d85a86b0b1f24acd423df64e781036f854706345bc47e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -448,7 +448,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x48e3b3c235fc43b1befaba59aa0c42b575b9afc2d01292a9664b12efd4f6cb98", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -507,7 +507,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x48e3b3c235fc43b1befaba59aa0c42b575b9afc2d01292a9664b12efd4f6cb98", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -566,7 +566,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06cf4e07d6b5fee3abcba488d6f284e98088e14a13a913fc3d29f3bafec68221", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -625,7 +625,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06cf4e07d6b5fee3abcba488d6f284e98088e14a13a913fc3d29f3bafec68221", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -684,7 +684,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9d7de5e1ad2d2b47aeb6c4d41c17abef77c8be6221f22932129ac5a99df378f6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -749,7 +749,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0f2101a44028a9a7b8beff7b732f8f2450f5cb059eb1d555d754fa98e67d41fa", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -808,7 +808,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x080604b7ca914185eda336c5b44a9fd8b87e7af29a0c95072f89a2cab70fcb88", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -867,7 +867,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x080604b7ca914185eda336c5b44a9fd8b87e7af29a0c95072f89a2cab70fcb88", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -932,7 +932,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x80c409345d06e9598a8db1cad191442ab033eb6889857e623cd165ad4da3448c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -991,7 +991,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x316d023ab7f022c0c2cced118a06363334af68df618803c53fd45f82aea32155", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1056,7 +1056,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc62253a9927fe5b5863ab84db32aeef557c50017eb31122251883478c118b7b9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1121,7 +1121,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd7bdd6ed5ab8c8d5bfb5a01dfb632b9ba3dcf982ab3efd094c6286f10b0340fa", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1180,7 +1180,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x57328eb079cd7b12b7a3ee64e66b26bc0c14443720ad47b0944e7449351e0fd7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1239,7 +1239,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x57328eb079cd7b12b7a3ee64e66b26bc0c14443720ad47b0944e7449351e0fd7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1304,7 +1304,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9077bceb3e6eea87119f882997b7b5f463102f62a4ca7e68870a1951a5cfa6b0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1363,7 +1363,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xba8cebea4991b1e35ad7dc6b62e5e507822602dbb628fd9d7e804c1cafa55f0a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1428,7 +1428,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3d6164a2ccd41ef495b3b51c9c9c73b32257c36e15cc8e1ba436b847d3772f56", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1493,7 +1493,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x31d365c6336dca1ec4652cbefa7fc7824de49b304de0f8a01b2c7b1eef6d26b2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1552,7 +1552,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x70f59f29dc7fb9fbafbb01cc9e0e2ad1e8f60651a99abe71dce1f7f87d7cd0dc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1611,7 +1611,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x70f59f29dc7fb9fbafbb01cc9e0e2ad1e8f60651a99abe71dce1f7f87d7cd0dc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1676,7 +1676,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd7955241ec3f9a5c85ee5847cf7aea1aa88c7ec27d1f4de19c890b00fb914ec4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1735,7 +1735,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x61d47a713d898c75bc2d49e1ef49a0f659294d929d77687904c220eee716ef73", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1800,7 +1800,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc5699a1611a9517e6c419a50c2196dc1e3e77a7fa74fb6730770f01d75859a35", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1859,7 +1859,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaedf852a5ca1dfbf8db63325bae8dac23de4810cc23829e016cb590c8547e304", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1918,7 +1918,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd1461bbf279f643ab6bcf4805b2595b70c845bced002776d5ca2687597fb8f88", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1977,7 +1977,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd1461bbf279f643ab6bcf4805b2595b70c845bced002776d5ca2687597fb8f88", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2036,7 +2036,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdfdbdcfd3e11b3d0f0cef612acfa79324f91aaa0e27a46c5d02666e6f4d4dfa9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2095,7 +2095,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdfdbdcfd3e11b3d0f0cef612acfa79324f91aaa0e27a46c5d02666e6f4d4dfa9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2154,7 +2154,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa82fb8a210fd830b2e99fc2c20de2c9b1ba6f78e69e1326f4aae78325546bb54", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2213,7 +2213,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa82fb8a210fd830b2e99fc2c20de2c9b1ba6f78e69e1326f4aae78325546bb54", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2272,7 +2272,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x069be23bfd733b808cbcd41c227d7257e440cb0b9cefb8d73c51b55705489163", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2331,7 +2331,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x069be23bfd733b808cbcd41c227d7257e440cb0b9cefb8d73c51b55705489163", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2390,7 +2390,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9d7de5e1ad2d2b47aeb6c4d41c17abef77c8be6221f22932129ac5a99df378f6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2449,7 +2449,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9d7de5e1ad2d2b47aeb6c4d41c17abef77c8be6221f22932129ac5a99df378f6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2508,7 +2508,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06cf4e07d6b5fee3abcba488d6f284e98088e14a13a913fc3d29f3bafec68221", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2567,7 +2567,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4ec8d64c9d9bde0f6bed6dea4818e20d7c9cd929b5b012428702a123d8b539df", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2626,7 +2626,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6b6deec2943a799e03865dd742c84051e049d53a280c56d8411293eccacdbc7a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2685,7 +2685,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6b6deec2943a799e03865dd742c84051e049d53a280c56d8411293eccacdbc7a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2744,7 +2744,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc65124730c819cdc2a755fda29d34fdcce454586db0fe6659d70fc336630a812", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2803,7 +2803,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc65124730c819cdc2a755fda29d34fdcce454586db0fe6659d70fc336630a812", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2862,7 +2862,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06cf4e07d6b5fee3abcba488d6f284e98088e14a13a913fc3d29f3bafec68221", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_target/jumpf_target_rules.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_target/jumpf_target_rules.json index 8747408328..338959143a 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_target/jumpf_target_rules.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip6206_jumpf/jumpf_target/jumpf_target_rules.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x98a56e8e560854de9a0dab1b8b2bf78fbd77348d60599398dbc7dff52c16ff49", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -100,7 +100,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9db12e06bf51e9b23201d439f0794bc17319397cadc82ba0131304bb9bae7346", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -159,7 +159,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xadd95b930d171daa1c2a64d157fbe11cfe19883270d4be92500152a7566ed602", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -218,7 +218,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xadd95b930d171daa1c2a64d157fbe11cfe19883270d4be92500152a7566ed602", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -277,7 +277,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xadd95b930d171daa1c2a64d157fbe11cfe19883270d4be92500152a7566ed602", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -342,7 +342,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xef8017705c3094ef41dc6ab2130a133730973e12f59d2643cecaf71bed15edcf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -407,7 +407,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x74b242ec7e43d160fa341ddd055f4b949bbf01512fe2497347d07d739e96b660", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -466,7 +466,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1240e8471c00dc29f4d9df600d93d18db3384e0dc2b470caad240ed41d9d2889", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -525,7 +525,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9a77e204e345ed3d542222d4a713213379615b53e2e723a6beb594890d5461ac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -584,7 +584,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2196ece4231c124d87f8c894badb6d201fada4ac55da27dfa257c123aa02a46c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -649,7 +649,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc3c6bda8fb0921f61b1d8bfcc024352aa19c35b138b175f401bed7b9716fa5a0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -714,7 +714,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc0a82ee366f07e924caf16abe11422ac0cd2997fb36a0aaa984aa54418e9114c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -779,7 +779,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc5c51fd6ac28b62ff2e8d01b70f72177b034520207a9b06b2c713e4b7c6f4189", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -838,7 +838,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x11a5ed0ad9275ab813b99ffd56ff3ebb66e1fba16d3523eaa01d25bd73f363d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -897,7 +897,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaef0330af3d33e21376b8713dcf3c124c42a23f9b4b7b78cc6d657f4b560c365", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -962,7 +962,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4c1538908ff5d63d5652a4de45689b9556ef62cf6375a6ed5b1eb6580556158f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1027,7 +1027,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfc7ab3ccc47d7a4b98fdeced142c9339b031114d66ef0420268eff3989e79224", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1092,7 +1092,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xda0c41f555445f5a379bb4053a499aa5f944cdae669ea9e55f74c45c0eacbf4c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1157,7 +1157,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaa0b1c79e7e4b7beb25124add5251dfdbcc1c7ba4f935b0c7d994ef711b90d83", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1216,7 +1216,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaef0330af3d33e21376b8713dcf3c124c42a23f9b4b7b78cc6d657f4b560c365", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1281,7 +1281,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x51547f562c83789736749261452bcd26e7011c43dad9a25dd2ef8de9a836a7bf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1346,7 +1346,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0e7063997f27b2a0fc5cdd1c88d463db16f74f7d170dc6411cd7030cdb74dd61", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1411,7 +1411,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x55f0c03fe8a502f7612eaa6510861ce3c8cff3fe31f15be3077d5a1650e90f30", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1476,7 +1476,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4a5a5dab0ba808ae070a83daa2df1ede14e5faf35b565b8f397177abcb4fd9b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1541,7 +1541,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xad7cab99265abfccc9fe7c1511cc8a4e8cf6834868ef4ca04511b5459011eee8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/dupn/dupn_all_valid_immediates.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/dupn/dupn_all_valid_immediates.json index 271056ca04..f7bdd1bd4f 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/dupn/dupn_all_valid_immediates.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/dupn/dupn_all_valid_immediates.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x180ca7c8d4e718c444f909d1813d24b6a23f8e40cfa2bda0f1ee7719737caa75", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/exchange/exchange_all_valid_immediates.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/exchange/exchange_all_valid_immediates.json index 64451bc6c7..6dbef360bd 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/exchange/exchange_all_valid_immediates.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/exchange/exchange_all_valid_immediates.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4d1967d716fb365e9a05f95a6e84f7607fb7404771903b39d8715838a4ef953f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/swapn/swapn_all_valid_immediates.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/swapn/swapn_all_valid_immediates.json index a89c349a0c..30ccc47d27 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/swapn/swapn_all_valid_immediates.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip663_dupn_swapn_exchange/swapn/swapn_all_valid_immediates.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1135b5034383b6414e2f708a05ded35a710d2cbf06de93ff8407228f7e723325", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/address_space_extension/address_space_extension.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/address_space_extension/address_space_extension.json index d70bcb0dd5..7d0877f482 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/address_space_extension/address_space_extension.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/address_space_extension/address_space_extension.json @@ -52,7 +52,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x003ed33319472c432588fef01beea870301dc514e56735d6ddf31d23c9b35b74", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -128,7 +128,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1beb2063a8abb7805472d41461a77b8f0d15725458ababff619f78bfd1e9c0c0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -204,7 +204,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e541553e56061cf33126c244c2acefeb1d64e06968a885975d7b4a4cbeb501c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -280,7 +280,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5f6f6015e0a959a6e256c784963746fa90c6df5d24519b0630477f7006486fd9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -356,7 +356,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcb17786203f139890ab75526c21eddffb6e3bb4c142c025a31a09c30cc5f6734", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -432,7 +432,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa4448e7784f81d90ebac59a9fd4d27f2c74b171d2affcae29fad4552c658d91b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -508,7 +508,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa9f7eb85ed7871210b79bfa1f94409210e8fa7f8d60e261d85ad01d6b7ad0c7b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -584,7 +584,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xca2ae3e2886ec70527a49df65002adecadcf777faa33542750fe64ea753b8ac1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -666,7 +666,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x04baa55987e087061266f0ecb816060145f725d5a0af9accff54aba8ac3f7200", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -748,7 +748,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x85695f2bb90ca2baaab5e6dba94375755d958e1aca0b0f653b43163cf457756f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -830,7 +830,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8aed759af2291b8268605a6d74971e0c9125d8441c3ff0c218886bf233523936", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -912,7 +912,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf76475f6d468e9985d05abb4373b09a4c3622f6bf439dd9a8be6c3429b3a518b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -994,7 +994,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x571fab826e759b9e65ab93e6681e526f7d95f6938417a33c01388b78de240ff7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1076,7 +1076,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcbcb1fe39f9846f257843e8b8b1c0689fadd1ce71fc1d41670b9561845ef7bf9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1158,7 +1158,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb396e647aa23010c0d60142847b4bfba275613c25edb6eb613b52fb64c68867b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1240,7 +1240,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9b366010a0cac07702015d3fafab5b932051c6e360cd8900bf978ee400bde3fe", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1322,7 +1322,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcbb5432f2a6925e6a8430ebdec68c7512f5ac4c91754611650fac1e7b3fd7475", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1404,7 +1404,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x01736d8a3806c6f4921518698f3964559c8e782c1eca09814835e53caa8db0ca", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1486,7 +1486,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5acd676173c3d7c1a99afd193d6da1d87903d984d692e70564cbad1a9bd94c0a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1568,7 +1568,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc7d6661971697ac410ba66d2b9d0b0452deca928c080055bb5a7fb7e5130683b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1650,7 +1650,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7ed5eb50f57c9aee343eef4854f948866adf6a924face05928f21af25c66c0ab", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1732,7 +1732,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe92107633fcfbe4d31f5ae48b9ed988cbd7765e362bedcdfbff9707eee0cc028", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1814,7 +1814,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf86a24f3713758d62422bc20a91307eeb6fef0e2f2a184aff17679f545c65a3b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1896,7 +1896,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa5d8929953a864e5f5847dc910a9c256ab6c08e017cafcee6ae6c7dc965818b4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1978,7 +1978,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x38af350ba9adb026b751059e744a2aa96ab959265fc5b215520653d4bc2ec62a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2060,7 +2060,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x64481603f4ad84ff7ba7cfbdf0f23bd8c2733d5d710cb49b367799c3eb622c66", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2142,7 +2142,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x94e8707de51f0671e7dee6983db8b376eba5397264f0f50c5e1a14e403b83045", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2224,7 +2224,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e3e386c3383d076832471318793150ba273597f28534e5df8da573d43cf9b1c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2306,7 +2306,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3099bdfcbd440a7f5e914a7dbb8a689796ce38ea1696b0295104272f033c5145", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2388,7 +2388,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe874659d0d3c0c7adad891e30dde10f5a068fc3ef15b46bc0f93d1f40e84779d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2470,7 +2470,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf47fa67d9fd06cb1cd7e83ccfa5f3851e13a5f56cd39f0d6743afe2079d17bda", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2552,7 +2552,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8b9f16fe337417ec0fed014068468a0b0b655362d20a7c965c0f31922b17c590", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2628,7 +2628,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x931815433d13a3886fefeee84295fb70280f6106c2f125bae113805097286894", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2704,7 +2704,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x328c68b788f9d93422e3881779939d8b60ec159ee3b0fac75e62c5686b6763ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2780,7 +2780,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa5bff4d9c40ddec234eedc469a7703a1a32a38bc944c6be6f5f3905f03756139", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2856,7 +2856,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfe2f532a6e87ab361d7b0f8064903d0297884316e66eda2311e595f7d4bc3d79", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2932,7 +2932,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x72ef3e5cf860ae847274254f122546a17990089700739f4b625ecb8678cdc295", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3008,7 +3008,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5cc6b3e157b6c499c474c40f09b6c0c016d52d189d45ceccfb81570c074c1742", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3084,7 +3084,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcbf9e47a258ef06b607d8921a50aa341ceb54e800f6cd5ad35bd083300d5e4ee", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3160,7 +3160,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf786c6147b1c39b797e6f011f345e8872400e71e4a384a7c12a222920ef2490e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3242,7 +3242,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa6bc587635d8943b89f35ae2917e88e63989af444ea409dd160b4283b9354681", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3324,7 +3324,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7da3630479ae9f3a6ebbf6194bd7565ec175fdcbfa0271ac529b7ff99fdee429", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3406,7 +3406,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x70a66d7fe477db6edb50b7d2de736e90b68d84b338301b713eee2d75f2983545", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3488,7 +3488,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6abd66ffc00a2dd39e3103c5c01cad35808fc9cc9a29cd25261bb30850ccc16f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3570,7 +3570,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x53e13282fc6a29ae4123ee85ca4c6ad86f8066ebc0afa43c4a0a5d03d6baa80a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3652,7 +3652,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc535e1c0fc74c5eb5bf4e8f8291921e594de3fb6cb6e81caa7de061e99db631e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3734,7 +3734,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe5d18ef9fadb649e2b1f8b75ae551602cea9f196b2431a0773f5eb9a487ed87c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3816,7 +3816,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc2b6775a70c6fd6b769b5357420780baec25acb9671dcd29ec00392847124724", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3898,7 +3898,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc0ea3377a892546609d05d3c26b23c19a3305dbfdd52d8b10d969f58fdff379e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3980,7 +3980,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1660a4b1a3bf31534ffe1c69ce0ff8e641e9604b1af385d5803c9fe9ec47221a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4062,7 +4062,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0d612700841278df4c8e77347ca4022f1e5099ebe5d7975a3b1c716aca9f5d4a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4144,7 +4144,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3b0a0de329eb363fb7fec1dda395f93c251007653ee7e604f1354d8a91939f3f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4226,7 +4226,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0014214a6341758b6274e1d9d5ab6fdcdf18200f9cbf8912f57bdbbdab2b27b0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4308,7 +4308,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xff050578e4b4f25b2827f731a614cbba71eb22b3863b06689070adb07af8ac07", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4390,7 +4390,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x01f849cac24dda812619c02877cba6bfd8bb2201ba57079c8872056a7293cdfd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4472,7 +4472,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x55baeae464721736a75b15c4cae321ca9d16fcf8ca694af2d203b55b410776f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4554,7 +4554,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x53cd3fe605d757226b376169d2e6fb348aba4ea38a24f16d3eb39f9aa3daf65d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4636,7 +4636,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xff14ed411f7d245e6a334ecd47905ca15dad23df3a9fc94da545dc6a9b23c193", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4718,7 +4718,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x491f2ae9bc8fff3cb78cf79b2e163f748e7dbcfe591c43db873a9098c53f41d8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4800,7 +4800,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa77011f64bcefa4c687d4ffb78bc380404432ab5361ebfb3a4b287506d9d90ec", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4882,7 +4882,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e247f7075017e2c9708a4a1e42113d9ef9f30199e0f4dfb90061e7d300afc36", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4964,7 +4964,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa48d2aedff0b0bc4ee2c17c89b44196d768c4d2b1d177dc4531c72c7f4703bf3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5046,7 +5046,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf552ec2cd9d14afb4f68e0586396f22742a402517eb677750963e3f6e5bca9de", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5128,7 +5128,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5d322c2c8e29f23859dbd2acfef2dd3347f11c81aac3176dc13b8ddc29ca6377", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5204,7 +5204,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4bd7d32b62c8391a30b14eba8bb3eeb1c3fa71691747faced420a13a155b1549", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5280,7 +5280,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7fd04c26725b8140dcbd11a1a6cce77bbe78e45817e910c3d1450f32f84be768", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5356,7 +5356,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x86072b30b4020b74805b5f7a2c655a095cd933c051fcab6ecb226d51fa0032ca", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5432,7 +5432,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x481cb30f4fb1badd1a1044bf7b367078d63f9de70ec1bd1f87653451ade33951", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5508,7 +5508,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb7be83614f86c1d79fc906c4fd195ea36329967ef51abec92e590bdd2c442f00", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5584,7 +5584,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2c4fd5aed966a6d5f2b590a2906377954f592b4e24db4040e909a12c977261d7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5660,7 +5660,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1e28bfc593d1f2c07c90708fe2d6e47094e9e5c9cbd5f2411c6c8dbdc990032f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5736,7 +5736,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8eeab0a17aaf0fcfacc3e9d07eafd663bde2d0960d417d3f9259bb5bc2982b9a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5818,7 +5818,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0eecbc173b33261d1c2f43f27c38bf5d57d5ec276c46c01707f7754d58b15340", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5900,7 +5900,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3b970821cfe47b602a6a9cad977fd562d52f3fe54a68e88d970ce6916c7d9171", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5982,7 +5982,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb9638368ba16885823bf8e63b71797079778efab3c40915af244d852fb585c82", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6064,7 +6064,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7f1ab01e73cacf2e73160884b2e23a77ccf715c6d2cd38808aa2d22ba06e39d4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6146,7 +6146,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1784338b1bc64bd07acb3ff0395d2113ee188f5794dd72ada260304848f3930c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6228,7 +6228,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3587723e6f57f28dcfe6ff5c022396e107c925b9f971eb50f135fe793eba579d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6310,7 +6310,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0c9183b22fa4dc6a960caf60a4dff530e2dedc22053b7d46bf68da948c130282", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6392,7 +6392,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x59db9fa652d91d73ed889261e17b7373914b127df36da1fab3d2949ae8463c8d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6474,7 +6474,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe65272dd72b6286beac73ba897d37408cccacc87158b2fae57bc506d9a61e2b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6556,7 +6556,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa32519fa84c4b6785cbdfa3e8af7933eddedaa883e7461da06b489248441d2b7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6638,7 +6638,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb2dfc5e7766327f1c4e80a65ffb38cc1c4a1039e82f0070a814686cdcf2af3b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6720,7 +6720,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfeb881930e134b5b2b90a5e18c919efbd10bc1dd7a930021c5841770070eb8f5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6802,7 +6802,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x40b501a16cb557545cbbdca5cbeb6faccd5ba25d7998ea47dab09ae06709eac9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6884,7 +6884,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf99fa1552c2068aa1784573c225dcd698a14ded74e4be965b843ebdd21fcb65f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6966,7 +6966,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7ad560c90fd0b5752d24963362daaa75d3bde3b0286fa122c6ad8304ef73bac2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7048,7 +7048,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc53451fbfb538d4b1d597b0db59d645ad8a37725581516b6133d0942f060dc4f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7130,7 +7130,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x50a77bdb0921218e19291a0a5392eb1824ae8b217ec03ef577d823ec6f1899b9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7212,7 +7212,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x496c977ae7ebba9e855321798dfe5706c74e0c05c92e70affd1c3817f3541347", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7294,7 +7294,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7920258afca5c02e33f92e1bb9c0a40f49da4ab0560c58d3e2c2767f6ea1dc90", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7376,7 +7376,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xebe5ff679c855efc2ddcbd7a7b9b39191857f278db008e573b12f0b4aac70e3d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7458,7 +7458,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4e8d2a9baefa104eacd0a7b42d500a06e695df764c6cdb786a277088979a6b5a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7540,7 +7540,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e14acd8917b6c33a275772dd52eb36f1749de4eb8cd8a8b929b06800f3dc1c2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7622,7 +7622,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1f85f0c45f69d1f2ca8f281abcbf310bb449b38cfdd3531abd3fe2438a340b69", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7704,7 +7704,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc28b4b61587f0c52b6c595e8df5c0b59a42bca184f330de7b09679080019e6be", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7780,7 +7780,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x447bcc600b97c8d6c1025448f447c83c77d7fe43944a17e127f1130fd8aac39d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7856,7 +7856,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x04141ab29b19542cf0873dfee0c53a04dbd38ea210427425820c5780026cbc0a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7932,7 +7932,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6fe6e1ab49d387a494aecb35c5fb4fb1f76a250a32b9f391bfd5080f597f74db", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8008,7 +8008,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6df6b69cd65635e996d9164b420a014105a77be1181a91f97b209c87adfc3709", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8084,7 +8084,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x455950bdbc4d45e3222a90d740b90de5de87e3f58f936074bc0afa9c6b606ce1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8160,7 +8160,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xef16549578243cc5342a89d395afcaac09a5acd38c6990e6156b4bc3aa70e4ac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8236,7 +8236,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5f09c618755490d907526a2e0abaede3c4e8d7e70a1f732f8a5035f385358257", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8312,7 +8312,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe19f5a29b72902e3fecb3781066f08d8af0f296f31927218f7a2073210adab19", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8394,7 +8394,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x877b66a0ff0544256485d4193fef7f9d2bef24fc5d1cc27c5926cd5bb0c38124", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8476,7 +8476,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7199c3ffd9487fcd5779124113ae24a313ce07d790215955785585cfb493698e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8558,7 +8558,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x73ddc1a30bc3bc43f6b3ec8fe5d4b08891ee196ab70fcf829e61f4354d441548", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8640,7 +8640,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x273e2614491cdc56e311b8427f478942004fe930f5e755516b1e11f57f77e6ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8722,7 +8722,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7cdc36bff217948d900e0234b1cc28b0035e15ccbcea5c0296e03f0d55f04b66", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8804,7 +8804,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4aed3279ea608b90db886ec385956588568ed4507b7c55f3cc058d07a2879b57", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8886,7 +8886,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfb0561d1c9036868088198f790115bf7d1843b0eb62e7a7a2d119e936096f35e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8968,7 +8968,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaeab57ae24521e579dc8333b11d81644d05a4e5328ed4c98a64a140bf782e4ab", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9050,7 +9050,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x59574e3944564aff15dffbe561c9f00209306caa366e046752473c84f0f555f6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9132,7 +9132,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x85d57b9067fb8d68ed64dfcf25b5f7d90df1bb138d3562cc981c6bf6ed321a9a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9214,7 +9214,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x34dc4b1fa06b3e2196ad65b4c0d3e725e99a4b3c59ffe2d3e14c091179d35d61", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9296,7 +9296,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0996d42da796ef3c2526ba65555016f0e971c42b27c42fc6e14a73d7a6c805ee", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9378,7 +9378,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7f16ebb1b14a4d4c0ed7160517d06128f7cfff060179421ba05e10879e5f19cc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9460,7 +9460,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x031de319598bc1af68f722ce42795dedb47e060ba1c6abc13b89fc6b8c147ec8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9542,7 +9542,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x733d001cfc9a652143421f5428a099a74157f4b9be5d3b89d16c3016a501bf48", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9624,7 +9624,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6bb549361cadd7a5e89810ef6beade290e1cc1d8af801d5be12113f125f20d36", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9706,7 +9706,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3100f164f193547bb1ded7ecfcd4f0c61239e922b716ec18f7c58f3cb2a9f3e0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9788,7 +9788,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3844af90c85d67b475f3fb12adaf2be380b73d3a577fcab2d7786782b2f9eb91", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9870,7 +9870,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8120251b96658695f0bd54fd6319ba9f6e22733e285fb92ad692e8b71c432b6e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9952,7 +9952,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7272a6722e813b7743e7799a5075c35c0b1491efc6e048f943f9b2b36c08d164", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10034,7 +10034,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaf80985a0b74b11d82af3bf65df24f7299175b1fa4e5697655660e57545aa377", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10116,7 +10116,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf55035bf081d8df09354d71c8f77512dc5ded2a3ec1c52667da8ef7980962a0a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10198,7 +10198,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd7ce81306b4dae9e50b63569ebdecae8ffbffdbcc08c0b5b079cf2d58e9441f7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10280,7 +10280,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x09b1c4f48237af92e42fbc48c14c20266b8aa415fbcbfc119cf8e868daa91036", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10356,7 +10356,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x84153311357f4ec774abb4e3c79df64c60cf57de5c231178b2b9cf0632b03f43", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10432,7 +10432,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5bd8d31ea60c210380d4c31658ac83a609690630dc6d7f3802354fe8f987d70e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10508,7 +10508,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3f2edf947976c5ff7fd0b1b592f95f62f315ab4a153b588511f9679d2ccc51b6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10584,7 +10584,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x67f4f821bd92e8898955c8f88c01753fe0b986011460a9f3b2aa1e7c0c3e2804", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10660,7 +10660,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x41e0fb6c8e07616ee2d9359d43728120bdee90065e628312e709154d6cb9a02d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10736,7 +10736,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x335c148c193151a260b53a5ad79c9b5126169657cdcf1bd7da7ea10e86e70421", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10812,7 +10812,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7173e4c417266c420bfbfe191c05d8d067dd1769d99f139e32dccecd5bed030e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10888,7 +10888,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3f711c3e0bf5557d50ca54d33d0a1d5af02bc64553b680fdb05442a2af6182bd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10970,7 +10970,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7eda8a572ac0d64b92d95bc11d98240868ceb82a6ab0188c1ea13a9d6e8d1456", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11052,7 +11052,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6135247ef7cd50c4aaa65a8924c3e21b3f507af4e391ccb7ff215d03bc0ce8d0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11134,7 +11134,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x174ef53afc4a6fcf406c592b54e2301834aa502deeb0c8dcacd8158268e0b234", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11216,7 +11216,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7d288c57651b98925f641d6b5e989501a0a9cc24b6c23e98e95908e1761e3c1c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11298,7 +11298,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa093f46b6cd084275cd2d6f3a9f7d20c531a22dc95abb8d12139c9d58de1eba0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11380,7 +11380,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0c1cfa4572e8a0020487916c8dda0818eefc572407f1813816d1d1a91f04ec5d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11462,7 +11462,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7df541146440e0c392949b2a0b8d4b93ef252ca95b2bcbfd12924e416b22ee4d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11544,7 +11544,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8bbe74e71d34cba04144f2fe582c8e06925e09dd4c963545dac33c269cd88435", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11626,7 +11626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3f65100d99b73b8b08e555559335deacd414c846a5dc5004c9ea266a644c3fd7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11708,7 +11708,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x724d4683b60716d1f5bbd0f44f5e55aaf7d992554a4fd4627e62ffc35970ba75", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11790,7 +11790,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbe1acfa31269447154af735b4ed39ab6da5bf4673221199f8e1dd9eef3a8b37a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11872,7 +11872,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb721f6732b47b69b24870a6129b512b0bea5c1052b49da0815d094a4af85ad4a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11954,7 +11954,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x086ec261af2006cf003b3b3b216755ec3e1735c606e81aadba2f54f395fab7bf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12036,7 +12036,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd21150e4bbe1f144d982010da9d64a69dd1421199bb6fedd99a4127cd9af7747", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12118,7 +12118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa1e31e8aa3fe1344c4cb9177160728f21bda173d57453a2eae535ffa829ce109", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12200,7 +12200,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x674a9eb4aa2c9e6c52ae597382aab0e29f19bd88c1d698694d63e9911521a35f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12282,7 +12282,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3da4291826e6ac7fc2e64d8f4f17df4e4d18cb67f1f2228648c08e2ccc2e5f2d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12364,7 +12364,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x717f2de06916083b0116af892a778c09bd9c446446fb7d265b331b07d6e947b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12446,7 +12446,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb25dc0d4874574d618c38232db914693a28c9511a4291bed07335664254cefec", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12528,7 +12528,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x964d02f9d146730c02f62fc2f9caa76385c7ea9c1e822e560e01f1b9d700adda", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12610,7 +12610,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xffc4ad4e40c2519d14caac91685642b6253592f18aee1b23531f1d1cde27c8d4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12692,7 +12692,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x93f64d15c0e1950474d2f34a6cba72533c285d22b6f6adc6e028c745c51995ed", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12774,7 +12774,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd88c91e9701f5660414b14d09b9413d2ed5ef28bc31c316a20de4a71ae8b2852", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12856,7 +12856,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x21912786c7114b7534291d24e9ed5fa22a278053503175b94ebe017c7be8b24e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12932,7 +12932,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7446e4ba88e1fd30ad9bbbe8847f9fc7df014f1ed1e0d7e556994b6f7e0cb875", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13008,7 +13008,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc631c0d5d15b94f6e3412b2e9d51195efe4fed1f8d0d97f809b0c22d814fe27c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13084,7 +13084,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa8da7d49b5fde7f27fd36024238308b7cd3cb9e80e9aa1c01d23e8793c413d19", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13160,7 +13160,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0c1d0716464e166fc20cce39dcbc8db30a54266fcf13394df4e9ea3394df0cac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13236,7 +13236,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa0a3bb9c86a8143be27fb58b90ae254b6b758a46f86973aab1a5759e92363f5a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13312,7 +13312,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbbf8e62a6f1fdcfae07ae5856ca8baa2f34d37c5f80bff12d865313ef2abe5e4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13388,7 +13388,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa304a7f4142d21c9e2b5aeb1e3172695d9424f11262e5674af5d13d55c6fa3eb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13464,7 +13464,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbe1262e52b12b2f4be93e4da39295adf53cce1d2051cdf61d9150e9b0ab5af24", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13546,7 +13546,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x69cf602ecf1e4d879ab3104c13bc25ee5402e729e623734a2164131bf2498bac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13628,7 +13628,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1ca30017e6a9abf74db2236db058f4f0d4f5926bccadeba61cc3d2176e6dfed7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13710,7 +13710,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xed6ae645168f6fb5e7b2972e1a216500d1bbe2d416f3ed9064d77c787b169764", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13792,7 +13792,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8f355a37c4b7deff811c3c3d4bbf3c05db9385d524e63e3e92a48f272a31d7e0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13874,7 +13874,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x750863382f319f57638fbf21eaf05361ebb82594b300b6b04fa5794549512cb3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13956,7 +13956,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x414308babc4f06a1dee1fe49378c21f1721283c5d4f040facf05b0a797270854", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14038,7 +14038,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5b679974aaa7c672a524d20a674864d1348fab374a351ec9c7ce4c7c76cb8721", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14120,7 +14120,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x971dbd75b979774afd2ad776555f37560af9510351ac29147e0707e4227773dc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14202,7 +14202,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa82713257730aff8bab768fe60d1101ce5902ea84b33d7262af7cbe024df9962", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14284,7 +14284,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x02d9526a55b1e1c6fee59d0aae18dfb5878fecca5de561435ae020dd4aac9f91", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14366,7 +14366,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc46592925b7fece371a3e12f9037f9bf8d6c6329f07525851ec0c6bbdf1c4663", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14448,7 +14448,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbed20931e9a8e97b965913a1ab623cbd56161d57db136ae3b636f17539cb4b04", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14530,7 +14530,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x58db1587982333519f5945780a30fbd9c83743cfd67aa602ddea07e62c281149", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14612,7 +14612,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc4c866c248fddd86c08dd6dad70535ff16eb2cb3766b47af7e8027ee9baad43d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14694,7 +14694,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd34cf35107bcf4af2cf237f030da74865ec555b33c698a85e6eb2b220f0dd97e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14776,7 +14776,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xacba43d3a27c6d39b374c81a1fcc8c66cdaaf7729610eed73c2ec5e6148a35bc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14858,7 +14858,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbce25d859c6221d9781abd9a2b844246540d345019e8b1c7ea7fcce98f9582dd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14940,7 +14940,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaa07a48034dd69049742cd9ea9a5263ba5adb3b928238a219a32debc6bd52f3d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15022,7 +15022,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd212a756a80fd3e0843e6757d561c6a74b95a14377c379b36858119352bb5092", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15104,7 +15104,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x39cb6ccce55676f2d2d109ba978d79e11c958d1cad88ee91c6ac518ce1e46f8b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15186,7 +15186,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8415de8bd45a1c6f61e1acaafd377ebc6511d0097aaaa202b89773a8b9b59022", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15268,7 +15268,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x45e0eca65c88d09ee70d3f5ff6e7606f03c4dd770dd40cd4567ee02085263824", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15350,7 +15350,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb586159580e434e4abb6b76050a7521ab28090d70a886cde4a52877aee688d6b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15432,7 +15432,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3f27742a2007caad65cc3551cee11403ce37423e77c53f6a0a49bee8bfa31e83", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15508,7 +15508,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4fd27ab664e16b0bf8bd4386c76203b3cb7d7c4c0d3b196f6a612d6c63f04075", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15584,7 +15584,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x534e36e39760e0e1fb299361ead4d67294246d10d3fbc1a824d1d4ee10869359", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15660,7 +15660,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb247be5d0f0c7d23c85cf27f60c424f18bda3187d7fb7d4d1745593f5cb83236", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15736,7 +15736,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x83bd2b9ced6bbd225ccc81a36b4a9c6cde7f45bc988c455f97af4edd2fd10c18", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15812,7 +15812,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb40cfcb80b7e3ce26f96ad28ee3b82219847ce8228cd4c41162e3b22b55e39a9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15888,7 +15888,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3d2d6c9299e84bfdd73c2f639aff91826eee7ece36bc389ca537871bc959fe78", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15964,7 +15964,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb7373129c61bff2f3ec21a446df7326979e232a338d7d9055f6187e56291d726", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16040,7 +16040,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf844e96a354751feb8beb054c2a00a6477a6f9378b6c5a53177db0d6ecfc322e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16122,7 +16122,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4ff3f0c854ad37777d7002b96833a0360ce0a1d0bda1178e4f51f87e03fc705f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16204,7 +16204,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9f34f6e344bf367b698690ddb5e4dfc59f06abfdf0af6ffa1cebbbf23c2c19fe", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16286,7 +16286,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9f820e925395a2c6f4b9b1482f8f4ab193f5979c508269b0577ee9d098821e90", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16368,7 +16368,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd00464b764b03a305a7cc9b4d63119247bf78667b260cdc43a6e97e349c4f4b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16450,7 +16450,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x665c50e568ed825df9b995328c5bae76e38a048b92e6a741ba7ae733724ba434", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16532,7 +16532,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf328d09008dfc95ab8ea9fcf218a216b819479f8e3a479cba1fc50d860d4fdfd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16614,7 +16614,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xff4f5532f4837c5be019095fead82a76dc01828b817b461d1c88c2726c3abe80", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16696,7 +16696,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4a143c6d2e30961c8ff0d3d649f1e2f57aec0c1946e9e0ec4b103aebfc9415df", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16778,7 +16778,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x33ea5978ceaa7ff87bf1e24d1eac0450c294377c7f72a90e1c4417a0add2fa10", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16860,7 +16860,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x553c352c0740e29737de5e971d405ff10dea5ea98e115eaab4a00e7857df6aa5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16942,7 +16942,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x71fee12e5cd5fa837a2f3322d9327b70fb948f5b158ac60f079bc51504bb38d4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17024,7 +17024,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa1baf78c2c6032ef9b7a6bb63b63b90153f67a977dd958e9a154f9d8e8ef910d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17106,7 +17106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa98fe53b7846e7895570fc04cc4a36f05a61259e7016f77eaf333da8541c7c68", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17188,7 +17188,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4691cc0c2c61288b847e2efc187d114023a736a38ea12c3f3adb1d10dab090b1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17270,7 +17270,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1f98989199c295b0ba959ebbc82a61adb59f272c6ea51ceca7c6bfeb5657e43d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17352,7 +17352,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2b9d579c54bce0a9846cda26271115de1062b8fa6abd8b1b400520459f1811be", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17434,7 +17434,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x44f5becbc28b731f1ff0fc607048525a0c4d0b134cbd6c7d866750c34f423bca", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17516,7 +17516,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa2d3e9df4f3d400e78f1f70df2f7f5d4edb369f0a42e67e353d6df94dfe5611b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17598,7 +17598,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0340b1c94e082ee352fa23ba030ff2b64caa4baec25ac078f33d37dc25ec4b3c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17680,7 +17680,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06e6c43510bae41d807930274de439cd90c01cf4a77da0957105eda64c23a0d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17762,7 +17762,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x33f4484206898d2c8b5352791c01256ca50cc52f91929938dbd18b3f5c8f5b7d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17844,7 +17844,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3585ce06f66e2422f39efdfd607774615edf06fc2df059b69e067a575c0a301f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17926,7 +17926,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x099d551d870e856eefe044d11b6348a94be454e17ccc63f639c8795ab2d562c9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18008,7 +18008,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7f707f3267e8ecce446d3dfc66c7ca545b422d9d0b0ea03b28180c2afad15dfe", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/calldata_remains_after_subcall.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/calldata_remains_after_subcall.json index dcd1e4c08f..8fd3df2de7 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/calldata_remains_after_subcall.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/calldata_remains_after_subcall.json @@ -57,7 +57,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8368e02ff09c2decb86770dfc778605e413304ce7dcdc4af2123653c38855275", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -138,7 +138,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1d4d62df314df63de05b5f4a8938befe5e0b73254aa0fa22c6c7c9baff61654d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -219,7 +219,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xff2e971f88f096d450e65482c25fe37741039a60ddfd9fc29f1500b80a6ad44c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -300,7 +300,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6726e82207ae6458606a27d5a24e26b1ea7e260eb34fae5dbf498800a5252bfb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -381,7 +381,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xff37a8d9d5309075854a0247e8949d1d55cb958a7462eec09df075f4e501ca5c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -462,7 +462,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x11388b46cb98a9c2f97144021985e6ef88d046d80588035abb831de24f07ee14", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -543,7 +543,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1e5019c294ed2b16bd91cc7ec7d6a4d145eae200f87a04b02c177e2cbcb68f28", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extcalls_inputdata.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extcalls_inputdata.json index d8ae5f4e71..0a36313527 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extcalls_inputdata.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extcalls_inputdata.json @@ -49,7 +49,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa41a9c21a9ee7c948ffa06eadaaab70141337a9ab1533b6c8c1576ecdce95695", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -122,7 +122,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x57bc163fda903b624fc914a0da8dc2941b53a3fdaa55b76bf0bee4b2810816fd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -195,7 +195,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x979ba027d45ac7ec8465f6ecb1131223c81aab578f113b61115557b4bc4f3845", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -268,7 +268,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9baca3925a539329693527674fb722922811723381c125a52a1e70f2d6724b32", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -341,7 +341,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1700125fd9236194dab822c2933ea3aa7c5eed291e4a7bf1d7e4281ea9378c83", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -414,7 +414,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfa02dbf989aebffb1c227f6a296be1614c591c07d46e1b55a2cfe4698821701d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -487,7 +487,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x40267e6aefdb69c78668e5c995a19d0d80b777c3ee372dcbe587ac6405e02f05", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -560,7 +560,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8211cb278faf6039325f3f95e6954a11fa993a9149980bf5d0824439d09c38dd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -633,7 +633,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x40a010fe398aa2d1256947f3b95b78addb9a000e0d3ff13762ec918c8f7e7128", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -706,7 +706,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5678c9ddfa0a0b2a10ecd7804d2568e000437cbd915e838393aa27ae2299e572", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -779,7 +779,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x88932bee3126529a41515f62b38a2fe8305af4537d82950be3f30b86085f5407", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -852,7 +852,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x323e73346889fa1fd335ff8fddbfd7583e9a76c521c5808f419fbe1f8243491b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -925,7 +925,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xef1ccf5db0c8f917d01a034ac8978e59f6e554d2e01066162373802509e48b74", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -998,7 +998,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x71a72f4e02ae9c42aad93a4705be3a5534df15f3a3fd4b2b99112b911d33118d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1071,7 +1071,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2911c63e6da79d814ee1e119a5494e01c021e089819d7330cfed5a05960559e6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1144,7 +1144,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3310fa66bc9c7e3a712b9465b1dfae1e3e001f0ec67f6d8a268c53f5f94a595c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1217,7 +1217,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x81a515ce3ed110ba66db1f18596fe318a9cfe748f5a58f03d55ab7c7133b932e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1290,7 +1290,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x178acf66ce51b1c0fab614079d94b07191e43e8ce1ec394c7a06c95f8d2da588", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1363,7 +1363,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf01060f427caffbf36992bb2abf5746119f8fc127261fb4db299644db3fedab6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1436,7 +1436,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc100b3ddfb7662b1c4dfbd0f82b5e6895be71ec95055addfa78b9bcda3b137a3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1509,7 +1509,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1bb3098196eb85a9a9a0c3d7e5128ca9ff36e327c924d835980484dd023ae3bb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1582,7 +1582,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3f7675fd2556a399b9b2e877503a4ad5da41af047648ddc15cdfbedc48a5e7d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1655,7 +1655,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x43e361da89cb0be5a48b1c58ef97ddea6ea6e1c47069f63b49bbcff3ee73b6dc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1728,7 +1728,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x842ac7d99115846fb7cecb98a268a0ff671ae5960c8a053bc0c137b021535355", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1801,7 +1801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1ac095b2aa4854337a6215a5d84f162cdd95651035f5bb05649b8847249aee23", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1874,7 +1874,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2eeb641707bc2fd32bc129c5a0ab6178836f9649948daeb6221499af81bebe78", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1947,7 +1947,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x073bbadb0d96d89a0ceab99d425dd9d95a7bcd4c590d28068e046b8a8a35c8ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2020,7 +2020,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0d93f5544e59e8ae24ca937ac2696da26636a8332876fa7112191119755544be", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2093,7 +2093,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc26c60b5519d56629398f978b7ff99a38d9f351c57890600db11b4443f2e6824", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2166,7 +2166,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd0063635a9d79d33e4734f870a678b65cb442d17c97d8edf5435ed69d3f3b554", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2239,7 +2239,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x39335ad3f3e1313a046bbefc2e5032801d1799a31558f2b9f45dee8e44c331da", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2312,7 +2312,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaa02b866c495636c796e654be31502782126aeb91bf4dac5bda4b136a20c54f7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2385,7 +2385,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf96d8e3b56f84cc498c081b13a88555c5a543eb99d5957d1a632ef843775590d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2458,7 +2458,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5d0e07e8af9d77b1139bd4bc28a5032482f0cff27fd17c3265b535c4d1f09432", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2531,7 +2531,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x54921b126437d07f478b84abc86b47071bb5f9131163f6f181d9bb29f74bbde3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2604,7 +2604,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb9c07b347052c16e375b237ed901a41805e19fc59bfa27829d20caf43ae62667", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2677,7 +2677,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x93a84076acdf061113446902811f90585215c9a7f65a42c92760a578fcbd86df", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2750,7 +2750,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x145bc274081274cd8f936f24a70ef6ab103d0b0ca52e2e7e9ebeb433dc701707", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2823,7 +2823,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xff916b590b9450f9161774b972d2bca539f617e5eef14bf91a77ded82d09c0a4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2896,7 +2896,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5ef94db3f750b041f6f0ee53c9437873a9df3bd011e725675a161ed2555ad79e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2969,7 +2969,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5d6162b59ef21101752a31fd096e2b23bf19e752779568d01dde7763fd922db8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3042,7 +3042,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x512f76b4564d3f9dbda6be5c1ae2657f3ea9506153d1e1a9817ede4c11634586", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3115,7 +3115,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x59cd1ac98eee4e96ed67b16cdd385136019dc955398a154b86c519a3a432a553", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3188,7 +3188,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x01c3f43b16e18037196934f4119bea7a492ce5cd47cb01ea82bc1ad6c80231b8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3261,7 +3261,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb2bfec4887519cde26156d322af286084c7ae1a79b1e389c58c61a9adfbd64ee", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3334,7 +3334,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9a512aa6e43b26fa70746e2340e41f46f13c98e18450c3d27c89155fdbbc01d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3407,7 +3407,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xee35bfa2c3d1fc843f22dc84069f0b879b4d72830ab79de950ffe18b4f198358", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3480,7 +3480,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4b5c9d62fa84e0efb29619ccf0712ff64b33950c9532aece8790b8305b385444", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3553,7 +3553,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x866beff1e1f88f98a1140d2150345e608a683299fe5fabe91b12b9ebb10ffe58", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3626,7 +3626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6dc54aca9464346fe86d8a61d0ad79a1e41da0c6366b622869503dc76562f25a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3699,7 +3699,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3eb054b6dc386aaa69f5cb421d9ee1b6aaf263b4ae4b18561ecd333cfef1a51d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3772,7 +3772,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9eac478ef039b83b17c62f7ee4675da9ad44ede378182035e64a4473b3ecde5b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3845,7 +3845,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x01d9535b02178f52ef96b007873abd2ba2ce12b86c21ecd4746984ef8bd0620d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3918,7 +3918,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x613ff410a23371776c7f95c1d647505341614df5db0a48c708c1c36d6e275079", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3991,7 +3991,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc9f737958ef8be3bab691e3809694be637638cbdf23381ffc635ce8ab8f839d4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4064,7 +4064,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x02cd1a07515b1b2c99c60840329aa55a4bd9c7c839eb748669acb915055e3182", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4137,7 +4137,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6a95ee7c77bfc1682d08787a54089a34c94bbce15a4bbb32e2eab2594a35c8e3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4210,7 +4210,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x26f8b451d8b1869d60f52c9fec87b0154cc96131464682785b8e1577e282d5e2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4283,7 +4283,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9ee7aa7718465b24c0a76b58a53a031fed90f2c02a39d5afcfc32ef3d343a6b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4356,7 +4356,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7f7c432a1bcbb8ed96dce5a9d98b06ef7ec7132ba8e20c5d1d5649a6629a4be8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4429,7 +4429,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4c7ad0a2514e7c8b01767f8765122f9a1b5e715b7b4a8a99fe617d3b30c3ab85", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4502,7 +4502,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6d8e577913a93fcd13c1c8c29d747cb4c64bc38d384663f100dcda0eb325f4e8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4575,7 +4575,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa5da1ce8063d4fbd5c99a92e6600dcb007d5c60213f39346396f2f6eafb1bf3c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4648,7 +4648,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0e2921f9b42a862471fe3d00d22ded81513c035c81339fad0d56228ff01a1bf1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4721,7 +4721,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdb91b1f2231f69a913ccd78599c39a418537462de0c4040f9f9a9d51802e1596", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4794,7 +4794,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4fc29d7480bb766ba7ed5941eadf4b0f4002b2bd3fdb3900b8e0072b3c2f6662", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4867,7 +4867,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x47cc9194a48e61dbe95479e6a7d8fd49280e488aa8ece8c97bda1af7c9b459b3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4940,7 +4940,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6bc678620a84004e6d480f12c847bc10acc1a79a8b9f79b5969a4636263a2bea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5013,7 +5013,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6929304f892d00469a8b3546bd44b9dcca8d11e98fe345e9c45462f607f787c4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5086,7 +5086,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xba63d1be1f1146b2319d9db152fcc422387ce05a0a7c1bbd85c0600c5672a686", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5159,7 +5159,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6daf12d59d0e16272c3e1ffeb175116ac924e801d621050179c1edf674c5dec6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5232,7 +5232,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4bc22a8c2abb49cf7947b92f16992cc858ef15640ddcaf3c892a345a24de4f1f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5305,7 +5305,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2406a753a03f155b018e007d84ae3393123bd76f70a3cc3ceaac776247af0a8a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5378,7 +5378,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3b94bc7bcc0437372a384d63400bb7b9791949239647bd0219967d11257a4349", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5451,7 +5451,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7cc965c0b9fb21116acbde9658b2a17c8c25eeb144a9278688cba60a46b5f01a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5524,7 +5524,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x53ddaa48f9918581e29b1a152128bbbadc677a8d854ff0cac7c8ce66e782cbc3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5597,7 +5597,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbf0abd14e243fad78f18d8ca2a69bff6c9d9009d09af0024e021148f39d7bbcf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5670,7 +5670,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbaa80ef37bd65f8ed5228af0e270a0f092a63ea0ab5fafecb16bbf338218d981", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5743,7 +5743,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeaf38cd3acf9dd12540d0069b17080dc12f30c7d0b715cdfc139dcc89e642f3e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5816,7 +5816,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1ce8b24654015031f051a180178479d613a7b7c5488b865e1d3b6c071cd0a862", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5889,7 +5889,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb36dfcbf7bd28e8ed8009d964433f0269276c681b8d180aa0b6d72bebafff3a9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5962,7 +5962,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xde5ea65ab84916f836b99551edd31c04cddc1c4fed9385fa4e909e960bdda595", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6035,7 +6035,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x933cfefaed1f9ba65ffee29dd2ef9d7a05f32d114663212a8a7af2585492cd66", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6108,7 +6108,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9cf15ac6685a611e5d802956d60b4887315040d8964b2ba700db628f8c6843e5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6181,7 +6181,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0e1fa07b37a7421aa56a24a3423861c61cc880468bc31552e84b14e7a4619d7f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6254,7 +6254,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x54098dde1864fce82fd7e438f5998a33d461cabacf471c0b9340c6188d00dc62", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6327,7 +6327,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb6f418f48f4e041ba523afea07b356aaafb7b1a7928754f1756013abc2a616c0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6400,7 +6400,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x69b57cd80fbcdba9eb03b3e82e6e9d2b9baba9e180a9ed2bb3dd8b7b81a48155", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6473,7 +6473,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9b43bed477e262c2617911b8a343056f54d4186f93328f1b83cae9613ac41838", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6546,7 +6546,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0cee68f940a3d3e7cc46e63ad21d885cffaebcbf294204c9b7a97cc39c48e860", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6619,7 +6619,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc5a7385da9fbab1f5d303f451fb63be5c5f48138b5e5705592b2ed6c8c5247d2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6692,7 +6692,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbd0f3f65b89e262936b413867a8f823ee6c84f1b0cb515eea756622faa8a821e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6765,7 +6765,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0d60c4a3f7980b68c4d7e411d94455c5a859eaaad72571f4b429070912fbe1b4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6838,7 +6838,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xee4d2bf6c4d01945d7bcc559562e35142294399192a6d1cb7b18235d653d5398", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6911,7 +6911,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2160f7038f19af838928c653f9f4674c1db90ad55ef0b336a154f0ce0c32b9ed", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6984,7 +6984,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x134a784931a3d9e183717b971f18610aee5775f8ddc7ea546263c847dcae6555", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7057,7 +7057,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7bf08ebe84789e4d05e832ec661bf8b56a94aea4a67339170c26db6585c8f0e7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7130,7 +7130,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2dfd85f0a5367ab221b1c54066efbb44ea180afbe531d69783cb43a61583f284", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7203,7 +7203,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5b34e85e9c12564456108a12d2c060698e6f314797ed0860711163a147f49eb8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7276,7 +7276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdaeab2c9ec15a114c993ce713f952db750e50edd2f35565eb6c93bf86fff8b82", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7349,7 +7349,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfeaf0874af20f5bbdfd7097f56f4298efab59788b9727dcc251cd0b58eb75aa7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7422,7 +7422,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x07c069621e43d7ac8f315f196c1d5459125c3449bc76d951e10822ff8a874aa5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7495,7 +7495,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbe18a41c68b71d884b960821c39b38501f1be7de16e96f34e1d359ba6f38e3e4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7568,7 +7568,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9002121e353e0d4672a8a6b717d8b1a556d05d66382604e2cf50247f82222a8b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7641,7 +7641,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcbc82b9766d4aa8f69bc9f71f1c196daf92e1f0841d20d5df5c31e271f671d35", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7714,7 +7714,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x33fd6794f5fa4f5e5d4759fb74f16bfe8808956c5e241fd614f45f3933a09d31", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7787,7 +7787,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa4241e473222fc91682775b68885d5b42922ea31e30d74530c0430031e33309c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7860,7 +7860,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x34a6b6f61197d01e9cf258a940306665a8a4951ec722729e4e88e2a96891a08a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7933,7 +7933,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3bd32d913d4f2d017e54573f9a32e119157095fa05b6dc9ac23a5cb1318d590c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8006,7 +8006,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9386fed06ff27c524b782af1a96d0dcc1277215b1fc2fa94de189fcd776eea62", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8079,7 +8079,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeb768b1400876399ac646f5e257fca14f40df3c6c4b252c5d6f733a5018ea511", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8152,7 +8152,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfcbec97c28412f673a907984d27fe56681e54788764831c23014543fc8df3950", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8225,7 +8225,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe257b47a57374d3eab56a4907d7dcc72daab6af2401b6ceb0bb96e8ae89ce472", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8298,7 +8298,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd9108f6b4e0986e1bdebd80356b47422f4aad9aba1f7627b67a4b28ff41c1ae9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8371,7 +8371,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x12a98a15ae428bbf124f9f7911f363db56185a6125c918bb8505838cb9c9ba8d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8444,7 +8444,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdd33a7e53452d1afe76f36a0813d85bf371a538ff8418a7ce11119c60b80a60b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8517,7 +8517,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x79568a560306e82b43eb7c7129663262e1ee34d83ded0903098b7eeb0b6cfaf7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8590,7 +8590,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x08a75e423506f98155803287987dd830a224c689f5b1cb422be0f1ca738399c9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8663,7 +8663,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e5e4ce2505ce6f391c575c10158ba6aef0b7bf22417709706f0ef5e0a74fc36", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8736,7 +8736,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xce05e1c86aece24c5f0435fe167fbf6b94d5ec48c5f6992a1d9bc8c4951bcde3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8809,7 +8809,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8fbb0ea2b88c34f24400ead60f0bab5858402b15a2653b496a3e9801870c10a6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8882,7 +8882,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x89b4efac023fdccad0c945d28b04868987d9ba73f5c16bf46d76166ff30457d1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8955,7 +8955,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x54c4fb552f90422aa37a1bc47f442c65b242c6dcdb569cfe84533c4e353696b0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9028,7 +9028,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x796123258c448a2080c2f2609834c0d1f562d8529a0803d629a641a0c8b2b1ee", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9101,7 +9101,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x656ef2cc209a8886eb0c9f504b0c18fbb8a339db856f220540e180365c70473c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9174,7 +9174,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4d623514c926468e971166260ddac3925f202ba64f30bf0cf4141b0ed2052be2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9247,7 +9247,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0b63208c6d1ce31f740b37100330866161513707e30fdfa3835039879f295423", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9320,7 +9320,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6eab29aef3cec5b873aa9de719bbc5a1fd22ba09ca6b75cc09cc4bc7a2defc1f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extdelegatecall_inputdata.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extdelegatecall_inputdata.json index d48d76428e..941c4ac63e 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extdelegatecall_inputdata.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extdelegatecall_inputdata.json @@ -49,7 +49,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6242f843620544c039fa8d7f8b65d6247bcfe5f778909657189b56991fcdaa8f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -122,7 +122,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb294a687eec02f76edfc0418c2dfe2c03434a52fe99cd5bd74313a8393c0c2fd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -195,7 +195,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x497dc8096f776fbd873eff837819f866dbc1939028a59906ba5b641476eda1f6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -268,7 +268,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8e717ea7ca351cf22f390d3d9a36545847243054a8cad6dce097967d1b8c1ede", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -341,7 +341,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf82b55e949a84a4b96ca2a797c0ae38c01498c48cef8bafc3679dfe8d3032d0f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -414,7 +414,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xee4ee280d918ac0ee1099c15c65a8499342fa27be4f4bbf5638cd9158fd1dfe9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -487,7 +487,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7dfdf3073b25f5dbd7ffba59acbb0414fc8f05e2c2bd7e74380fcb340f2dfed3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -560,7 +560,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcb15c5164d5ba5a02d5a3a8ac3588f3a567722115f92808fe5de404cfa5be4a3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -633,7 +633,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe1ba48b7bc3386c26f30489c31cf0e949a94f273e23a549c63b3a01ba7ac61c8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -706,7 +706,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xde7505e8536e385f6b20055443015ca96ace9d709ea98346b1e6608359efea77", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -779,7 +779,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa81b5d1f25b1bc4eeed51ed54630e950cac2fcb27fc1711d870cfe2a25bfcd55", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -852,7 +852,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2d9bb6e7222ef9a08d22a69cfa35cbe14158bd490e09561caf38f46b690b86d4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -925,7 +925,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x83bcabd7c9fb1574434ccb21a2aed7dc0512c018f9d44c69cbfd72912bfb3e88", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -998,7 +998,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc3a0ce2c60e3ac32d6f51e7333b0181e0da4b223263c48b8247efb22329a9134", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1071,7 +1071,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x868ca76ae8950e8f31d342c2a808c5b10b03d94498e9d0371774f81cac79d9ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1144,7 +1144,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf1470bbfcd9e15fd572546802fab8f4d1b45c6bcee61b13bbf2d3ac5d88f20a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1217,7 +1217,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdb0a5699f9fbf52c878eb04af8a9b46489320dae9a4604282fd80283a81a7a8c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1290,7 +1290,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd3e85bb8c7775d8036a4ee337e6020c4e3a7fdb144e6b7f4271dec4b6d7958b2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1363,7 +1363,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdcdefafa037579267fb2c46b90eb6d0627a249a5269101ac63a00668f1f38ce3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1436,7 +1436,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9356f353afdcacce09336bc84fcd4b2db03620a6de36642ac42c2bb6ea4ad6b9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1509,7 +1509,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x18b1d66698dbb287268a26a955d53efaec092ef5ea0d42abff6d042aba7e9190", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1582,7 +1582,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2ccf06a1594fb21f87e4bda739e91cdbbe28188bd01d65c3dd8e8af285793b46", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1655,7 +1655,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc48267d3eeb9049d6c853dc96828fc9e42dbc23afd71de50c92c9a57c36b9da6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1728,7 +1728,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc78fa13f562230860335367c49a1888219d930e2ad5cdca7623aa3ed49672410", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1801,7 +1801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x21e3bdb60be590410eaabb346a1934626c96ea4be295da20769672a5d17d985d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1874,7 +1874,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x78ccc21c24cf968bec420d074dbbdbbb49ba537494c87c5668b77995f8d0e346", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1947,7 +1947,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x627ec894397e4845fcceb0edefb2e7b007dc402d3bd464729e4aeb07a701d137", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2020,7 +2020,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x47f981d33561e87aaa995940f1ba1c36dd5a1225d796d8a37763f53342b95b84", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2093,7 +2093,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x182c380a15bb72bfb4b1c3a9751a86e6608853c671c70c807d6230838fb57a39", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2166,7 +2166,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd769af598f0fd7645e9f35f8594af21a4661473103c1824af0ae02c0424b445d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2239,7 +2239,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8c9025a0fc5d16d7d5130cae0be735e01e90bbf811c011d2bd832141a0605ebd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2312,7 +2312,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9aa91621d6c1997160e2d5447f997b4a9594919a755ef81faee5acf42a58c5ae", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2385,7 +2385,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x20fcc218b7c0ac701cf914fe327841748d3c31c1dd07e395940a1f9d3e05611e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2458,7 +2458,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3864c8d4049fa973e07f295d78693c2e66e3f599cfdb77bb0fc4eb566fcaab37", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2531,7 +2531,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x16ba7679c6510f2b9f26b49767c37acda5a922f469ca95f5db4afff7de5ef674", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2604,7 +2604,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x57d27deba701453e5c73e5ec8bf5e998a9569d86dfcc1d8298d873146fdf9dc3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2677,7 +2677,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x940ff08def600d3b4766434f660bb50e3dfd48531622d617d250cbd6548b3047", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2750,7 +2750,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x20d57e1c997fe89b92fc82651fa265fb3d7aceb5e39e5608527fa0600aa613b2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2823,7 +2823,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc02d62174c65169e6e008df081a02407acdd8a8716d796b93f1029cae29e42a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2896,7 +2896,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x94bf3cca5a5f2a8011078be8b78fdf7d7d821576bfbd74248046643cfc1821f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2969,7 +2969,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x57408a10d09fb5908935fc673e58c0fc184c35660b5ea2633e5834ffb169f42e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3042,7 +3042,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x249eee8a44dc9426ec2055e1afb6f13e4dd4a77f7b62ebe55f6e0fa448d6af99", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3115,7 +3115,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x53a003d4f576b81a756405b762003ae01bfce087135eaa5d905dccb23ec6ddf9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3188,7 +3188,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x99f310502cfedd8671e40e0f09e79de25b7102b53d48c2a640bb6a3ee9c5c60c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3261,7 +3261,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3d586741bdc48ba2a5f247966450d90b7c8c171449488106f90e945a07d34eba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3334,7 +3334,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0c0973c35fb2a1782f8dde1a875624bd4db70a07839c96daab5088ba143949d2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3407,7 +3407,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x82f5d60e503f37a24941e5888f06693c9b536c7fcb613435b42fdd98f7121370", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3480,7 +3480,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1078ab0774e721aae7c1feba55d3df8d22794b0adfbe5936b9c68165bb81291b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3553,7 +3553,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3439ccbcd0ae9e85b36f7635263a34f5f568738edceaa409e285138885b93b36", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3626,7 +3626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x60e9ef479b12e59b16523e5451d2cfdd3c0bede14ac6c9e65f2737ee84e3a6b0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3699,7 +3699,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbf60737d4d424585a04ff7d22a88df2726f1fcc7682cc08cf84dacf9ac8e0b91", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3772,7 +3772,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x20a2ae36e2ea5b406324f543df8d9a88a171d4af4d4bdc3555fc233706d96ff6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3845,7 +3845,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4b9353d961977152b0cf66fad732ceae7e02d7e43f6a2084710c02e1e98cd13a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3918,7 +3918,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbaa045d8e2036ab2be4feefb5dfac045d42096712df281cf55f6bc68d0f4ce39", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3991,7 +3991,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8d2906cdc8c3035c64b3de6f3d06865dc4b9a84b88f046ff5c8c8683e1134254", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4064,7 +4064,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc4865ea320a390f1af9de658fd8e635ea997cfc435cf92bdc515678f0afc21c8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4137,7 +4137,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xadcd27b7af3696234db6e5da1835394cb898eb48a59eb3a9fc4cb8bc0a1e6124", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4210,7 +4210,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1466d714a97471f67783f6920b39e009597b4288b3604d343a71094b4b29deec", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4283,7 +4283,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x255c9372efb5ef004fca46b4522a8e395f40fb08123a6f9f6a00afd1c445d46c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4356,7 +4356,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xad4ae4186d2cc8e6996e0e28cc5ee627f01e873120c5cb6107beddbc0be36637", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4429,7 +4429,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe4ccb960f2dcb63ec98e7a1b7eb24959a815e04c37cecbd1a8a18342915d0a7a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4502,7 +4502,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9edd5a9504d3da0339dcc87dd91589df5fa7b9a724adc021897d03a6f36455c7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4575,7 +4575,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb02cd4c2e3533afcc05d800c9f54dc7ea0f829a966acf8a18d8f5d91b441fdbd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4648,7 +4648,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbf1ffdf987f4cf3cb5fe48d08464104b716a09b2adb24b569ebbe753217bb773", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extstaticcall_inputdata.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extstaticcall_inputdata.json index 5fe56ec040..71cfd055c3 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extstaticcall_inputdata.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calldata/extstaticcall_inputdata.json @@ -49,7 +49,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xacfe2c32c945ddd3876b66e0d2a2ceed5eddcd8689f51fb206bcf19ebc507693", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -122,7 +122,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb3d5942fb442798c33ac9e0e56cae794267e48d9ba2503231b4d8c5f9aaaa617", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -195,7 +195,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9adef12165df4e3d49cb6da2077a6e4dde5734bc2d305186af17f8a6378e22d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -268,7 +268,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x73b88f25058856e491321cc9da580d642423850b6ff46713c26a5af0b65e0ab4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -341,7 +341,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x563df0b64845a0c1d4d8114d6fac7996fe948f0a1f51370388fe7410110cd6f5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -414,7 +414,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdd23c2c0c61185ef65cc033615e984ecb78d1a63f4cdc29c381b9cc20d341d4b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -487,7 +487,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x39c2aabe695c10cfc50bd45f0bb08bf02b3d6a5f7a5a1e03b49be303e2085694", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -560,7 +560,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf5687da3a157f42093379a643c570991b70ffcc54250b9702db4554b2051fe18", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -633,7 +633,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf9783f4dc59bc3c88fa6def3920cdd69050bf6371bc3771fa966c8c3e7edf00d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -706,7 +706,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7927736ef29acb2341fde2750eba9d4ee2df957df2adbaaa800e7254b75d2093", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -779,7 +779,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe8954e31926bda6807289c2c6e50d6058e501c813832062f2b0b15e4fc561014", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -852,7 +852,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0b51b8f44ab3850e154fa5b98a63ede8dcf2a88b1e0ffd0f23656e08ae7cb755", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -925,7 +925,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fc3025ca70d5fdacfcc4862572ecb79f4cd5b20b135e289e44bc4c380319dac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -998,7 +998,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x86230dd21311ff5f07d8f2c3c173bfc5ff11e653cf4f317e33685854d677039a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1071,7 +1071,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc35c701ddad6f325d7d9a165046c98a10ae12266c315c23cc75eada4f6ffe248", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1144,7 +1144,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x77dbddb860d706cf0df4c11059ad5e22368d90307ed26f2eea9aabeafbeb3208", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1217,7 +1217,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb6399da3ea23c7f22d70857a241220f172597131a0bfd80cd81ab5ce858a71cf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1290,7 +1290,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x758cb1673d44b52e0ec2e79efe39b1b567c8ac1f1530c351bd86a44441e4671e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1363,7 +1363,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x52900b9492fa09087f5228b0fa38f58610ae4df2550dc29daa1a1705920db7cd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1436,7 +1436,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8ea1f553b8c9be41d4130c8f156a2373fc0c32d5285a30ee469559a393e15e3b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1509,7 +1509,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb9ebc036a3abd4c921106846de461b97188b7d41210c0dae73ee10f885ef5cf4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1582,7 +1582,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb6b55445df531723462a1884abecc4c6403ad80a1381af573ac8c22951746269", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1655,7 +1655,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x838fe548ef392fae6478e4c30f855bc884b54f15f38989355e0ede37097707cc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1728,7 +1728,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x11bfd07e97720d66eeb38deeb5ced9231faed2cebe630e113858dd0b1c779dfd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1801,7 +1801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2cf81ca2a177fc383d9a4615aebb3c5a9a77b09ca7ad48145a92dec48ae93c3a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1874,7 +1874,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb079684df9e711a948750ae888b7a9b28ddef4d3be522958f089f035eb4508ce", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1947,7 +1947,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb2f0fb5345c4527534bf3153da7f332bd0e28b5dca6cf441032e31f71c8877d3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2020,7 +2020,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8026a5472dc32e7c30af074ce3b8db3b60cd155b06527d007192a56cbb6481f8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2093,7 +2093,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x64e172e00f6f07bd55cbae7bbf0f1e92bf5a819dd16cf720b885806cc274aaaf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2166,7 +2166,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x000ae096a4f40fd70fcc402302162b6c8dbbb85d5e2eabe941ee5f4053bec789", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2239,7 +2239,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3893d1e16f8681b14763554bec1656b3f1950908cbe9da76169989c8debc73b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2312,7 +2312,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5e201628d00220fb77e4963d88b0bb0c4f8b229d0ddd3a3dd209c5114d155b0c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2385,7 +2385,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x458290437c01c3d55b62dbbd4ad2da99e4ac7c50dce72eacc599e0ce524b9c29", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2458,7 +2458,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x559c61576501fd1d79379f34c3b2a0bf0880cc4a2d8c6c894c488e64289c27c0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2531,7 +2531,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb80be5f742a0ec200b9a0fe4d5be2e09d306dc6355bd62f71a5518c406e640e4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2604,7 +2604,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe98bb6143f3307beab1195d7ff140f5e3c0904bdee03c4ed9ec5c6938359fca2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2677,7 +2677,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8ef134fb41181ffac437bedbd403a3a564f145aeaf3f9147cf7f23980f6425f7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2750,7 +2750,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe64e89b9fdf9711d0896b5a9a8443b2ce7868781201b722e28c2c2f297d1cc70", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2823,7 +2823,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x48538a9ce175694cc86568fee0103ea9fd6c12763d7f2125b089bf98d9c67fcd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2896,7 +2896,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3bf7a240114585b8de0dcaa51d98c817604c432414c13df5c3fbcc48c7aa540e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2969,7 +2969,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf0294594ea21cf2d74239a9a8b439fc7c3b1ed5766fa6817c83bd3ff2962b82a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3042,7 +3042,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5035341b5d438ea30c4a13c8191706e824b5a8d2a457c4958f85dd6f498a3336", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3115,7 +3115,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x31788a7fa43714b28c9b35f599a7e160de18a8e52a39d8be886599aef4a595ec", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3188,7 +3188,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa5c32360bb750d354c19aff5d854b42079bcfffd4a1cec9078b2cda3d8ee31bd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3261,7 +3261,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb01d84f5f8a9208fec7742718ed9c6ba83b1c4c19fc562c89603e062380a4e39", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3334,7 +3334,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4d3fdb6403cf6cb493fce9d20ef43a7d4624b3f1cd9dd5e0797078df8f738a1f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3407,7 +3407,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd30d1b2e1a96fd2c20e05f55fb0c2b9c191fba11ae34a357271d9b319d279f2e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3480,7 +3480,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5cc4e792dfafd6b69cd0d7b67c82dd8ca6622a8c632d1ff2347658b7c8673f26", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3553,7 +3553,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfc7558c28adef0f8e64a87095b70d8a23be7ee1ef63ef085cc90bc9a2cb2c5c3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3626,7 +3626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x783389e0ea3d4d4b16fed1452ab8588dc946fd6ed3ccbc11a9ded262d015d719", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3699,7 +3699,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa0a0f700a5c80961818de0e6ea6730bbe9db69bffe27009bfbf3d8e632f062c2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3772,7 +3772,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xda6897e7074a64e158911bd3b4c93d22ace52452591e51d041baa5704d9ba73a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3845,7 +3845,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe568c577f7eeafd72be553848eba49474f6253f0c524b7696b5c01151d928a57", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3918,7 +3918,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x864ec6f33a251a3acfde19e1a7ee2c69a5f324196d78eede7b21b128df0099b7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3991,7 +3991,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8577d7a8a6dca7f858f7d26e2159bc9e4a54f60ac5dda539868ba817ca71f4d8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4064,7 +4064,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa8c124a43237d7fbf8dc987083a9603bd303e21de89684dad830d421fa86ad12", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4137,7 +4137,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2aeb3757523fbd30ca13751b4498ab33425076a5cbb8cd7c0528569420b77984", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4210,7 +4210,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x60c20857bf4726e6b733d741be144ccd0d7b403e359486e273d42d53fa056a44", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4283,7 +4283,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfee6dc86eb60ee2bf1764f925efe4f52593fa590ab2fd6386b00591c0ed4957c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4356,7 +4356,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x131eb206fb7e7d15dfa63eade56030c9a6c2193f5ade7a07c487ec929f1a366f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4429,7 +4429,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa87e86ed17b8038ca54ea3a0a58e934051ea8ea7c17f3931160686ca795a9b36", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4502,7 +4502,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x218584a78be27666c6376f5e02b06743c15c35374faec60e6993b1a274ff1f5b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4575,7 +4575,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4cc5014cac8609f36cdcc1ac18c6784654a56c72c3cdf4b43381e2c84cc0db84", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4648,7 +4648,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb50de21ecbf123ea5da1acccb760151b1bd3655c6f6e62e557f4c83f6b8e1973", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_clear_return_buffer.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_clear_return_buffer.json index 40b9f06e7c..fad372a959 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_clear_return_buffer.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_clear_return_buffer.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x92b1756931787651b39e66f6550ffeb67e496068fb3e41495ee1c94e4d3c141b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xec49e2b10ea0b1bebcce6086a0ca8d152d7db92b2c833a1f4d9d3bd3468e687e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7c5e5f23cab26f8670226f753a37ef981797b27e6c43874e11ab1ec2c1dcab83", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -266,7 +266,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd6963be4e8c7f4f803fe372e708457136a9c70cd6f43bfa933d6ba3e5b6883b2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -343,7 +343,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5b653b1c5340e47a690a178b4e53bf467fcc809ee822c0de82c1c30df9537b3b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -420,7 +420,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1ec3fe847e6f116a3da7273c1691237bff481f6f5435071e69d29cee6c693054", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -497,7 +497,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6fd2cd4821150d17c4bc423173141cd3b671f5d6885a8f1a270ff37090148dd9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -574,7 +574,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa91f5598a5701bc7698786c570d509bcf2b9018b075bfc96b1a4872b0492654f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -651,7 +651,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fa69f427787614679b57e20563afa6b1a5ba79b7544080d9ebeafd826a625db", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -728,7 +728,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e6d421ba22899341d473d573135410376521622f80902135df20cfa197ae0a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -805,7 +805,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a13f61461b17edfcb83f4a8e537064cc5b4adfba0542729189493a8830230e9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -882,7 +882,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9166db0e08116cd4c9f6ef7a3ed652dfeba6a7bf1fb027578518d300877bf0cc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -959,7 +959,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7291c7d06894d765832c66e9bc786a804192f4cb19d2fcd375461769e6e5d239", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1036,7 +1036,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x18c6ae1850943c73a4b85d37018780391ff91865246faa4c0a14852d3f8e82fc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1113,7 +1113,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x44c29afa354d373b72529065fc9e48b2bdc46fe20257c89e507a12a1dd09280a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1190,7 +1190,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x637d374ed399680204e93065b9bcb835d9304afdd444b8ee4e9207b45be7398e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1267,7 +1267,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x28ccab6948e0e7014eebbf270721137612f71620e8978e7f966736cbfc8c3503", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1344,7 +1344,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x51c9ed608d96668813f3b692363434f93d3c7aa4406ea16b8ae8d04627a63d54", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1415,7 +1415,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x00bd1e3a162c40708cd5153fdb68f2e8307571e0760fb2a841c0d0a69d856e65", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1486,7 +1486,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xec49e2b10ea0b1bebcce6086a0ca8d152d7db92b2c833a1f4d9d3bd3468e687e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1557,7 +1557,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7c5e5f23cab26f8670226f753a37ef981797b27e6c43874e11ab1ec2c1dcab83", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1634,7 +1634,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3094daff70c8ab0808c573ecb49927eb537eee4ad4bd172437051c05a9947b77", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1711,7 +1711,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5b653b1c5340e47a690a178b4e53bf467fcc809ee822c0de82c1c30df9537b3b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1788,7 +1788,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1ec3fe847e6f116a3da7273c1691237bff481f6f5435071e69d29cee6c693054", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1865,7 +1865,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x60f07af03b57fc844e536a1faa797c1fee28d7bf0118a8091a8114b562602b1a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1942,7 +1942,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa91f5598a5701bc7698786c570d509bcf2b9018b075bfc96b1a4872b0492654f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2019,7 +2019,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fa69f427787614679b57e20563afa6b1a5ba79b7544080d9ebeafd826a625db", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2096,7 +2096,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x41435f49d5108f3dfbce75cba72b7e1aab689896be302c1655764077eee18e5b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2173,7 +2173,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a13f61461b17edfcb83f4a8e537064cc5b4adfba0542729189493a8830230e9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2250,7 +2250,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9166db0e08116cd4c9f6ef7a3ed652dfeba6a7bf1fb027578518d300877bf0cc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2327,7 +2327,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf9a134f2404be6a314ddf7e2724427e13f5b679b763b251fe26deb129bf6a0e7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2404,7 +2404,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x18c6ae1850943c73a4b85d37018780391ff91865246faa4c0a14852d3f8e82fc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2481,7 +2481,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x44c29afa354d373b72529065fc9e48b2bdc46fe20257c89e507a12a1dd09280a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2558,7 +2558,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2413ffea5510830cf5a7e12870e77debcb13f8491563cc30b2ac4c7c4eb6af51", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2635,7 +2635,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x28ccab6948e0e7014eebbf270721137612f71620e8978e7f966736cbfc8c3503", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2712,7 +2712,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x51c9ed608d96668813f3b692363434f93d3c7aa4406ea16b8ae8d04627a63d54", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_mstore.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_mstore.json index 73c27cd225..f3097b038a 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_mstore.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_mstore.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x72fff38f89374c17fc4ba1b832b12aa50b81a3b832df3d4f8e6b9912f03d3650", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xee235e013211a11e789d225476b10fbbbb9accbd9d335be0a4dfa889d05e309f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x412a61d7c3899487f4d55f9d42cca78fdf288dedaeb04c41c7e4bb1679f26fba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_sstore.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_sstore.json index 9d8092f5aa..bd1ae478dd 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_sstore.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_sstore.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1e049349c9818a490123fae61686941c5fcc2b65b4113c334e309057f69287bc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc4c4938ae87ee23c29d3ebd1a1675ee0a0afc8f181bc5f820e2d53c74697fb1e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8d511f10874068b6337c08160a5c4a19389ff49e49a0deb06a0923ea3b329cbd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_then_fails.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_then_fails.json index 026324b8ea..a1e37c4483 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_then_fails.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_eof_then_fails.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa5e5e93689ae7a02ed5875acd857b4b8d2bc7102e901b245d04e39ca029ba5b0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xebda66472ec19b19291629d331489ae488727301d6fa61e4078599436a415008", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x82e95c128a6e31a4830aeb7c6d2c3f0c2f5b1a838d43ae02b0b3565a69a436b6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfdafab4fb916b7008c9d5d68f63fadee13b5a2fbb415bea5cc3cf234ebb529a7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_legacy_mstore.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_legacy_mstore.json index 6461508ac4..deb61cc532 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_legacy_mstore.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_legacy_mstore.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xff4a1004a1068c4c28bcebc957426cffdd1beead1361444d11e2ddbea4c71b50", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf70f90d0bac6dc4b72628db2b91e76c23fb9208c05dd51a48bb0860ca7a74319", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfac37cfee732a7774c8dee26bf822aea062caaafbd401884b2bd883ee7c85b4c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_legacy_sstore.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_legacy_sstore.json index 9662cd95d2..ce1da19804 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_legacy_sstore.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_legacy_sstore.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x591fe899315a173c0ec5ebc9d549e61ecc38224283bd533d6b7537dd1c074d5c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x09181a56d36e83676cbb461fa3753167adc45bd18b66b3fbbf6a09b0138a384c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3f41ced75d1526d80b0eb77f5f2caea2c02932513098d699aaaed4ad9eff553a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_min_callee_gas.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_min_callee_gas.json index 882240182c..8037a2ab10 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_min_callee_gas.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_min_callee_gas.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x66c345e62f37e65a2666380a45ca4e26ce3326b3286b466cca035b0e4c946258", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa67547291e8bbcfad1742a2a2311191245e7e2f9e81020b135f0be20bded9cea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9291a415063320082c3c47a262e8d98373ce1617c4c94d38bda44c2c8007555c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x55e2a2dd1063f06f50924330fa9c7a098a5b109a06c5515078b770fae967a2f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -331,7 +331,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x66c345e62f37e65a2666380a45ca4e26ce3326b3286b466cca035b0e4c946258", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -402,7 +402,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa67547291e8bbcfad1742a2a2311191245e7e2f9e81020b135f0be20bded9cea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -473,7 +473,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9291a415063320082c3c47a262e8d98373ce1617c4c94d38bda44c2c8007555c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -544,7 +544,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x55e2a2dd1063f06f50924330fa9c7a098a5b109a06c5515078b770fae967a2f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -615,7 +615,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x66c345e62f37e65a2666380a45ca4e26ce3326b3286b466cca035b0e4c946258", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -686,7 +686,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa67547291e8bbcfad1742a2a2311191245e7e2f9e81020b135f0be20bded9cea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -757,7 +757,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9291a415063320082c3c47a262e8d98373ce1617c4c94d38bda44c2c8007555c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -828,7 +828,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x55e2a2dd1063f06f50924330fa9c7a098a5b109a06c5515078b770fae967a2f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -899,7 +899,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e2399e60b7409b4097784078cff922b9348be86b1ad816f222c5516e18de123", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -970,7 +970,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x184bf6039008f99ebf67aef5c22c9978233f62a9e5f37d6860c3a083c330fd28", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1041,7 +1041,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9a88dc7f22080877c8bd28a4544ae1de27c8f93478262c59ccb1146ff1717a06", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1112,7 +1112,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd5313336ec0e592baeab12ea9b083df9fb32aeada08ae11a6cc9311625dbd720", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_msg_depth.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_msg_depth.json index 3d8e7b8394..e52a049518 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_msg_depth.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_msg_depth.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf8810eb82441856efcbc97f3874db38269dc0caea56db99ed57151356d9b4d0d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x25edc4bc47ba053c93923ba49ce88b568c88905b81935114fba8b2af9d55b1bc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd5b98e2cd7545aaf88ea1a8ef5dc2c8ce82f8ecde9b7f69adcfb614782c31a6b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_revert_abort.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_revert_abort.json index 60c93cd502..eff5d6a9ae 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_revert_abort.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_revert_abort.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x76a928ab11581997a7fc00cb3d02901b21ce49396395b9ba36f9a965537090b8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3b858599bf5997b3a99afd1be830184ec6c7cf830d9bca71588f15aa47754c46", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x97a4c55d56eb1bfd0209d3c54c323400e8b675fcb83c33309613ac1523dc2d84", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x81dc5fb3298f831b6469a2055dca3e57335c116fbe2feae75e9548889aa550ee", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -331,7 +331,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc48f1a1a85a39bbef43d5f92009bca17f260e2e44c850a1af61e93865136d65d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -402,7 +402,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf52c6678193c131df668c2c60bb66de641e59ae9aacef4d4c92acd74751dff16", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -473,7 +473,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x470f69eb80c13cb8412e0b2cc4638bc8160a4d2e49d899fa6850b94004d22439", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -544,7 +544,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc84d9fc27437c0c6e7551fe6daa55a41c2a2edc1ec883fe6af435855b1b823e3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -615,7 +615,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8a7ff093053f3ec1a0ddd94412c259cf0e827f68d30f2827cc0cd23272c9e999", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -686,7 +686,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0e6f19d8c2f17ec00b5ec12aa342a099bda054f4202b40b1371b5eca6d6ff4cd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -757,7 +757,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd01abcad7aef81dfbe38b7ec4870051395da1b0987ae30671a29eee8387da956", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -828,7 +828,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd260bcd51133028e75413cd057f979105d1534d83c7d45b8c7df6238e24835e0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_static_flag_with_value.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_static_flag_with_value.json index 7fc74df526..67a2467fa1 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_static_flag_with_value.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_static_flag_with_value.json @@ -53,7 +53,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x73dbc1a2640bfe657056841769a76b3c0d92005c0787ce7b2490fe7480998b16", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -130,7 +130,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbfe0b0483a3f59d18a2a298f75d578e47f340dcc8799ca125ccef712ca6fdacc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_with_value.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_with_value.json index 4f4d476de2..c38d894306 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_with_value.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/eof_calls_with_value.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x92e29d31ea26376c7987ae58298f62ecf194d27b374ad419ae8c006481fb30d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8a0a6749acd6f4a63139def028653caef062da0592641daca76d41b019892543", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeb79c22f73f781deba202443ece072836008741ffb3d112b687fe82d40ae566e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x41b3cbfae1b5177b9e4060a63cdce212c472ff4fffe853d5e0cbc212be10f4f9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -331,7 +331,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x30a9cfedc10ee6e8b6939c7fcb2ba13100049f7e37b33c38eb14ab5d9ae15ae3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -402,7 +402,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xab46acb258ddaa20f19e13340ef284ef1c2f717a1d5814b0bdbaaedacf4c624a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -473,7 +473,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbe3aa6f7e3c0a14639859214b695bd36d98f3194cfe96595fb990ef6a07214a3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -544,7 +544,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x862be04f7eed2af4db11e64d64635c09aa7367ebfb4365b646188670245ddb53", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -615,7 +615,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x508ac5984121d7b1f8e4a38b1308abd75e455ce67d7b6686118fcb772d1187eb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -686,7 +686,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4f7bfa3433504c32af993093e5dead6f435f6d75d4afb2698ffed84ec195ec60", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -757,7 +757,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1ee91cc30e9b08a2c2f020b2eb3777c3e37dcd451bb7611e8b99ea76438ed5ae", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -828,7 +828,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1129e305bee189a229a4e944ca4b8f610c5f2cb149f953950d9b836433fc80ab", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -899,7 +899,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3c40cf89647ba8df09b8219ae89abbebe956008369744733fea7675cdec50df2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -970,7 +970,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x649d93876e5072ecaac5b6dc3cdd28a385240e4c252ef54ec5400da24d066d2b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1041,7 +1041,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3c75a41c1c2a464fd8d9a0b2b227bda21dbbd4c88b05f6b3ad16576fc51f3ef2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1112,7 +1112,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xef566e36a83ec817d0a35af61df9eca84a7a854da9d5c2b175f80a2030742cb1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/legacy_calls_eof_mstore.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/legacy_calls_eof_mstore.json index e8d1260026..c9a62b88e0 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/legacy_calls_eof_mstore.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/legacy_calls_eof_mstore.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb4dc1a24932ab647b7341b76eed5583f654ea7a1b3e67051955279bfdfd85cd9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd5fb1098b0608a8623694e0db718b53b6de5fecc1751ca17051b189afd1fc760", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7ddb3e7bd7f56c22a114a6380d649a0ad570a974fb92b78b115587cd9fc0c54e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x31efcb69042389345f144b6b7715a6f4acfb0ff10124bbdf7323d55cd69fcdfa", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/legacy_calls_eof_sstore.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/legacy_calls_eof_sstore.json index 5fb82abc1e..0e0289f929 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/legacy_calls_eof_sstore.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/calls/legacy_calls_eof_sstore.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x74d39fd195df370b6b4a1b04783db4ae4699ce7ccc20368ee099f4de17a0e079", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x99d688da5553dbf6e26c51416af369f4141009240f82b1aac86aa0b7c4ce3ad7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x951b2b00a19d0cfb44ca60d7c07d9b5bdbc8aaf7eab1394d5a6416d63c2a15da", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb6b0f99ac31b4a7c03ed7633294a8b86c6c67b949d896496679a5796b48c2166", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/gas/ext_calls_gas.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/gas/ext_calls_gas.json index 500d7b8cc5..54cceb8c4e 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/gas/ext_calls_gas.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/gas/ext_calls_gas.json @@ -59,7 +59,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1cff5a1715105c88d1813b8f1a5aa3b96a1f2263e29ea3a0465230a4cc4eceb1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -142,7 +142,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4b38dad460b0131291231824eca1245e594b2467bf6b122b14c3ff084d5a23c1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -225,7 +225,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x833a40ff61476777c3154bd1623416983547c237973742c5f9c23eccdbaac3bb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -308,7 +308,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x859beda095c268a1f6c396a91d89f8899131963528a2efa3e504879ae9813139", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndatacopy_memory_expansion/returndatacopy_huge_memory_expansion.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndatacopy_memory_expansion/returndatacopy_huge_memory_expansion.json index 18b8f3c197..560efde3c8 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndatacopy_memory_expansion/returndatacopy_huge_memory_expansion.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndatacopy_memory_expansion/returndatacopy_huge_memory_expansion.json @@ -51,7 +51,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x119c5f9aabbbd394db1385e8920293e437244b1b55eb80d18ce7bdd317066d78", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -126,7 +126,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa5476ab9c6714cb6a062c63367a6e8f45b43b76b41112168ae0663e7b6b2f10e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -201,7 +201,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x95b0dac63e9fdb14b0e21d42a457c75d40ad98bb2c141e07a2a8376c096fdf7c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -276,7 +276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x55a0c3d14da07104aa8084f364a011e007cfb8cb54761b199505e582798fec2b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -351,7 +351,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6158653c9c977583f522cf89b3e74c06b366f46b3906890fd84fbaafc22c917b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -426,7 +426,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x03eb0c3ad254c1981b45b9c04cba60705542459eae6597ce16e4475e8b4c0547", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -501,7 +501,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x809f3d9f94ec36a1423a4c1c15752a7c7ef278a64ab690fa134d6c6ad002cafb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -576,7 +576,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd86fddb6add09dcfb617f12d2aeda1c2bde634882cbca364ca7a3679568521ef", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -651,7 +651,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x47ef53e4d9358a053a6c4245a6a70588580504a6e18247ba2af88ff0268ca1f5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -726,7 +726,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf2e8ef2e10b1336e1d1381d9bb43ba74cab2558bd51b23fa7df197e40d2c4158", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -801,7 +801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc29f4900b7367fac45083c7cb8c5e05699e44f72373c45794d522cadb176aac2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -876,7 +876,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x91ee5f7ff8e5cbe1c45539ab185a9425ff6199e904b9967183889a6623ca4bf5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndatacopy_memory_expansion/returndatacopy_memory_expansion.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndatacopy_memory_expansion/returndatacopy_memory_expansion.json index 68d686522e..bf4aa9a4f2 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndatacopy_memory_expansion/returndatacopy_memory_expansion.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndatacopy_memory_expansion/returndatacopy_memory_expansion.json @@ -51,7 +51,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe70363ac3c6e8f33a8364891d67a46fe61bce85ab858bd392d5b8154b4f8314d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -126,7 +126,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x911a645397856f278ee1b276a54bd6a447aa8c73936307b3d429ea7c144b7730", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -201,7 +201,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x04312e1cd1f2a7776d41bb9162c55565cf1ed32b4af9dcb926480bf553a1911a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -276,7 +276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xadbcb89869516e44d447801ac3011cbd50cb4f4379edba109e3a4fd7c5f31b1e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -351,7 +351,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x44c574d3594c8fd202e51c463e3b7b9eef5d3849c669f9fdaa19d57e52f3c855", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -426,7 +426,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x81389b51ef2dc243e7fd346c23dce0d2a3cdd93e2beb2a10b4783502964cdd05", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -501,7 +501,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd79e326e30e52612d27800f0ed8d83c17aee95bd93cd3d0b534906edf2a7fd03", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -576,7 +576,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1e7e05aa4ffc832cec93cfe0f720fb96942f4b86d9fbf33300667c59ed7aa4eb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -651,7 +651,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc946db74401feb96b5af1cadd45cf2806c2524aee48b2653110981fe78813deb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -726,7 +726,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x725ecb5943b75093a97bff39069fa3374cd9368297a19c137cac752856199380", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -801,7 +801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4406c3501b09fcf85d9b69ab2642b207281ee6700cf7d74213157f64caa763da", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -876,7 +876,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06b8398bc35faeaab2e03e4bec0d9b459ce7e825da3bae93b0501c61635c0504", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -951,7 +951,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf2aa338bd027384a0eb2b68a408e91bc8c16f915054c725f3b59d74d444247fa", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1026,7 +1026,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc888ac896e8e0dfbc97004d6edd0abd76892b6be8f3afdf4580a256c71bcf3c1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1101,7 +1101,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd02cf168c8791555cf43f731d8c0e7d3a0091f54ab76abfbb427beea25f4f4ac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1176,7 +1176,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x78b8366da4eeb383d3654bef654bae9c217be6321f28c31e706752412cc95ea6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1251,7 +1251,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x277cc5e609d07dfbbe5bc8f2cb76289d70447f08790a45efcacb4339da6c8f4d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1326,7 +1326,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe4c898d8313fd97173a2da5aa138d5c9031e293f60ea7314ec3b0e3f3b1fb7ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1401,7 +1401,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x82dd5ad1187d4387c3f2cdd2d2e559e3fb671591734b7162c69c2555404ed1af", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1476,7 +1476,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe1212c71bc0df066d429aeacf2e10687463e5de4413b3d79c5ac6940914f5ba5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1551,7 +1551,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x339f85d54a3b03d9732816dfb64c7aef66f74f2b40445a3e0990191fe9a3b535", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1626,7 +1626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3a1da0fb9109cc35077de13294d5fea03e734ccddbc863b6f38f327dca4518c5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1701,7 +1701,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x597839dc2b2bdfe7a821dff9bb38d8183faeb5271a0a0652f29acd403e8086ad", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1776,7 +1776,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc96d53bef9fd0a8a1663841a0d80665caee1f9f0095f90c5ed666f32ff78c748", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1851,7 +1851,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x175b37165a4878e201b4debf1c1984cabeb20da871a75c9e2aaf8355738b67ed", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1926,7 +1926,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x76fbad72ef77203170cc0caef8e260c68b5f01a7973a3fc94a8a2074ecf27368", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2001,7 +2001,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe2bed797a723bfac09b2a4994e54ac175f467e04037a09ae704737a4e93372c4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2076,7 +2076,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x083818a086365b42909996b1ff4c90558ed74c0352b258f327fbbb6b375d4e6a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2151,7 +2151,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x278fc51e60912fc83ed5cba582d4548740a43e1356d2f642d10fc100b35a69ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2226,7 +2226,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x35334434c8b751e9158440c733fbea0c8e7c8b6c00dc27248c8494b54d56305b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2301,7 +2301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4d7e6e197360059033eabb3a7ad526e461bae2801160cb9caa4b448ffc844e71", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2376,7 +2376,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6e3683eadab1fd26efef0bc66a77aad19eef3c222c2cb0f17d5ca87181c38d8e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2451,7 +2451,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcfed34da3d53b1f611d90c60d061bc8f88128dd693d2096a9f11a82163606dc8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2526,7 +2526,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7d92110fc7e807b430b782cfa8263a8f4143c56a316934ae2d5e34c141603041", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2601,7 +2601,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0d00c7910bc21d29c219db0a4d6c832d9a2add38e35b986a580b000c9b93be61", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2676,7 +2676,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcd68c9a58c5ed2cd72411e97be3b522d70677eefca45a77ba214b57eaeb936d9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2751,7 +2751,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x217652108ba18b9546d991389a9be7e8f045619b08590f0728f5e79b14fc10cc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2826,7 +2826,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x403ef77f7eae90f3254bbdf29793ed9dc430d53408af3d1981cd712b38b419d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2901,7 +2901,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9fabaf4e859180225aad7676c427322dd4c82d50e2ec72bfbaa6a82829149d09", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2976,7 +2976,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcc2947002438e1db1fb1c56690aba638b5d3732d712ae0b1eb0ce33fd8e214a9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndatacopy_handling.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndatacopy_handling.json index 1a9ca97cc1..8cbe4901c3 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndatacopy_handling.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndatacopy_handling.json @@ -53,7 +53,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5767f02baa3f468e420460588e299c0af2026719e97e4c9e489d40f22447ca32", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -130,7 +130,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd0940d2753ecdc3ab8c5801689046bbd37818316ccb2d9a2c2e3f6d2ae21460c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -207,7 +207,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x673d17c7f87e97610e88c998ad1d5c6195bbaeeb75c5d5ef6e58cd1512c978b4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -284,7 +284,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x07bd14d3014bb6959022751135a25e74faa32f12cb405e44314de0aa27285a0e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -361,7 +361,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8bac2beb85ed284b608bfdd729dfbe7c3c6d90893fcf958613b6c84827b9f4b3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -438,7 +438,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb8e41e79312494678fe519379c2eb0f6071c3d3a28d23105073b5b986f82568d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -515,7 +515,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x27342d463a100f003a4751d9084c0da1c59b9d55215b10121b3a12c590ec0482", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -592,7 +592,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb34e1a2aef3097cb5f49a973a061cf1b9956e76204071b27097341f2b9a2aa7e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -669,7 +669,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf787c3f249313e66f8c62092983b8f42e0cdf696d3eadd7afd79bfcbf9718540", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -746,7 +746,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3101d674d3758d2cb489b8be6c4c4e72b9777d8ee8fbed78d6251f63901e92f8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -823,7 +823,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x351fad7da23cd0677a09c5d6d9482e3495de496659424d9cc5ad3e7120d49581", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -900,7 +900,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2979574f3c8702e56f3699cf2bc707096bceec48357e9350bbd4892fb64119d8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -977,7 +977,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4029f472203e1bd21a80d413870db41a859a700316d33c70a84006424e231060", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1054,7 +1054,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x94e4bc6c5bb88e150d63d65e10d506dcbf8f947c64da0c558458a95fb09415b0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1131,7 +1131,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x256f5423ccd9d32baa3a3cbcbfa9dffd599edede0420712185d83bc161a5f3b0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1208,7 +1208,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbff70cb684b9191795813f017a845fad6c6704a4babee2c7ee7ca03f2e9a9e75", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1285,7 +1285,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x16116ddb29566d123ab9854b9bdb2d1c04979f6116b9c7cf8ed4a47ae2bcf4a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1362,7 +1362,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x37f328324cf81400dbea7d3ad54678869cc6cecee3efb649bc6dc030d1b95d06", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1439,7 +1439,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc0aee45611dbdeda29c363ce114ca3eee7c988fe96d90be22c135f85007811f9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1516,7 +1516,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd920da5a5724f4575feb44ba3696c4427fc1e95bff7182cb4d5b808e965d6e7f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1593,7 +1593,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc7ede5a2b765e3bc276f4e2dcb21042ab15bd31285fbaabd0f1031153625c077", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1670,7 +1670,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9de7271a4f3d3ed4df37ae286427951f19011f61a8669bb049c5ef8a35eee2de", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1747,7 +1747,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9321847bf58fac01b70b1bbb73cdbaf4092fb819e6ccf5018cfc5d814d1a7b0b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1824,7 +1824,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xddecd4464b1642f3e23accc8ab1ac7428b9df0a2074dcaf90f0743b8b6b64cdf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1901,7 +1901,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7d258c0779e1f3593165d4e38b732c36713bb74addeac58aad9ab5a9545c7000", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1978,7 +1978,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9aac76826a460bddce54791a81cea7e0c5e6318652b98e2719a13be1df3b62d1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2055,7 +2055,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc5d88841e448d70780146f9643f800d39687862510c903cb7fe05e04070c13d4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2132,7 +2132,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe747251fcffef26254a4faee07777b5b9eeb0c8b9df4814adc93b1e1fc8ad079", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2209,7 +2209,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6b63d7e7bb087aed34733e8562fa8105f42fff41dfc696cafceb60ab4d7454f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2286,7 +2286,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x82c91811b0a9c7d80f5e0f9aced7a8302dbf35d2a48e87d3683cb08b5f713b59", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2363,7 +2363,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x186da621365c4c89bcf553d3efea8777ff6187680f23729ca8df5eda863341d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2440,7 +2440,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd8388d60f5a836412c6d46e82b0c2a96246adb3875f95960530a2b6572aaef2b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2517,7 +2517,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4f1655a28b7c54784f3cc08272099b3d0f2da1c73b1a8ef40a0c0941ac1a6723", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2594,7 +2594,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x99c31091e0b668274a20dc6460b1d90d77c56b42f39eba5ed34b04366f79f48c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2671,7 +2671,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x150b59eccd749782a1473a57b05d2833446d6c4378d2697eba9ae323f5518ff7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2748,7 +2748,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7bae3e8563b98f6cb0f1003d378e75e1b26a2b66810c3c2d17d6163e3d7fe8de", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2825,7 +2825,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x95fb5017e9cb3cb4b4e015e31de4ed376ee7ece8c39de31ced252f246299aa4d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2902,7 +2902,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xefadfa9ff09abe228c8abaa34b93d8342fc9ff0217c7408a4e78a97dfe214eaf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2979,7 +2979,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc79d5eca67e55d930096e335721caa34105ca651566d438327c922e956af0d30", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3056,7 +3056,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5459452208fe4bfc5f6bb2690b5a75edb67be694f52e0428befd4c2e1d69ec25", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3133,7 +3133,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbfe24f95e3d797bfef5f013d4500b44f8f098201a2d6c7457a432d6d9785f43d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3210,7 +3210,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x578a91f3dd10478b87ad36187ca8171ad3900d2cec3a069d77e7a79b04f54c69", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3287,7 +3287,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x136b6faa0c5931d952de209b82d9691b5dc31f5bdce46635d26af98e4b75fddd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3364,7 +3364,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdbdaf27d106341ccf097fb1871583f575551b07268892652955c75da3f5b4fb3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3441,7 +3441,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf49ae5b32d3081ceeb895d04101172c31169905b912a44c1659ab30da096f29c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3518,7 +3518,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x913d95c82d653f0a94f2cdb7fd52e44f6da36b53a8ae0fa6070da404dbcf70a1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3595,7 +3595,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbe1143019b4c5df252868fb1ac8700d8591f709824c5b46de4eef63033c79330", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3672,7 +3672,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0ac0d8099bb81a79067938b21e3054183be8f5ad675b6fd06e93fe80e2a25d02", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3749,7 +3749,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe554e9c942efccc8c77cc71acaa4a5f8a8cda5de98e7d40c80530320ff351215", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3826,7 +3826,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0e742969a7b518cf9080127fb0b95b23fe9028ade5b84bc7716f46c420bca182", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3903,7 +3903,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1903967f5aff44e5d181a0db5dcede21e85f1a05b61fd36e3a3f1d59c817a3e9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3980,7 +3980,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3061f8e4efaf0732b91b4a2257ca5e0fc5e7141bd991d94e60b780b8351b6477", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4057,7 +4057,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf013af62f5717118cb2fe8dd608ef66cf5242764b438b68df67ce197a4a4b0bb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4134,7 +4134,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x10adc1c8622c418f109050524d49935cbef7bd00cfee474991ff3be861df3132", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4211,7 +4211,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1a14b69dcc597eea3829048b7729ea1b77895205f601f28546ca2fa6f06711ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4288,7 +4288,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf92f318acbdb80bb779129a23eee7a0226a929c7c941fc98a7d8cf615a6b9af1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4365,7 +4365,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0dec232d4da74b07331f74d1fead53c86dcd7988438925892fd488730c677a3e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4442,7 +4442,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2043112f63cbb6166933b1f014d55c21cf6e769642e0d1abd1947a53591dbcad", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4519,7 +4519,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x179ab99d3c018103725c5017e7230213d76804f6ac0d7dbcb9d05e9cf1142d00", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4596,7 +4596,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa6f6b0390e4625e2413f7b0e38778661463a0bafe4cb27c3e93c5c87d010b4fd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4673,7 +4673,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x340d3cbd4cc462002f9845a6c07d44c004d91c01ec58c7c529ec3dcc67530bcf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4750,7 +4750,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe592feb5cf25c375028b66f7a18c3f16038a3d2a185927befa946126b516aa6d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4827,7 +4827,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x15a7e6447dd4b48cf8d855c099980347687a2917ee26b9e97c0255277f730c4a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4904,7 +4904,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7cc1d61f14dbc1abc107d6e788e38a105585aeabe636d21a52bea57615d3ee76", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4981,7 +4981,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcc0d30f4005de94ce0834357d230463afe1e7c9da8d5fb6792ede2e3f416e316", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5058,7 +5058,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xecd52c7b7566e801228bb842e808beea5692005572a5e30b456bb915196dd618", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5135,7 +5135,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa56b874f5bc789ed6c02e78deef68cd3c698a53ef30d529ed221eccb2d7618a1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5212,7 +5212,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc33cd7f41a2d9a323ab03d185abedefe73273acbfabd984af5c0bba5e3c2f9e2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5289,7 +5289,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x95de102fd48d0b15bc9988612f1f8c23ab000e2c9449c10104c30fbc21af4ae0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5366,7 +5366,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc1e925ae0c2380ddfa0a9b7f338ad7e4b808a1ba27548f328d75b6535ac976a8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5443,7 +5443,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9b267efbc0297bb651662787b8bbc29411505e65424235a5bb8310e326460029", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5520,7 +5520,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6f98e955cd20f19c3e557312207598602d01a14bd2fa0962aac8842c4038b765", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5597,7 +5597,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe47f16586aa196f014c99e994cfe257a6eb9b50de7542d7bcebc83ebcc443a00", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5674,7 +5674,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa1d1cfb37714cf0f933a7ab1b849306a2b67238d58d8252be2c1246667bb9ff3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5751,7 +5751,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5036d86c2b3ca2e440d137305ff539c2600f93d42f3858c5f045bfe6e1b726ac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5828,7 +5828,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x17d6d40f69aab37a24f440e79baf8f3c13cdc6bd56fd7107244ecd2f3770705e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5905,7 +5905,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0c309e2a37b9ad222e6cccf5071c79d2c7a8141685218795b77960c638f1f9f7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5982,7 +5982,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xce74c205c76b4236d2fba6a8b712fa0628c557733d9f84152cac9e5d115ded83", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6059,7 +6059,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xebf44dd4ec3fd01b95605e0a99c5eaa675f33600cf70d7d134e62959c33b7fc4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6136,7 +6136,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdac8690293413d8f72fd56f48590a99d5d9e7092fd01f4b93bc4ef31a34165ae", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6213,7 +6213,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x820304f3023ffa3029a2fc4a334808938b2a10c62c949b3c6426b580c193e19d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6290,7 +6290,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x35691678aace9491ee61c5559867a92028d0ce770d89aa1dc186732bec87b429", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6367,7 +6367,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x57ddff5609d252c0ce77173d29fba4b621b3ef7caacf5d87a574a1295a54ca03", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6444,7 +6444,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3ac1fe0316104f7d65ece8a5b385a05a08440f6d8835ec42f90e6b9766fe4497", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6521,7 +6521,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x67f91db56abc4c93b79d82ffa04d58446b4b8ac5419ff9c5c57460d284d22f6b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6598,7 +6598,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd9f16838a252814112b8a147e9fda811335bd3a8724fdcef62ffc8288cf16b4b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6675,7 +6675,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0995fa7b72d4682e24a51839ecfcce6bf39ad7e156c21883740d762423f85d3b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6752,7 +6752,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe8c0780c9e506fadb179d1576b4547d785e6488365e815347b948c3cc7740ff5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6829,7 +6829,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x28f729c15e9877bb478d3b0c11bea62f8378def3f5fa414fb4c0048bbd40c6c0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6906,7 +6906,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x07285dea489c234a9c6d39e244962a66dd0d792efa2f5f7d1b67bc7d2d48c413", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6983,7 +6983,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc6a4c4069109c7c5427b6d34440916dff461fcf9bed4cfe9f62220020a6753c1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7060,7 +7060,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x639343313934eb038d09a25f9d78835d639c5060ea5ef45613d45b66cddc2da4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7137,7 +7137,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7600d622238d1b61cf422d73f5e97cf1118df40eeead6b722bdf49b4c42f872f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7214,7 +7214,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0a25644a8675dd49813abf505f945f0826b14fd1b1e0a6e54852fe5ce4a2d2e1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7291,7 +7291,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8fe1087bb85f3ffa95c57103923135187c647128ee82845b392b4709ce1f85bf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7368,7 +7368,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd767c2a03d65da77f724482d1ca0855e56a9134f5d5c0debc8cef9182e5d86ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7445,7 +7445,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa9c2fe969e4400761a16d9cf5da13fe2286708bc925fa93890e701f053378b3a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7522,7 +7522,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x319f937655fe68bb54dbfdf76fd57b91fed1d18531dadefa677a347144ecf4e2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7599,7 +7599,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9b0f59fac5f0fd86a002aedfab2118feaad311599553902bb63bd68f8e1cfd59", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7676,7 +7676,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x95f46f7cbb9dde49875a9b30c15434a20ea02b5d882625fe5978e83b9e3dfafc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7753,7 +7753,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0c84bb17871397fac38550e7d5aad644d61a1fa1854c88d93497d97f837b67e6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7830,7 +7830,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1269ddce1809e09b25acb08c53fd642c6b4e5fc3166071d9e66231471c113a2e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7907,7 +7907,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fbec0f03a6fb1e2aa95099c4c2637fa66945d10d3083ad48b5b1f8e20c0e4fc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7984,7 +7984,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaae4c8019e5b1ae517d48991b8ca66e8466fab8c638cf184dd4faa6d5dcef967", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8061,7 +8061,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x054788c0caec2252ce0ccb3e43aa1d5bee4a72f579937ad303f9b9961f5103a8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8138,7 +8138,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x38d9d1ac5c8fa2b2ee44019bc8332c9c2aa335cfffb90c865834d81d9ab5267a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8215,7 +8215,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x84905bf46e19655a3b31f2b13d57ea17e52904bb32a97433589f00ce019fcb1b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8292,7 +8292,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa0ab2b8cddd00d5adeb596ecf527083c971b4303bb4ab28c6d6ccddd28377fc8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8369,7 +8369,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x75498bcfaac28b7a58d245e45654d5db14fc2e9fa311ffff047624b3dda91709", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8446,7 +8446,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb26481d455eab6d7659c76eaa831beeeb6578fcdce351006c1755ce93787ed49", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8523,7 +8523,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x76c87f73fb47ba6085ec30e38fdd4314cc6a2a1b6fb99df43ee85ef5ae4eb8dc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8600,7 +8600,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5de8590d68550cf203218388677d8d89b57a20fe5c3c03e8b095f22f3fde6925", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8677,7 +8677,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x36ff264601c4db83aed8a44f0bf6b4a6aa543ea470ffc7fcd4964aa8bc90b47a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8754,7 +8754,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x382b561f5eee43d3c71be1ca7397f6f1dea853ad737238dd3bc0e6aaa05eb81b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8831,7 +8831,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8a29bbbd6ec58e27da7288014447087f0bd0055ee69740368046e51902d0093d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8908,7 +8908,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdb1a3e2504c241bd5676529b568b83b181fb366ccffac2604150a7d0f8f2628b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8985,7 +8985,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2b1ccaf60994e6a83b01f6ab4501b741bdd210a729aebe7177491247a1247f78", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9062,7 +9062,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x02ad5e4a5880703c2aefb0d472ad2254a9e531a360ad74070bf91019ff9fde77", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9139,7 +9139,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x86749b5ca1c34aa6254b5667c5d32ca36b0be61396424cf80425ba1b71e15450", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9216,7 +9216,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3d271f49af8801dde77225a416d71fe16e914c70f1e346d9d9298fd396646e9d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9293,7 +9293,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1b516a8e23918e59847e0f8b9d04efda7f2bbdbcfe8696833b964bf65bffd82c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9370,7 +9370,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x40f870ce8502d9b2b0b1ec80331b8a61cf24076080db09dcec3ca8cc7acedc8b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9447,7 +9447,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xccca0dfa6182b7220eae02f6400bea7e9f9fd393da62263fbc35f4bcded5c985", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9524,7 +9524,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x84f293750f026a2e57f9fe4f7b6ecacc3b7a2fb927c47c4e237dcda1e3e624eb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9601,7 +9601,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2859367631b1b8ac2b6b916a89c847a4bfb31bff062624770a20f6028bc271bc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9678,7 +9678,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7fa5879e61cd67382bedd497eef0a63399400748f44c2153e1e76db5670f5b32", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9755,7 +9755,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a6f7d6b1c14806fc6e5a53e3c86237c869f5a0713a4c83a0db2f82bf6b4efc8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9832,7 +9832,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x70f7aaad376f201d68c59e6c23be00230a16d79705628eef938f24dec197bd19", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9909,7 +9909,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc0d4d16d4c0ae49ad3e30ea42920346e4d0c4eeca001bd72fb08be1484217105", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9986,7 +9986,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x40cb980b062540c02ee869d30365985c4c4d952e91c6d5b86868d96311925ccd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10063,7 +10063,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc33c425d091df2fc7de6246d4d7c4c2ac378c558827548b696101baaba75602b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10140,7 +10140,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbb38ac227e189d9d2c1283cf9bedc6325e11d68e1a211451c9ff2c8d889c6210", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10217,7 +10217,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb6c37a51d6c4ec7c4e2390a00add99606d3b28c6cedc5d63bffc54066dbe737d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10294,7 +10294,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x157f1694ca0d8716cfe5a6cdd4f702dae664f1c4e67af211ceb16cc984200c81", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10371,7 +10371,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0780e9564bfe7c5ce2e9a0a4f4e1f5c9872154ac9f9ba293effbaa4daf82adc9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10448,7 +10448,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4f07cdfac5e3c9b63599f14ebd7dc310abce7ab93a8208f3a1590148875f5910", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10525,7 +10525,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa9382eb608c93102a464fac6e74e3bb34fa41076960f8c7828cef8b402d2c80b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10602,7 +10602,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd005734fda965fc2e45607a776ce62d59538186393179bb0adf41fb38148986b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10679,7 +10679,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3124ea76758542d6a1900a816c05e85272eb67efaa0368d0cd7c7f6d0ecde975", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10756,7 +10756,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x17c4f3c4c785e086e5d1d43f2a5824accc59f1abe425464982bbf1055fe83ab9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10833,7 +10833,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x660a6f6db5d5fe57e3857ad79b528a53faf121e5e6fbf7409e0157d3da55dcd4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10910,7 +10910,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfaa5b4e6b413fbb7262e8dc08a8300e19069950998eedabfea3e5c45c0faedf9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10987,7 +10987,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeac808cb67b0e82b78271f2dd00e1abb1ce64aeef2b22afb522c1ee843c439e2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11064,7 +11064,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0c938661c864a7900f0f517a496003cb1c2783bc5ad204a6be6094528f00fb8e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11141,7 +11141,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a5888e402fe7c1795bdf5a79036c7081294f3eb7c48e57b7deef22f7fcf43c2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11218,7 +11218,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb17aaf6236f6ba855734968955e89475afd83a2962123f0b3504782782a2a19f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11295,7 +11295,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa7b658a7bd95d8bf884842a98b9e08f504dbfc3c8b5fc32933b6a9d17638fd61", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11372,7 +11372,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a675545a87cd31a5f95cc25464c4d815bface2aabe4c5f29470cdd57bd26d05", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11449,7 +11449,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x60b2db347fccf11a47054feb95f41de5c06f6a0015b958727af6a1237ef2fdf7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11526,7 +11526,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e597a24c77577f0a8d93a48fc7f64acc564ee96068f11621a985b800dc7dda7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11603,7 +11603,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3cf91aaf55783b3efcea3918ed7450c785d8966050734ac81b796e7f385da7cb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11680,7 +11680,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x02147e222e9e8109c9c5091b90c4d022ad1f2ecf2028dfcad785a433c571e800", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11757,7 +11757,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb7e4d65dfab54f148d921d146dcc20adc7dcbc0a75f686c0ae09f52f1269c0b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11834,7 +11834,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x078e51cdc99f6ec4ceb0c005933d9bb1774d6ca2e419062aab461fd42f66c9af", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11911,7 +11911,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8fa90bbec23f8734593799f1676a7bbbb774c2f384194d91c0c7a79dafbf56b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11988,7 +11988,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xabc0eb00f59ac0b5c61cd6641b9f53eae9da9bdb810523d1bbf8f096bac2ce0b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12065,7 +12065,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa800fe2b6d5450aa83974a5f1de18bbda067d85db2a3e21d2da86cf9c1a3b4ea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12142,7 +12142,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5edf95d26f95ead2a3f9220c0c10ac2ee1a98ff2e5b11e94aa74a016ee21a956", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12219,7 +12219,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x45657f89114cd0248ea4451e16466c31ed12910c485f5aa38ba8dd2f5825c229", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12296,7 +12296,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4cbc2e1cc5bdd3af43affc460163e3301f8ff0ce9b3f1beba21a4259ab201820", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12373,7 +12373,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9a8e2e1fd3d88a819ffdd5c1feacbd1f52546d79f9d8f22dce712d916ea3d4aa", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12450,7 +12450,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9c4757bb65f39a0fd8e7b14a8254c492a479ee318aef86514cd493d9e941055d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12527,7 +12527,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x225d6b5b0370bb64b0717a224752efb78be946ea937c73ad2ac9abb2a117d60f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12604,7 +12604,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x804fea89d967c3715c8a3fd0c6812383553e8c53a69783c82ffb75a83ca0037d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12681,7 +12681,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x17fabb81b5825e515ef9ba960dac1dfa28114336c5e1d97029fb0681c9291c02", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12758,7 +12758,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc64de781b79805e8a34d2fd5e8475d8461b3d43f61d29e9469afe8d55b402a71", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12835,7 +12835,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9706fd6a6e159f8a9a65b29eb8e260fc0695e0943b03b11406c88129940226fc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12912,7 +12912,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb0abd7a06f1330f82f09ed6b3f0f3cb873093f29655bb206e23b9c89af13d8d5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -12989,7 +12989,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb74597016b58466ab8de496b80868384fac7310113d20ee897edcf1b94a68ed2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13066,7 +13066,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x40d512a972c0aeefb8793e6c6cd1a019d3eeb95357d4d1a2d60cc9db2863eb4f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13143,7 +13143,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa6785453b24bee054d270a714e70aaba8614975590837b3f11558cb0b7a50040", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13220,7 +13220,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe17ff37d0642841e8769b43ee0aeccb4894eaa571f4611ce12bcec209d1381ee", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13297,7 +13297,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe2dda1379deba5effb703f77d550901bf9b42582d7b039f0266a6d398f17e9b6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13374,7 +13374,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2a1a969ef13c8533f78e6a1912513609e452fae2b4c29b93791e67dee4b38a07", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13451,7 +13451,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4739731a53dc1e54d02d4ebeb1ec6f3a5a32c92cd4347aaa6ea4c0a718727b4a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13528,7 +13528,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe38bf79c0d5596a6653e97913e01646c9effb8eaf51929795406cc2a02c388ea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13605,7 +13605,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcb0ea6298c6e74ee724588e5edff4dafd6ad2976c88c34ca153a7739833b803f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13682,7 +13682,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd01350b6d6ea4be46719938275184897c14cc850e45a8e002d8e5665e8fbcd66", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13759,7 +13759,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfcd729a403405ba61cfad6d3e983f4869c2efa2db58025db0661ff42564192eb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13836,7 +13836,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8ee4c975d1515211a4b39bf0681724d125014d5727c7b2867cc9001fa0811894", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13913,7 +13913,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe95c8aab16ebef2e061cd70cf45af4925156d11cc73868ab7cc50fc575e962d0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -13990,7 +13990,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7d7e92b8aa3ebd2d79a98826a5c5863b4016704c28fabe5c2bedad69e3baf5db", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14067,7 +14067,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfc04144d5c5c0ab21c95bd9b1ba523880674adec58d12d1e6e46ac10f4f5bba1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14144,7 +14144,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x78ba664ccc0bf33410f0559edf09ab0f9ea8ae40ff73233fcf02abb4164f475e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14221,7 +14221,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf48cf5909781e6d97bac6125e8a90365cfdbeb74addd0fb76a293cff03d01a49", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14298,7 +14298,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x164c5fe5cf9a342adfcc277a404aecd18cc490629017aee13f65ad3082e1328a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14375,7 +14375,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x40978aee7a432cc60f378590047a48b0c110895a957698b3c0243f9fa743b461", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14452,7 +14452,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbf6f1210917b1920b93c01f5a1bd4c115f0abe75ecda80049aa0e876be6ccb44", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14529,7 +14529,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x04defd13deef7b3e59d7c2efc94f70c912ad053f147b378fa77b2826732aaf97", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14606,7 +14606,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe2aff010e9a1f78fc2187eb9055bc8b1cd5009435aaf353fd273e5529928452f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14683,7 +14683,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5850aee532d3537e61ff52a265c9970d93468abd0d2508800a268d0d26a477c3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14760,7 +14760,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x14765e338a863bcd4e9655fa86a4d9f850526bcf783d4df65d81203b097e7f0f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14837,7 +14837,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6d49cd21f7c505833639ed8e0ff8b91869b75b9ea531cf957a799d81410ab0a7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14914,7 +14914,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4582fb2422dba89f67ab8962cea9f64d3bdd731d1f8622dee34fb6b044dd280f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -14991,7 +14991,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7486bd1ba01756f36f4d2e6125e4fc516ed821b5b03cc855f5762358089e91d8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15068,7 +15068,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x35a9e7f8baca9c69ad98fade29f3404d5835c81e398458438227a316ff9f4dbb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15145,7 +15145,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9558269fea1bae7cc60e91b5577a1054eb09dfe0609129830b49d38ea0283f82", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15222,7 +15222,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x51f829324be80ea350be3caf1b28f4f98db12480638d90f9dfb98b2fe4f1c4ba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15299,7 +15299,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeb07bb4335025abc41c7a346cfa597d55883bad6aee35340f90382f5a448c327", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15376,7 +15376,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xabfdaf14805a046440fd1ba0d7e43f158051ed2387091b0cbfcdc65a819413c7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15453,7 +15453,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe6a1bfa98f4c3bc33604268033fb3877c4110f942c7f68807ff06e0a08e94f5a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15530,7 +15530,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x87b44d3b445dc8c90b007c38bbca12a8ab5a9fa966060d09c72ed5add7092b93", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15607,7 +15607,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x97e14376ce2ee49b160fb0f5eedfef55c052b4729f50434f4bec9b5d65021ebe", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15684,7 +15684,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb4618b543a39c3d1c4584bd69ca46bd1cdb71e637b804b7392200d1d1e341b4c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15761,7 +15761,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x76ac22ab6dc61f17c6d3eb8ec2dcc7121189faedb59f4119a388a86a6ce89e2d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15838,7 +15838,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x545bb774d0c2578c4121e0a4ab9e02993c6c519b61ccf8e055c3634e692adce3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15915,7 +15915,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1591518ae70ffff1568d0c9d8bdc9062dde4b0a5d771e158278356c40c30dc93", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -15992,7 +15992,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdee42f731bdeaf9943df6e0897dab4e0f263b352bce62516fbea353f7261d39a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16069,7 +16069,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb83f37e6897942eb370cd68650d270de72a189bb5b47a31148fe4a5ee782b818", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16146,7 +16146,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2d315fcee0d4274cc1505d1e757dfe0bd42e8054165c6c3fd78ff9163e1b4139", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16223,7 +16223,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe38e74fc7d899d1b0052d92d2881ea832f2d3f77379318a8b38ec0f533b291b4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16300,7 +16300,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2d3dba94596087f6c61f5afb49129efe715621fcd1714ae0ba6b31969111c17a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16377,7 +16377,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb24f19838a2e4168ee1e5f580d14cba71ac8da604c7e11b45cf98d2565057b66", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16454,7 +16454,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc08d9d8fd56c5e0416a2c83e5a227345538059740a0678cdfeea5052382d9dbc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16531,7 +16531,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x327ad4146383dc0e4956f7e500c7295e7233c8f971620d07e52607a514638667", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16608,7 +16608,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e58ff523d6d64fc67f71b5a7d7229704b2268a0dcba9ccfaa0674ab7a2bfdcc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16685,7 +16685,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xacf9dc74dffdef19e1a378760562b89c6ff8d86d0edb3f08a7ae0aa54d98ded6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16762,7 +16762,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8bf88d4b5d8a9e0575edc64bc62d7d26cd32e82e41235198c96644bfe6b77581", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16839,7 +16839,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x36c9f4af9d699412f16fd8f4fe585c38fce38da9aa380009f0a704918cdeacbb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16916,7 +16916,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4d04fdd40c58ce85d407358ac8b123db29530d6b040c3770f59f52df2839263b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -16993,7 +16993,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd88677f9029673cb4a4c8579678bc52f2a10289e2a044d440b0cc1aae2ce76b8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17070,7 +17070,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfc05f2715bb1bfc0cc040f1ca1835c9e04ffdd1cb56b6e3d22711246d51f7d05", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17147,7 +17147,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd21bce3888c847ea6aad5c2295fe383f4e7bcf07d61854a525b218570a683f1c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17224,7 +17224,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x01da07a03ceb8820f77a3a9ead7a132c5ceff5a5901b793f32dce2fe5e21b74f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17301,7 +17301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1b12577f06feae7b1f997e25c15c0fd43d271aaf049584003a551972442aec8c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17378,7 +17378,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xce81cc4d0bfb7d5723338a24d15e94583c41b14ea3bf2e6e98fbb49984309025", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17455,7 +17455,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5d5f97ed0169a58ee14d9c53866138d36c34d89b1db5e6258fa017fbaf3e3f28", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17532,7 +17532,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2dd71181205dccaa41612ed380cf32e1df3ee10347efcc4e7d7a3cf373685074", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17609,7 +17609,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fb15438db44cfa1c4971335f72c545b6206556464386ff8d09ed927f2598fb4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17686,7 +17686,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x208203f8ddb992154144b28de1432e6e724bb71802e96fd9e8f719c3942e6d13", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17763,7 +17763,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1c934163c354d299da9bd7ae922e79fe8690650ea8269ce49af6a12624c77173", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17840,7 +17840,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5107e752eb675df6c90c31348357ac715b8b261a127a10c72a362a16567311d5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17917,7 +17917,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06081acf8f9ce5e17d1f6fd0542f1372dec9f7ec3dcc17ae83af1c5652eee9e7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -17994,7 +17994,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb39e1aaeaed63b41f9ae848180cd619d49e50e9e9e8a9bd141b96d0f64e29d66", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18071,7 +18071,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x22a7a6862df8666bb16f4ccd330d4bc2be75070378fab2a4877d888e613f8c90", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18148,7 +18148,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc638abe39088a6fba47c776d487bd6222c17795cd6451fd0e073a209f572f473", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18225,7 +18225,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe3b8965e144a82dc741bcccb57cd99e92b0751a24503c74d969f16730d63aa3a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18302,7 +18302,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7369785ab9c314a19a0db7b71c9d31762b4ec1d1488ce7238a50762cbed0bb3a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18379,7 +18379,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeea470dffd7e6799c707dc41513ce4aa457d6d241617b74c20dda5f652672326", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18456,7 +18456,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe77d1551ce22f3be2876d103166d485766e2b7beeb3c4aa59c126b0ef63ae5c7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18533,7 +18533,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0a18d51a7fe718595d2728bc4445aa128b5d2076343efbb10fc4c6c5979608d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18610,7 +18610,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9c8e01ea4acc2b8490eb748f3c81f6c3d6be2d76b0a369649c8e86319b2d0b37", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18687,7 +18687,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x749e9341047a76a799006794f5ed4566dd3ec77a8409dbce861b9096cd529059", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18764,7 +18764,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5f943848d75c4fe5af230d56bd86316583e10a76418b47f575be57f1cefe6981", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18841,7 +18841,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x17581edf1eaf9f8f60a21327ef94794dd201af29ae94c5a0679718368955e004", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18918,7 +18918,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x49733232d9bd56b9d0dafbbd04310f29332fd92efc9c8d7a9d10fef54d79b106", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -18995,7 +18995,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x10d912f7b7fef65cb76a2eb34412c498fd4f3fad2c9a9a8908ef806251e83e98", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19072,7 +19072,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6090f50f997f233db92f2c517788174f087842de8ed715046af0b67b300c5eb1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19149,7 +19149,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x594087b50601a197b3036173bcab66e06477e7f5e0ba3ebf8d656155cc5908ec", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19226,7 +19226,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb944235af7a277974855dfa8d9f7e0eb7a358bc8ec02f9fb067e944609420d70", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19303,7 +19303,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe3993f51da8d2e1708cb60d29b60a95c8f5c4960f2c59222b33ddcd089ba79f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19380,7 +19380,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xccd83b67120da7dcee4bf1aca47efa55def3959842f3a71291273ad9b1d5d3f0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19457,7 +19457,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xad4a0714da87604e3dcebbf8771d4c644c9bf08a12cb541a2d4d1e458871a842", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19534,7 +19534,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe609fb40eb7501943b68a1c714ae0e99202f6d3863fc0902f19b0e3fdf108f1e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19611,7 +19611,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaee85c772c94aea1702ae33ec85683e6a99c6f18394a06030bfe795967386c24", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19688,7 +19688,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x71a463fb4b77c8965edd8f8595612300a9ba8f179afc0a5dab15308067943eca", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19765,7 +19765,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2a61e30fbecfa654d47bbdd5b67d8be67c5ac7e2eacaf6d389ca2b27eef1dc41", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19842,7 +19842,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x048c9d7b5c1828486713585aa593a203372be955f7fbdf6eae48e3313deb350f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19919,7 +19919,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf9f3cef2fb3ae418396beff0f97b567c2e693c2ac6c680644c0943c0c8b9d304", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -19996,7 +19996,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7e837ca7537c891465fb10a0cfbd81a585d93117d6d0c332342971a6fb079a48", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20073,7 +20073,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e2f4bd341dd16e8b5db71552044e29d8e37fb1ab4c7fcfa7c0f6e6af0af719e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20150,7 +20150,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfb772b2d542104101d7f46c1524dc587dc1ca72fa347c0f99395db08efd2be92", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20227,7 +20227,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9dbd7bd674d9da323e7ea6083d937cefa4ea75f926e1126527728e5223412287", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20304,7 +20304,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x09619cd9893e56b06fca3757b661cda16d90795d810c662eaf0ea098d43b8c4e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20381,7 +20381,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4fff19c93bf667e15425ff8b105ebc4fa41cfa68a455741c9a9219fbe37cf667", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20458,7 +20458,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x05df659e2b27ae18c498c4bc4e6c604a6cd63f3a1ff3d5bccdc298e34c50d3fa", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20535,7 +20535,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb9b60f8f08864dd2bebaf2e4ea9b7fda79e469684931e8dd6a50b0355ab251ce", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20612,7 +20612,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd4e42b8eeb41f6aba421e33f6574c2cfb8ea1cfb70583c01862c2d20878bfdc6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20689,7 +20689,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfb6aaf2749a5fda7ffce31493fd148a8816cdb93385d25e4fdf042740204b231", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20766,7 +20766,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xee46a5a7c13818675d2244e84455aa01b5b6f95ccd8ca404182de568019a1406", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20843,7 +20843,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdaa8459642bd070de0e0227987c7da64935eea4a07fbaf495a9dce4773dbf68a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20920,7 +20920,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5065e6f658045db361d769283bb4b5ad047f7aea61cca07a675a93d9392165e6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -20997,7 +20997,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3850ea01ad63bdb0679e6a542114c396caacb33cba9b57de2467168b32231f22", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21074,7 +21074,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1799f28518e1c79484e2f2f63a524cf7fb5a436d571773abca91e6ed2feed981", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21151,7 +21151,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf2bb70933e6f8024f8b389ec67c975dbab988b27d7aca1c25255ef4f269af389", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21228,7 +21228,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfcb777e4eb1d5fbf27ce2dbbb3715459174d349e6998345b4f6c9329099616ae", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21305,7 +21305,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x13324b653473c6f96b8af1f22b539708b63288ac323c26a9512d34af7d4c3f33", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21382,7 +21382,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x661edde6ae047078949fb24339b1b4986583eacd82a7ee424ae206142c097857", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21459,7 +21459,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf7077a7520a0ecd9b3586fee9b55c631c873d02f27a8f6f9286d66e2a27a3730", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21536,7 +21536,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0cc9b0cf344dbef709f2df4f912a5d82ca10ca255635b0f2cab8348699c53ac4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21613,7 +21613,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbe1ef068a553fa54c2d82a27d0b83d38c4a50dc10b3fac54f749f00c1f7a25da", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21690,7 +21690,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2293bb7fdf2b8db8d2810772d9fab127477bd98001c60c8a1063c76b8f82372e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21767,7 +21767,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x16c3d23b616a05775e7e0e37362974055d9bec52001bba2b2f8bb39a2dbeb9a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21844,7 +21844,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x280bb5ffb6f3af62df1d93244d6f78687f57c3315bd534c92c28b5d3b7a82f88", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21921,7 +21921,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb89e1dc41c1f435b879da6a05ffcbd7a078c57cafde9ab4a2e0ebeccc1bc0673", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -21998,7 +21998,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9753e7c54d56f9e5ab0dd6d381b52d7ec897e7eaf887706083ca8a76029f8aed", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22075,7 +22075,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4b83fec0e35c4df20b133db25d62f5b715d25fa6438ded1ad80c7120c5cb1433", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22152,7 +22152,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6c32ec208faa6e1941b1c45ae767ec7de9a766ad812b52e2540607d5934b0afd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22229,7 +22229,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x15af61c4c861d20091b56e2bed67e38745a6bc37000b5a0d0b286b926efd825e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22306,7 +22306,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9cb2d1210ce9acbb103c7e7e19d32b50f8107696607aecf8749ca2b21c66c1b6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22383,7 +22383,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a15f0c8331d07bb9bc3b83a772937a60d1ac7ad261e169be3071fd9e4ed23d5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22460,7 +22460,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3073ad77fb9d0bbf806bef904ac863b3ed4fba0ed4c605cf7a129103626de611", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22537,7 +22537,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd1bd9aa6169a72430deb220b21d53c6daac1b74ebc8f8fc3939940b3e18d5635", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22614,7 +22614,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x499670040aa7b89c0e07f16e1a10bf3e1e794221df7ca8623dec588f5ab97734", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22691,7 +22691,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfda11c43aa270b257f0066b8c653c074c86b8d4c7dcb97b16e7b5a4b775e8398", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22768,7 +22768,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4b9b48cb5140eb57eff9798776bcb3e5cdb436964e26eec49efe3ddeccd8e355", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22845,7 +22845,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x74a07c8194c5a8fc0a3b30479c524b9c70f6162d1d77f88800adeb1049a09ae3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22922,7 +22922,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2b469630ff653e229f1c83a1787910601b755ba1e9a94189739ba19d889fb3bb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -22999,7 +22999,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xacfc776a8317cb25cda0dfc1200b1568ebeac582dd5d68256e4a0f0e29e0aec9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23076,7 +23076,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9e04a0f0824888528f0d618751371e87abbbae37ebb4744d8685b38488d19a6d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23153,7 +23153,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x185ea103467a51e483bd3390a3ddfe7bc3d0c0fe6c8f395388d9bccb58e86b7a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23230,7 +23230,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x03601b0be4acd56f1e9ee53b898cb82fc2a9032793d8a297aff9905c9ecd09c1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23307,7 +23307,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2d5c78fa6b4a399755ced7f08d3d810d71905b6f822b04f35a11ce1b2b5596f8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23384,7 +23384,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0a50a2104392efa0eb78e5be2a50705d3336ee970bff1030b9646662de994489", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23461,7 +23461,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa4d81185d5824231b83eda6d33f69077d65109cc4d7e365481b57e48289adee9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23538,7 +23538,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8a36fec50a42b4c8e3efbe3127e7486117620e322ec5b68e84e215c1c77e5cad", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23615,7 +23615,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2970fbdef404c30cbb7e8a4d56e686c87e2f52c1dcec494e278603779d6c2d18", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23692,7 +23692,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8f3d94cb5a19307691e4306e9550268aba9c780f0e3be272cd7ad232056d6f08", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23769,7 +23769,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x862a83f49b3697f6b49d52b152fbd5364d49f7c1804a97400518c27a101ec4b5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23846,7 +23846,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fa930ab790cdf69d8e7febc323014b2c0043c46eb697c82348877f79fb1bcb1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -23923,7 +23923,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd309ae52ac263d4e0b3d0d5e81a8a52e53e7bf5f20e7c708688c1397fdd7e4a4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24000,7 +24000,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9d1cc8c8a6efc659fffe3f3b59ddabcd74d7305aaf89fa755e9c631240ec4f70", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24077,7 +24077,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa52a2671d5f12a788424649537f02b36f399b58ed419b4f16c09195d7908fdc7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24154,7 +24154,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa9fdbd5ad4aea2b1e04783fcc9a994685161077d22c31fb4783a2ed6417968c0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24231,7 +24231,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe3715b696927fb594e70532f84ff73022fada787c8e3cad3f4b0e4eaa8fb08fd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24308,7 +24308,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0c021cb92a4551ea12b3b286fab7ccc02cab3878ffc8756a7e02c573c36cd39a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24385,7 +24385,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdd55aaa48e566761dcebd398df836c7c7f7f829b32c7ec670f599dea9c4b154e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24462,7 +24462,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1e5362df04050fcb653d7c53f4eecb27fe27da18036479edd532da85d3374b3b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24539,7 +24539,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc9a77c53b96ca334f11c0979b4380324fed3d54ff0aa9cef39f0ce98030eac48", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24616,7 +24616,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x87ecfec33bc44d274e10d3bab7f4f0fd78850a631036c84aec0a504fe7cc70a4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24693,7 +24693,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fcf8928ce92ea22d70f4bde458d9d1b71f55c150d0c1d5b74d9a6dccb05de22", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24770,7 +24770,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3f9e0b6eb6bb67593c4711b23c9cc97950c8be7995e886bd4ac07a4e4311e79f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24847,7 +24847,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x73cda02c24d7188bc26cb0460cacad911992c19a1ee2374045de771d40d3cc75", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -24924,7 +24924,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5054b18ce63d5bdcdc7bb32df79d658fddc8337cafad4bd2f05d11be32540257", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25001,7 +25001,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa4b5d3308d0a44804906049e6fd61a60b0e47170eeb0bc031cccb3357d11288a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25078,7 +25078,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc9391420405e1f1c6014786dc05b3600c67baf4b07ac4a2f2692ac455acb8504", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25155,7 +25155,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf1b679e9a38b55c710ccd38a6f755f1de555eb5b47e3c51e77b5ceb6d26f9cc3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25232,7 +25232,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x319a71ad56dcd623ccc2da525e5a63661af4b993f93877ab424211a9f839dc81", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25309,7 +25309,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8188143a769f738bfafdaa81225c0c69acc5d0db98a1683cd5e1c29616df4c91", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25386,7 +25386,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x716640a36ad7567b7c8e09393566aaf66e6102725dddb91d3d33b826257fbcef", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25463,7 +25463,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0d9500541427de1bd136e393198adf30f9743b9c4ee54c36db01f9b43065e67e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25540,7 +25540,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb154907e3e8320ecdf9340f9bbff6b99276c044dafc6233b5ae1fc91ceb34b9c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25617,7 +25617,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x672c2b1140efd7d8a56ac29c88e62e9849d5cca3b13efd0b78b1685909561756", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25694,7 +25694,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xae46ae8b8c0d55fb1f68704799bf46dab006926311a06aca848b6cc498260e8c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25771,7 +25771,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0d46b35be8ef2eadb8d6dd2e6c19d30bda7876694c15db6e6449ba9880a6a942", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25848,7 +25848,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf610456d17a64c3647bb2e0c05ad8a978df6da08fb3f7f5f9017ba5268f9db02", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -25925,7 +25925,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb69da189f77634e34c30bc4ca4bddfc91ab26c34a148325620de3e7c3edac943", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26002,7 +26002,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9337c7eb5c05e81df139c7a5805c27fa064ab97f48d6204d83181249037098e3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26079,7 +26079,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd1669678ee98444a1662eb69ad7561335561524e337ffc481c4f7b11c73c9c54", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26156,7 +26156,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc05c43b0fb3494bb982de6a94a1765fa98146cdd6b56ccf2c275673fb9d87c66", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26233,7 +26233,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x109cd4b78d801532c9008d98174fa84804989ffa6d5476c782c4b6c4ed2eead1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26310,7 +26310,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x56a614e43f93fafff7721f7138db22dc526fbd6c3794ac4e9e089e1b3dd42578", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26387,7 +26387,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1cfb4442f7260abc86e37e006bdc124c2e132ebca64d4b4d396fee363525a7cb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26464,7 +26464,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9baad6436b1442b183c26bd3dd929f1af1ce7f08a112263fada0763009f3552a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26541,7 +26541,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2f8ac034f56aef85a7df2a4a5d5c03ef00b5fadecc35b48cae66dac83466a10f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26618,7 +26618,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7646ab32816530e95740f1fb11f850850eaaee9daf931c09c2434db42aa3a3de", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26695,7 +26695,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x27b6d5bff935e63073851d56e316dcebb0e8cba2ca644eeb9894faef6d80d655", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26772,7 +26772,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x78d4b6d037c60dc8fd8f29725f3a37eebae2f6e2d3d16cf407066e4055b5bbae", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26849,7 +26849,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1085756ff3a981b83716891eec912b2bfaf61332bcd505298d82d95c2ef044a1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -26926,7 +26926,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1e8037ef16247e7121e12f865615120802a386ea186abcfe5abf84c8b23c5bdd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27003,7 +27003,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0262f588c6ed3f7f069dfe51d2542f32e8919a8467ec71dea30c74665159728a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27080,7 +27080,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9ab4d32443591f058d333fdf48108666dcf9cf97ad2da45c563ffa4750b68b3b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27157,7 +27157,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcbccb967c4a62c2e1b2321a4a26af5b24356cb9a4e530d37cd2cff62b980a3b6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27234,7 +27234,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x688149a6ebf6da64cb8d805e4f7d741ca52b7abc31b3a431b54d6f1a96ec5264", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27311,7 +27311,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x085b51329f0bc0219774d1abe229cee79354eb56cfac27832b5eb2912799f56a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27388,7 +27388,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4b50737f157a19f38aacd0e5f6f67afbc3687b5d4d0bfd07cd3d252e7fbd19b8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27465,7 +27465,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xecc070b50af0b9438475955c73002ae86682b230f623df78d6c2c33c466becd4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27542,7 +27542,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5c49546bf2982d71fe35276ceb150e24b94bf8ca558f5cefe1bc0c035def67b2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27619,7 +27619,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x187f18db1fc7cb11850e493dcc81bc02a83c88ed3ed0b4409142b81b6dff9d33", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27696,7 +27696,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x62955bb21e06944edbb8cfd838b7d4f9556d4aad1e98081a829d16d6d73757e8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27773,7 +27773,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa500e6d925607eb37da749b7f302e7e84a4ee0c33d1e889768fa8b0c334c4663", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27850,7 +27850,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x025f2eef650bac73829c1c8e898fa0de1a099a33224c0e2af31809ed266b55b4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -27927,7 +27927,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x79350d9708f1c27f9ea021d5173aaca183b6f8e1f37ba24301f1c19f4ade4ec7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28004,7 +28004,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1d77e08512741edca7c80e223e106ba7baeb6ebdf90a562361dd40714d0051f4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28081,7 +28081,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaa2f7ec64e88d7521b52bc05a9db6d5f73c41795b704dc75dda30c22d3decace", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28158,7 +28158,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x65c6e07732a9b267bc0bf76907f3a4bb7905f5c3056fb4c0b2915036f2fc1974", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28235,7 +28235,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2eefa9fdb41e1c1897d3e660adc865c3506c965d51700adf61cf27717d0b5c32", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28312,7 +28312,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x07afb31ee32293f1703d75178fe9230c14cba053af30046f13f5b8ed13bdcb4f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28389,7 +28389,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1b47c3910cb553ed78d72fe424eb57adb50e13f98133913d033ad7acfa3ca19f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28466,7 +28466,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd91bbcc078f0605f30b2090f208de6c2f11c58506f17d80c35d1fe6a47c3d157", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28543,7 +28543,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbd56b79a7444fc07e87942aa911f306f1a69ae4c97b9f69c486bff2ef8d9cfe8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28620,7 +28620,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x895cfaaf8ebbc24824d7b2ea0af0d2459e1ba2397adcbb7624502d291c8a35f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28697,7 +28697,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb2c5625073eda85596d584d8b79f6a3d13698e843cd8e7fb112e535434f39845", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28774,7 +28774,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5e5662afcff7f49b01e2830772986b9390ef52c7f40154efb5928bb8d8ada02e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28851,7 +28851,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x51cc3e3d08dd6d96a8c5932101caede9371b8fbb364b84c5fc5ce1a9ca812bb9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -28928,7 +28928,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x630d2a22c5f55ed455f70cf9161f7e0a4d1dc60e3e62e2cb1b21b7c09f554b9e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29005,7 +29005,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xac6e47b6ee57cfa1fb9c804814a7bca53d5e67e4ddf96184d86a9b903e27ea06", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29082,7 +29082,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7ae3b0e3bba52973a6701b13e0abd6b19d62cdda343d8d556e462941f366419d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29159,7 +29159,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc55246e5e62978a25a5b6e9a2b6a3ebaaa0bae8d9e19ddf826285b6d67f60eb6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29236,7 +29236,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xca25127d722a576c196daea92354cfeaee1d439b0d81a695d639388508fb87f0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29313,7 +29313,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe7295281c2803c167db22c6f9cb19cf28716d27c110d26a9c3cc8384813ac151", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29390,7 +29390,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0b79bdafba9c6920fdc874559369e0db5dd6a78fa4ac3ba879fa723db26a4a4c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29467,7 +29467,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x534dc8e49bc6a9be7fcf498871352f6844be2863e63a10f5e4dd6154f775157a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29544,7 +29544,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9e9d2ed8baa7ad3307f4acfc31bfb8b087e7e29fdab7c43fad83ebadedcf3390", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29621,7 +29621,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf2049ab3adfc2dee127adb372335b5f3eabab8139d99999961c2104908c194cc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29698,7 +29698,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xffb47bd3a185f5cca7052b8bcc3f96f141b2bdac3b9de3c7cecab36a4fd93103", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29775,7 +29775,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9a522da4627734294121430f8c0dd325211887fb030d858a79353cb723b5df2e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29852,7 +29852,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdb0a1b9fccc1b2857e00f638b73aa2b9cba1c5e1dc1196fd0cdfed84eb809d33", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -29929,7 +29929,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x32115f406a4453b5a790f7b68e86e21e7ec2cac5c6c3093839f0a9888b38bdcd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30006,7 +30006,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x153a72dddff771b08b91fafd6262f7dc28cfac7526678468252ade0200aa5135", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30083,7 +30083,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4844b337318de5d449f114417c8471c40cde71bf14ad7ca9534191c550045e31", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30160,7 +30160,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1250839303ef3bb3c44ccca86d60cb6f3d70b49ea576c96371ca3343c900ab56", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30237,7 +30237,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbdaef1d88d2afabd4ea08a1ffa3f108a89c83e59429b33f211da63606249eb41", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30314,7 +30314,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x52f2db2c2a3ba6c187a607a3106310df2d58cbadc40f00704a5c4dad1bfb8ddc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30391,7 +30391,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0ea211ab3d09b410ea72d7489fddc60c4afe090e60b711cd937af4bcf87cf351", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30468,7 +30468,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe4ab0ca53bb78dff11a9f32b5f1254724211c6f2c13f1152ae27bc70e0ee50a7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30545,7 +30545,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x864c9d0a1b3d67697cf7f73fa645523427125d0272dbb136a8c3d1e327db301f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30622,7 +30622,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9b0cb3c537037776ffc54bccfee66a378a6aa552e16832c5ef3b22e8060f8fbc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30699,7 +30699,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5dffb130c1be2423da1634709fe05277ba6f7bf8f010380f97d85b1da02359da", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30776,7 +30776,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1f1647fa59ae7d32e50bf49f807a2db2c5e6cbddeedc5cbbe7feec2c0e6da0c8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30853,7 +30853,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcba5a36e682eca197910e20e97a16d14616b0a17ae1bd565ed26d2f70b2a1489", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -30930,7 +30930,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x00deecf8b4c4d0a93c2f47a00b9f5a81117c11022276e53cf07453900baf9602", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31007,7 +31007,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x444684a952d535609fd7234cb1f932d80d7c802c250600fe945a65199101c822", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31084,7 +31084,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x956ab30717e2788a713f9d5dd4d1506818eec121d90c8fb02e795f48077debba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31161,7 +31161,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x87eff21836f4418089ab158b10cbcd719d68c8741f4e793e1aa2dff23765de51", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31238,7 +31238,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3246b65c528e7515e0f734c0dd719aeacf1855d896585d860994e34ac862d8e1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31315,7 +31315,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe23f7633f7bb3135ad012f5dbdfef921c9dfcae572fe44770dcdab99c9e80e21", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31392,7 +31392,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x84fa7fdf49287b3c7fb368b70a4cc98fb27ab1833fcfa1427ecef8fd41581550", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31469,7 +31469,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8f14bd358f56b1b0b68387fbdda27006ba342e3262aaf8ea65872e40732e5080", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31546,7 +31546,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc372fc3dfe49dfe97b60eacde339d23bd911181f1663f6e8b4ddc00611473f9e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31623,7 +31623,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x12d15f8acce242ede79a2ddb91a1a2dd2e47cb22c0482096a9326c5ddf7d6611", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31700,7 +31700,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcf45760d191440670b121ff6c84e1c428c6af31dbf7488cc7b0f865701380708", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31777,7 +31777,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x55c721fac829b357f27177cd645cb2c0c4dca31d11e42e4e2775465efea8a5b1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31854,7 +31854,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcc145f4e0d002edc9bd5c8be80204bcb2d0d65fbc49e377aa7afb66ec12f5036", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -31931,7 +31931,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb67b577703713ed09d011639fafafef403225e8029f685be2f0d609262994db8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32008,7 +32008,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7631e604dfca9a0efef3f064bf775a35a1f98ca7de6073e5c6b66738149cacad", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32085,7 +32085,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x19d62b47c0b7ab5a3bbed9b3ce05af1b08c3f7e0549386db30e22dd832a3a84c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32162,7 +32162,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xda776d8c59c9e39666d57970c6c8e69abb47d3be23d07f962b467337979f3307", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32239,7 +32239,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xefe500a13c3a4cec45b4e8c61251aaed690a31f58277125e49d0b1a8a77a6cff", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32316,7 +32316,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7d919f73d378c41c8549e7253bb97d265dc42e304e46bb13d0a859c86e63f530", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32393,7 +32393,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9f67aeebf7b3487bec0d55c245d42f5abf88ec9b391501aa91d4af8a28f6f67c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32470,7 +32470,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x44c5b0f77f052eab5e2f7ca070ea9cabe395ef32e0ccb5c794494d607b5133a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32547,7 +32547,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x782bcfefda806b942e8e3d994a5dea150381ddd1f6fa99211d68abdaf28f1f7b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32624,7 +32624,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb068ec7f36c51ae0bcf1e51e0c6f9d2ed6f1167be576a23c125a01558b331d89", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32701,7 +32701,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x174da551867dc3830545c5b6887bef91a634ba7945ac28a65ebf5aadfa91f1ca", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32778,7 +32778,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9a8c8c25488dd64065b471450c209d15abbe0099eb84a6f74ad16d4a40fadfa2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32855,7 +32855,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3097db4574dc9c3c15dae2f5f8ef4e9fc15a84951d695bf405a94007f732156d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -32932,7 +32932,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5ad05b5a97f1e3833cc614f2f94db1a406c87aff09beef4449f226ecb6fcd367", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33009,7 +33009,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x21f9493f31cf8c0427f0bb9e57c48fe5f25bcbaf4e48039574187bf11676d8a3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33086,7 +33086,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfc4f3ad3051294266f8c61d57398be31206170e6d80706260fba2bee9f0fb309", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33163,7 +33163,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xea9a987ae9aa5bb9886176d8e568ad1d0c96911b56f946bf2619431b360826de", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33240,7 +33240,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9c8ba0f9b0165645eece1ffe96e1c74dcf974e194ff36b5d88b0544a0d2a5b98", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33317,7 +33317,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x64bc3d2d06f833ff44bb9e55e9cd142e206bbbbf6f3dfad70202aa45e489e2fc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33394,7 +33394,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x61803020fa1f3b68ac587f80d118c7da40629e1c2497205171ff1594a9ead0e6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33471,7 +33471,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x854063e57b5b4a7a108e1e7ff9e74c2240ac7c96c28cd5f280b5aeb8b2731c32", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33548,7 +33548,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3a8edfb5670d064b2682067917a0898bef6341dac47d4224e6e1213c3ca2a66e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33625,7 +33625,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x92292cfe1a962efbae182072fffd5109cfa9b7764077d2b4a84661583aa75940", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33702,7 +33702,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x20d92e7a4ca31dee33adef12f6ed1fe8cc74b81e81829e7908b26e56cbaa2f6b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33779,7 +33779,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0ea3ca5977adf7ffa24b50ad84f5939da915d787a41844b298bc7c20b73444ad", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33856,7 +33856,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0219b9d8ac089438520a9d8bf98005c2eafae336e1139e91890b7ad3a0e1b2e5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -33933,7 +33933,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe72b0cda7faff633ea49dea933d63ccd2ca7fbe833757df3f9c917bac093558b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -34010,7 +34010,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xea607d7d24f9f2af55f132d9a70981f54942465987724fce49502ae5216adc2a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -34087,7 +34087,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6ee9366b9f88baf1765df804a8a3a8571b8e4bc86e152504d1c7b25c03e464e7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -34164,7 +34164,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x07d315e5d8d1290e34feae7c424e6d25bb1d36c2e987de50944cf8d869a31962", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -34241,7 +34241,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4427baf835b23a1bdda4412a05a80bdb04b32eb309de02a8976304856421a981", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -34318,7 +34318,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5c5ec43522f44ade24f8195acd77cd9aeaf4dfe151ed712e0e65b77595c4c324", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -34395,7 +34395,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc9d97ccebbdf6b02c0b75fc1103083b62890c0d8b55889a25d59ff7384c351f9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -34472,7 +34472,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7de5b9bb515146635f97a519038860085d220b48b5c44620dddb4506fdcbe3ae", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndatacopy_oob.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndatacopy_oob.json index a6a96d02d4..9968e368a8 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndatacopy_oob.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndatacopy_oob.json @@ -59,7 +59,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xda61aaa1018100dbcc6d4efca1ad1fb0747f17089ea66fd9eb51d873f189501d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -136,7 +136,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3cc197ffe28e91b622fc38e5612059116f8337bd253f3d9ce84705f3bab23b04", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndataload_handling.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndataload_handling.json index 08a91ab0aa..7afb0ce0b4 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndataload_handling.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7069_extcall/returndataload/returndataload_handling.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x657338eb444677994ba2e0022b4b72ac71c47652819b298a039b6b26b237ea24", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc3ba9a36403e1f0eb1b288465959f3113d858b601956ed252f7f85df1dabed0c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf1678d41f620ceae5bc739f56ccd1e6fb93537713dec1237ec0008e0732b426d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb8869b3c845f38ec84b30cc5ab05dd46f8fffeaa4c9638045fe2eda610beb9fc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -331,7 +331,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x41e7c21baa755d60a2ac416a8096b2f886ab438d81291bcb29e6501005959ffc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -402,7 +402,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4d370a7ae662acacd29a9dc4586ab004401f71fe5f4bb8611e915277d06b1f11", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -473,7 +473,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x12938434ccf2a19a40e014682f00102ec66412f1c499445423637d16682c62c5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -544,7 +544,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdaae96ab8a63b6fd584116c6c9d2c1b6880105dd7e4a766d070ec0c96be47de1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -615,7 +615,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf05512575e267399285de69d58c164ca76be2ce6e6eaad85af2426e90efa4ad2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -686,7 +686,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdab8b7d723eae7df3dc7f6a302b7644866a3b2a361661d8a3e8873c09f116c4f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -757,7 +757,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7e85de6f99b1089a9d9fbe8816a8b4e74236315ff6758aae47a510c5b23c24d2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -828,7 +828,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9aa899ed3aa1f4863b40adcd39b50f7b25dea65edc46201bc6506293bf0776e6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -899,7 +899,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xccfc0effba30e00da621ee59d05b24cf3237013b9313d357dd4fdea1c0b5a29d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -970,7 +970,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06241a3e3b9e0a0426bb7edc09a91adedc1ea42b843ba63b8169746b61746bfd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1041,7 +1041,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x04d67a8c2e5c8b8323f874e1ce1e5e6e11099f7a1cb9577eec1a6bb50412d02b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1112,7 +1112,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf8df8f163462dfb34ad2b86933b6fcf44d4bbcef0b478aeb8f8c9ce45cf90b92", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1183,7 +1183,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe55336ae62f57be186ac80a37dcc8fa9a45d78269c4125443b958fa2a8fe7dd8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1254,7 +1254,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xad6394c458ee44a2aae0711533b1f0a6aa2dd4160349cdb328766fc1fa0c46b0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1325,7 +1325,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa12d4896df1db0ce491ecb30f2913b4239c62596bcfb792384b6caa959b18905", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1396,7 +1396,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeedfdf3015319e33a21ed787539c01c61cf6fd2bcf1f1dbe83157940f4d7364d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1467,7 +1467,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc42e75577d5feee8ff9e12fc15a1942e913dccb3570ae7d3e73749001d5fd24c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1538,7 +1538,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7d5d62a42b0b46efd205a17863674a9056a8a31a93b1e6580aee76f098ba2f59", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1609,7 +1609,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x746769d463b606274e8de64f7048f3f17ce54fcb0ef509b6b2aa2f80f12f6fbc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1680,7 +1680,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbb08e6053dd2b4361eba9b68c0c88558aaca71bc4edc1dbd5e37c02352cb4bf8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1751,7 +1751,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd8ecb68b964c2267237a76b6b90c05e2b88d679ded39fae2b1a46b3b01355f4a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1822,7 +1822,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x90560c1111d50ffe6d60ede857d07e1cbc8c64e5f57aaded3e6904d188d84ee9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1893,7 +1893,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5ef09f12562d8e0e956b77a57136e5596addabd7ce0662028b49e53305c6ee9d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1964,7 +1964,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3b2594cbfa5af001a1744008bf8aa14ca153445ed89c34208c5cb259c2b0e148", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2035,7 +2035,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5e5dae9b7f23db20f62e314853d299770242ba93aa14cd34ef0e9421d7e5cc0c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2106,7 +2106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3ec1b898874d88dc30ef9656c79e41e8f86457823cc076d8648678420473bba9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2177,7 +2177,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x48485855305d21587bbea8d51a8ae8e99783258257ecf3b11b3b1fcf50722cc6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2248,7 +2248,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf3af1a3126c57226f1f0e2fa720fa1c963c41ab93039f840b07e86c387893b0e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2319,7 +2319,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4e140ae032af44a49352b91680435b052d86980eac190636b6f26c99a76266e0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2390,7 +2390,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9c3a18319226ddf6637cc3c612f9e856c2ece202c733212f0a0732eba5992840", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2461,7 +2461,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2d7738a30f647cfc6545c6376480e9da61c59b8f289004af7a401a1e35af1ea0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2532,7 +2532,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa0f45f8179eee256b0e98c40380d5947e01e9dcf8f0be1f5f93149c88fa931d3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2603,7 +2603,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8f426f04d0059e2307cadf689e174e7dae6d57000ed0b2ce9706ea2f953f80e4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2674,7 +2674,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8312d4cebb305be0e416ab32c9d94a1b0fdc8cb039cf5c7a23b1f684c9af08d9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2745,7 +2745,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x550352b29b552c2a7aba8d2225ac4dc8ba623e255b5ad69c990230b3902277ae", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2816,7 +2816,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x044414620a571444a08fad697d7f83d6f7eee0d6c960cc84265622faa87811d0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2887,7 +2887,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb61e66337429ac2911db2a25fb08b5f068aa18bfcd8c7af5a6ca7b98f9223d56", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2958,7 +2958,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6cf35a4fb6fe555c41ade0d5e4ccc8cbe0411537ab137da713c1c597adf23fd5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3029,7 +3029,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd2a4b28b2214d42181b56c6771bd74e0a156e1bc306a0b31b608dc5a6df48447", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3100,7 +3100,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x02328e00435e37a4ae83d7ddd8306be4fcebbe0987074cd282f95c62a39309d9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3171,7 +3171,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x589e8cf7dedc5b9b86ade7caaeb84b4853242a98cc812b24b39a6a74e1c14cbd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3242,7 +3242,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb10078738e30edee173b3ddbf5dca8cdb39716c74c99399f64b06d1e731ad9c4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3313,7 +3313,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x522e833bd1c60df906e2be36d27f7f3d5f5d1a9c81f077514416e95d8aeae443", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3384,7 +3384,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x93c864c56ff8031ec307e1beaf9dad1882c520cc9d31b76c0f7a79fa0baf282f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/data_opcodes/data_section_succeed.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/data_opcodes/data_section_succeed.json index f36d35e83c..a48abb3407 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/data_opcodes/data_section_succeed.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/data_opcodes/data_section_succeed.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa29c3917b00b2984f37f4eec708243998f4dd31ca7d5ab726e2a5b561d5b238b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa713598eb154b86042266cef2f12063b683033de6e3c4229de87b4998548e1db", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x95233c1321b26fec1d1ee4c40c69a6d30e9645e099f24d6550c54f51db0726df", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x27dec5e00b55306076407df84d2da0f2e7c0fd9d7aee3fa7cc9b5349d69a1d13", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -331,7 +331,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xad79b231d6ba3922235ac8a547627fbb730fc7422446661c14ea697537de71eb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -402,7 +402,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbf099ce5c3febc1d4365ade166b9fc33c509ca4af7d843e7dab1959c1bfc9637", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -473,7 +473,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc23862fe8681fd1c0321e0f29803794b88f15504e8aba0ad5a3efaa0492e6026", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -544,7 +544,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2435dfec05e77ff18bb48dfa95e73fd4b83a5c43ee7ba185c04942f9e04b4f1b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -615,7 +615,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2cffc9daa3662138bb1b5de7625d5d42d1e076670ce542c8a45376951a40ff2f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -686,7 +686,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb3d4b269d3c74732795e9aaa3b8ae2946c3b077772f17e3a24c093c9e9310f75", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -757,7 +757,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaaf81cce513949785da6edd190c1119554dd8db7599647e252ab4a82d90404ea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -828,7 +828,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x63be874292739f7e1a2f9750e011fddd8d9911a1ea2186910d406606ac9666bd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/datacopy_memory_expansion/datacopy_huge_memory_expansion.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/datacopy_memory_expansion/datacopy_huge_memory_expansion.json index 091fe1bbea..5492e2abab 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/datacopy_memory_expansion/datacopy_huge_memory_expansion.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/datacopy_memory_expansion/datacopy_huge_memory_expansion.json @@ -51,7 +51,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x39fb0bc395b1b9b81eccb2c8ed5005d0b7ef35cbaca6d0f2b13b2d3fdb6fb117", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -126,7 +126,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5b06583680f6db4aad0d6db3336f2a6708f4e25fbe296c34fa75772a4b53de8a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -201,7 +201,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1869260ab074af050de56f7b3451f525240537eeb9e85c7acf5d1e5faf20f729", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -276,7 +276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbf04da9a5835f4dbb71378d9cc99011543fd22f3f08fde9d0538aecc05876b89", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -351,7 +351,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x01369397fe9f90ed6ba405121c28dcc2c10538357cdd16c85061a34bb48414e2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -426,7 +426,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb543d738162b16d517d44fe2000ccd375fe5ee29731611238493ac95f6a8b126", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -501,7 +501,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x268ac42b62a2870877d97d0be1bcc881468c54fdefd8e0d65008b28132642387", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -576,7 +576,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe70c6c7a3f9bb9f3ddeceeabf3ecf758ef9359d64026c5d28903fd7e24745dd1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -651,7 +651,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc3badb5fbfc69588e75234237a2b4be8cce3c839bac7e31d3170f4f146aaa1ff", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -726,7 +726,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x63578afa69f64be88bbbbaf3cb09c75f3cfcd3805062b9480eb847c9f3708b90", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -801,7 +801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4cba68dcc67c6527fe79779c8a7a2b81928633c9035382c127cfcf44b509e021", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -876,7 +876,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8eca41e71d40f9bddf8ee2e33808811cdbac330935297366c63a0c660bf85550", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -951,7 +951,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2a6de9d206d34de5e1e70a529cbe6bb24f0cb0d4dd072b00609065205dd0d3eb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1026,7 +1026,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xda8824bac20e0492b0f9693df2ad9b8a35f513597915feff0d90df673f93ae9e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1101,7 +1101,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x15e4cecd20bebf6bd42addb898aa6879ff9eaaa6303e3da7eaab943f7170b875", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1176,7 +1176,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe334e17d98b88a352de13815bf09f94ae158916b26e17ed5828fc17173740f3d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1251,7 +1251,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc00025a98dce02836fba1ce34b2804c3f57fa1462437f3dc596d8a24d5653d2a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1326,7 +1326,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x80bc57957600401396493d6c9ffdf4040c43c694e2406ecd966932e8cdcc4a31", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1401,7 +1401,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x559a2e83df8f5a23085b80251bd020f53228e677d4db61c61c374258e44f31e7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1476,7 +1476,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fcf3eaf152c2aab85bf3c2441afae1699cabb44f27c9dceb2c4a6c0dd6df42b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1551,7 +1551,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf0ac6dd1fea45e1ab634bf0e6e578ce4e77d357669255216d57281d26882b939", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1626,7 +1626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x093dcc5ccf0dabb5ccee5e5ea2a1bfe780a5811d9760002749c16b196b1a9cc5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1701,7 +1701,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcd4dcc789bdccb1650cd568079c4429d125499a5aa2a2db5cbd199d7fcf6335f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1776,7 +1776,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf1b308f047ede842165712d8aa63f38af5df45717f5a72c2313a931eac50d512", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1851,7 +1851,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x67a8231b163faf3f722532e03ecc878c0fa0e4ac89b628bba63d7579c25500ea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1926,7 +1926,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9f00f247bef5a737c2e3644aed04cac008415372784bb41f95517a0245e93140", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2001,7 +2001,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb202a399169c2e1e2f47507f8d50f94d132b0355eb1aa3acef8e55980223a783", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2076,7 +2076,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xff4417a64fa71c8fc48126b34014a1e11616fe636be3713bc213070860ed1d44", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2151,7 +2151,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0971919b1c0f04e5848b27fd21ad723c0f52c3ec65d1665e2f3b285a0212fcb9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2226,7 +2226,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2803fab47b60376101522df0d63b735c636a8d8d8e5954bffaaff8de185f228f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2301,7 +2301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x116b036aa22598e6d8eda1bbd24ea36ccb9b22db4437407906ae4f0425a7ec9a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2376,7 +2376,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3c315067165f69e32a1efbb0c418ee3934a0c9e6f27d89676ddbe6118d31bdd6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2451,7 +2451,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x929e01ae9c0f092911b5a3abcbacc9400deb07498d8832de76bff82cc69d75d1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2526,7 +2526,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x70f0e9a1b9944621435692ce9f075b400b9eab9e8e669e205ba0e8c2bb5ecb95", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2601,7 +2601,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6b471988b377de8deb85d0a800fcf82d88131f0c74bd07bf7970cded95f8b41d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2676,7 +2676,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc398fc1a15af568841597862d13e5f3917a067b7229427cebebd7c69fae33ab3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2751,7 +2751,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x98a87ff0d500c8e753aa4bcda9555a53c6a0ec1f9555452d0e6dd0315cd61ee2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2826,7 +2826,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x11a3cc32e248bb63a87145d72a32a030e5f4b72eb407fa1fe177731d0030d48d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2901,7 +2901,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfe21ffc035cd0e78432671e424b286f39245b4f27a2fe8dcf8889e3572297096", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2976,7 +2976,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x37ecd8a256104b2f31d342dbb603fa94499f0349601d83981e296b8d5f1b9bee", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3051,7 +3051,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1fc5e4a4b3fd024eeeae241ca4435f8e85753e24750319917cb15f8a453acbbf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3126,7 +3126,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x88e732c2b017296f25e01cfd84346121ca83d39ed361b62f69e4885d8c5b19c3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3201,7 +3201,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7f125e91f492a242a72b5c259e787449b52421a0fda3ebfcf6f332d8c175fed1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3276,7 +3276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa2226aaa68ceb8f6c7170561d8ef1ca8e5f244795695aa0c9101f8c753c90174", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3351,7 +3351,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfc710bf064f83d60b1af12b598f19cdd508131c5b525535a02fcc09d0b70f7bf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3426,7 +3426,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x18766f815e778968e77f0f017d58323b96f9e300590f31c99d62eeb99efc6b2a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3501,7 +3501,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb4b06c892fbfd81ab77363d6b96b76634818718e67ddb5bcde2afc7e659a6cc1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3576,7 +3576,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4c996bb42a5b3475b309da7b51cd123658efa852b331736066363ccfe97a2a0f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/datacopy_memory_expansion/datacopy_memory_expansion.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/datacopy_memory_expansion/datacopy_memory_expansion.json index 47eb10bdf1..7d60b9f44d 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/datacopy_memory_expansion/datacopy_memory_expansion.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7480_data_section/datacopy_memory_expansion/datacopy_memory_expansion.json @@ -51,7 +51,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3bfe91e3af9c7a80f70b6a71abb95593065bd4bf3b97e15430eef646edb9e947", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -126,7 +126,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9179d999c80562ea1a0dbe7011923774e5b4cfa986ee4fee8963affc9c63d697", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -201,7 +201,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8e79a53f7f994230d68fdc05181ea3b0bb860f39c79d49399a4f4992644c489a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -276,7 +276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd5a82fc89f375c082de12abd1b76ff922fe20b06c3dddb0a8a76b0d3f09fe067", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -351,7 +351,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x920d0bd1bfdab45f403e517ca0c10cc8573dd7dda6ffa54db992dbed694621fd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -426,7 +426,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc4fc9f53a1186cea432a555821372d054d391609f03f29d13840ff02912c80d2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -501,7 +501,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdc60e994a982daef98b3bace1736662d47908febfb998da2f76c9e9993b15f8d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -576,7 +576,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbbdb99f4df2c57a79f44aed13af05a97fb98bb8a1f6c3699dcba5fc1626a859d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -651,7 +651,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x378d66fc7c1be8633c2b46e025c8bed7f2111cf9bc048828663951eda19b95cb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -726,7 +726,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x128f7d56a526da0a6fc8242b97a7271dcb8883f2b040375c5e3d27aad2eef430", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -801,7 +801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd55af76fed021e97243966a711eaf49eb7a24cb619f24b4b00e48ed3b4109fea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -876,7 +876,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfe2ec6c2eabd7527f9ec7f9a0e44bd8d317ecdcace3003902686d366351f3ea0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -951,7 +951,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x670e6cc9ad52fafdab03520f8f5714a06832617dedbcf145a86adbf4e6ea7a7c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1026,7 +1026,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf710a4ce3d94086e20857bdd38156f84ec0b8846b0d25681145d2e328d589926", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1101,7 +1101,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x27bcc54c4e806853872b211f0596b931f364a7819a72dc2c1d5c219278893a86", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1176,7 +1176,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3980e2fdfd883dd758625314f0a7fc6fc0ae3027e82734f39c923ed8f8800d5d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1251,7 +1251,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4e639b1fb93d10a8a902b8008924b62d13b8e09c75b42aa0835a3bf50b042864", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1326,7 +1326,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x298648347e551c394503f88a30388fd05307522082857576aa6c0cdd376bbea0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1401,7 +1401,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf4b172cc5219e1471c891032fbb6ad22b03da0a7b9c2fdee3f673487826ce12f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1476,7 +1476,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbb4c168a80207e2256fd8ed83d4a7866e56b7b6698062bb8977bef2533a1fe37", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1551,7 +1551,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbf17bafe5222b045e3828b9acc17cc35407b2b27b33e626392ea93aa433efa2a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1626,7 +1626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xde8b1ca99209b254f5c9ab48ac463d6713237f4f2026d75fa1de82641469ee9d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1701,7 +1701,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x77912f3803adcda91d811026be8a13a5c312b3d086e53dd2258b117e91054236", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1776,7 +1776,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe9025ac1badbbe49eb6296b32c278228440e268e3ba7840062fa7ddc915bc052", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1851,7 +1851,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1caf9c7d5d7e786fa4ff83c2fb515eb41b8dcf06ea26418ef6321de03b81a258", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -1926,7 +1926,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc2f06a926bf8feff33b627f5a0bd58421be3905e8008b2071ad7ffa56d234802", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2001,7 +2001,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x13b957184bd605d3f8d8708951d6c98fbea1312af92476bd624311447f2632a8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2076,7 +2076,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3f333129d21d825c93d0cfed87a1b485744a4f33d6c234c38beb345600632f7c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2151,7 +2151,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd5e6875b55a0746e6d29f0a015f91c7f16ac36a7816364a654c6723eee8c3b91", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2226,7 +2226,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeb97e3625c6d558c9b92f1db8044c628b4f699b5e00dccb8dbe751e92bb69a27", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2301,7 +2301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb9ace040f53da6bc0d546f342c3a5f29b264a77282bb4874698c08ca5fa52884", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2376,7 +2376,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xab41a88feb71758515732ce9e305765a075d519766854d4912626bbc5854b3f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2451,7 +2451,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x24372974bd77106f24b23217660918c95aff27dd0c042d07e48c5367000e482d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2526,7 +2526,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1d75eed99faa602f2aa2ef733493945d9a7dcc4a26218cabc3e2f6ae15bc1211", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2601,7 +2601,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaa3bbe4390ee6a8aef0dc17a28ca911299a00bc8700417e7008d2964af2da106", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2676,7 +2676,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb84a54ed02e7df7d9e75247e7bb89f845156e50e2c1d9d8a1b3a6b0553a4b9d5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2751,7 +2751,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5237ab386a3749a137137743952f1e617f4d9b0af70bcc460933cdcf74e22a22", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2826,7 +2826,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3b2d27ad40a37ed20c5ab7c04b2ebf0ccce841f67ec953baf50b52a596a225a8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2901,7 +2901,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x96c1a68ee5075b391c23a7aaafd34e29acd8176d844f975bd66d0c433bcedfb7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -2976,7 +2976,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xaaee28de4b956464c489fdbd78b2c730a4734f83b396d21093911bf89896a38a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3051,7 +3051,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6972e8c8939b0bd9c32133376d2f33f45e33c17434344b5b8da70052dc296985", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3126,7 +3126,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x250abf0b067abce9f8c804735bcb4f8c235862efa646dfa4023736208bdba842", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3201,7 +3201,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x06238007630f676040c2dc1dbae21c125ccf0683d55d9ec1beeb1a8687e18a00", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3276,7 +3276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x76e8fa353ed0e34daa6e5a460884831260fcd461afefa0043e8fa4160ddf6f76", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3351,7 +3351,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe3d73bd2f506f843d426610bd1a0d65bc79d317ffa942205ee9ffd7191f204cf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3426,7 +3426,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x13f224357b0f54812080f811b84425ad12ed632fdf7725da3a447106da3f637d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3501,7 +3501,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x46d2826c972cf1df0da7abd8d454580408e1f6ceb365c42bba932e805a9e63d9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3576,7 +3576,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x244e3935a1614d419e05ed8d1047f2643487ffe66f335340d5c5deec99f6b646", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3651,7 +3651,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd2624d9686dc6f2c3b640c0988bc9e3543ef309c54609615dc8e8da94ee11a4b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3726,7 +3726,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a82f557e7f13414bfd199821950b2b8442a10ca65432fdc41af24cb4fe3f978", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3801,7 +3801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x26c337867c0ca6ce680ceec8d1f1667d338644629658caa70182d05ada15155c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3876,7 +3876,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x78702993a8ae814e1ca571ea135ad299e96f406caaaa838fb424f4d74dba3532", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -3951,7 +3951,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd3a75ed04a77327fee1edd561c067c02c76a0ff2f2b6941627a3727e165a2140", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4026,7 +4026,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd6ba8b60334decbaa9e2179e89bae537b150dc58881ca181dea371eab5ff175a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4101,7 +4101,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd4f0794438ecfcaf5670654d48502e60b55dd57c42a868e76dca2163481feec5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4176,7 +4176,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4f286248372c0f1e3fb47a382a6c2c28721fcb7b11e50cef221e94012ef7eaff", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4251,7 +4251,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6c1f31f6a19916368c22118ce92a367a9091e498606acdf3f1608b479e65c16c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4326,7 +4326,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x488b4d265f1b6f32d8b89cfd36ce29b7c59dadad4b5a319dcf742c722627a8a8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4401,7 +4401,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9ef8eb2cc5792a5a9b0502e564f9cbfbeaca6906f3238244d521e7290f9c06fd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4476,7 +4476,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc80d77df1e170d97e57d300866525711a9b3980b1133211c852088f638448140", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4551,7 +4551,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4455c9c66fd20a33344234e6ccfb3032825253cc40c45897e8f1ada862156ccf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4626,7 +4626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb83d14adc85eeab0cc809cfa88c98d17bd1616375fd8695bef367a122b9ee94e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4701,7 +4701,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc160aceb825b51b56942a962e011b053164dfa322e1c59d2da3e2344d799731e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4776,7 +4776,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc2741e9148e8a35968ef79b06fb00cb9d6bae87f25619dfc6eaef92656d1b13a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4851,7 +4851,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x706020215043461542653290c4451e50e8ad86a8764bbd078e99376cf5b8e5df", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -4926,7 +4926,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x891a763e39927a5c77e55b19970463354af8d174f49099d3583872d370da0343", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5001,7 +5001,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7647ea5c86c447adb8947bf9d33b74501992ee95eddae9282b6cbb6321de6604", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5076,7 +5076,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9722ff438200da835872745e61b0d38ef0b32d3a846cd2b9692c0ba2658623a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5151,7 +5151,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9398d10ce89fcf07592b23d7d18091e94ed09d6da7965ee73072331487d539fa", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5226,7 +5226,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf366d0641300ccf5b126d42f000e2b62cfa6663e5551087316aeb4e546734654", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5301,7 +5301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x753bb8a18fa52ceddd82538713a16f17c1dd0964ae56b4dc9bf3b7cad20d96a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5376,7 +5376,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf49494d621af494cb36892c03e29db58968b95521174bcc80fc594df7589cdd7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5451,7 +5451,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x12f9a17fa6d8650ad1bddc62a2903fa3d0b8a31887856642ccd0c7366d4e1456", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5526,7 +5526,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7ae584c0268fdd16ff39eb89c29bf2b1c351a106cbf2c11f49e3b5e49bf3200a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5601,7 +5601,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe50b499a907942406f37109279267ed2582f1527a253d848a5b1af10074ab5f1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5676,7 +5676,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe2cccedb37c1fe2fadb70df8f3787ac0835c46a6cd551c013b1b0267f369d848", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5751,7 +5751,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcddf77641d19c30abcb38d8b6c548d893dcdf57ac3136e42a26a2cfbbbdc447d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5826,7 +5826,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe932d4a9afe15986a542c6ec22c239c7858ef2f0ac4277290a7b36452c2ec3af", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5901,7 +5901,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb22676ef4df6349d5fbb022f8edc076765018f3d55c274e6fb0e5473efbf22d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -5976,7 +5976,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe8051bcb62b15dd95a16ceb5f7c6bf799e1e219747344aa9d8e53b05ab1ea80b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6051,7 +6051,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xea6f258fbc99433ea941f2fceaf5c176b08314e32471e66512b92763f81745a2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6126,7 +6126,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf68fdbc60323caf13095be851a2ff19a15191629d938e181346241c075740b64", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6201,7 +6201,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe190cc0412033542859810ce11c887892a98047c1f68f1de9cd80df8032893a3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6276,7 +6276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x21e960c878af6bf1d3af8d1eb76bfb41db1fb6b02c5104abac3772eddfaea759", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6351,7 +6351,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0650d3612fa5f6f5e98cfecf50b90add0678dfadebd77f94c95caaeb45535952", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6426,7 +6426,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x56c6a64ac69d33751f7d2807806db8e662e3270a3873f0a15326c4b0fcda1e7c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6501,7 +6501,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x235fb9de1c71e0441555edd26df6a19d138f1df5efebb53a9c14b3f1361d612d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6576,7 +6576,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xac1612a4c992416a265b96d845b880ae9c514278ee28a5b7672a5450be7d1d13", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6651,7 +6651,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfea3f43627f3d414520aff52798935d67eb96378a3f70a0e7a55fddde1b51aab", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6726,7 +6726,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x96f5d5504fbcc6d728868819d3aebbe9d9a657659f7d45365e102bfd0738d47a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6801,7 +6801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd72ea22fcce9ab1cee2a9061beff5e3ddfc3186e19b10713ff51bbfd7dc134a8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6876,7 +6876,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x724662f3d8632f9426eccd30038c0a123d1790f0f9b8f26116d412f0533eb025", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -6951,7 +6951,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4bd5535ca275188913999cef4cbce0785e9c5a9566547336d29cc6decb6d2187", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7026,7 +7026,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x60a8b2812801df2a7db4f8c6510602b89d8733e2d2d3c089b5f3b8125234f752", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7101,7 +7101,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe02a8da3e1a2f2ded49f9020c9a37a6a7e9ecb4b36c53d033c9341245c215c16", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7176,7 +7176,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe3acb4d3f1c74bc659045a7c7652cd179be173f1b9d817ab84a85b6f3b603bd8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7251,7 +7251,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xce66b8e9ee61bdb8672b7f20f8dc3f8d3d9f639757d5e7bcc2a2bf2f3674afbe", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7326,7 +7326,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe48954249fba32ea434c08344fadb44bb10989aafdc5ae2ceb9a90c1a7600bcf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7401,7 +7401,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5ddef70c153cd21e7a9ee0380a96302ae8f2b7b593443e14d2511b1e34ffa4cd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7476,7 +7476,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4fcf189bb08c40a4d3ab6f9821c850c2dacac887952e61f7149ce749b80fc2e8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7551,7 +7551,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd0ece5a590476f63272d46ca6266ce6aa18964bd5000582ec6d803ae52e564a3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7626,7 +7626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe38fda65f5e69a6864408c975745a74b3ba22c75a5fb3e7bde6fae66de0a6ecc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7701,7 +7701,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x00695d96655258caf8adc4b584d2dd43ae23c8af1170b65c37257ec6d92813c3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7776,7 +7776,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x318990205505a7bafb2addf1ee5b331fa3945a0e7242b36ee45ec8701659baf9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7851,7 +7851,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x058c7bd7869933c4a419a84b1d7b1a5afa0dd4e19a04f924db06db0678501958", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -7926,7 +7926,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x15a9aa15212cfa721b5c74b3e04cc29ac21a4e31f35c9a0d0acc834ff246f9a6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8001,7 +8001,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe07984f225723a0e2d81531d6fd3e8677c3076ecc5ffd64c4bca10216cf911bf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8076,7 +8076,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x55bf60b3326c7148a85b7464f10a6f7022921e6b4583141882e60fdc68adaf17", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8151,7 +8151,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xceb75681f26a2032a240b4d75e548455bb15027cdedf3c4a96725c1c2d0f888f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8226,7 +8226,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x38c349db9bfc49845b0a8e274785814fe025685a847f50df7758e4ffffca86f3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8301,7 +8301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfb0a4a2931d5ee5e69b01ec71b676371d1be3515721c4715ee5363a918fd90bf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8376,7 +8376,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x64e2adb8505e4575a67cf03a1614c88f71f6f38539fabd631e98ce634f79564d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8451,7 +8451,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd75d72db85f46414b7a1c1764c049b5273e73b4e54c041cbeef661fa7dfe8e0d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8526,7 +8526,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb9b6a12f16eed3001b2fde2ecc8c05b81dc2802e37487709628bfdcc1bd189b2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8601,7 +8601,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x043f7d5704d5da85c6aa975551acaab0eaf980b5fe78e325134c21d4c39514c1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8676,7 +8676,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x220e35488637eae954a042d8b1aec9082e2c2cb95f788586d4175b53098b91c9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8751,7 +8751,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1669eedd1cc9d97a9a7e7a7b9ae0bf133fd22a599aee5f9e405acedf9f797a42", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8826,7 +8826,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2c6c8b21c8486e67d9cb274f6398877c3ddcdaf7dfd5240250b0a9f66f3e64a0", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8901,7 +8901,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x87dd7aa71f9943c9df12ebf8da89085a3140220392e3a00d70dbc95f9bdc28fc", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -8976,7 +8976,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x39f785e91cacf9c7e8f9ab5690830fad43d6320ac5171fa5b09cafc7f8e89aac", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9051,7 +9051,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1755c35dfa6fb15183cc582eff9694856cd48d2de290d3b906e6bf51ceb47795", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9126,7 +9126,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdb2659fbaacd0efdfab7092d31a089bdaa493243f6e512b8f0ecafc1392eff76", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9201,7 +9201,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x259ec90a8d843f91c62c6172e50c72cedf3df589cc6633df54a704b50ecb6ba8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9276,7 +9276,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc485e07df482fbd3d4076642bb2dd16ada53c5521d2173a4e04a2291ea1a28c9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9351,7 +9351,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x474cb2bf1803e804c26b8f911d38cebd90053de7ec6c35016676001a3727e4eb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9426,7 +9426,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0f0831c6ebbac3611ebd4d7e077518e18a7f22294ac7911d92f6256a8d33d063", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9501,7 +9501,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc306af8a6b37affe90c5a95c59ac8e5d42fc3ba66b1c8187e724fa913fcce115", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9576,7 +9576,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf357ad28975f4ce4bdebca713869c8f21473ca8f7f4dcef2f48a0ede18943785", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9651,7 +9651,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbf8f00119e1b41f04901dca326e1fb94ba04e9753aede66eaca60505bef5a93c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9726,7 +9726,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4642ef1f6d009da712ab707ba8d8af1d7e8990704b084e07adaafad251cf3f90", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9801,7 +9801,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x44cbbf137a5caff706aef7a0f7db9a7f3d7c422c28e1e2d7e05188defe2cbdba", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9876,7 +9876,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe7dad6277993c6ed9745b490871bffc937a0076eee3eabbc9b4eaa32b665c39c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -9951,7 +9951,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x59d811e6db20dcfc447e5a68769f2f094e6c9aec2c05c4a9b7e98d33578da989", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10026,7 +10026,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x354746e4420e00b091d43de66c678135ec8d76f1efc1bdf9491db2c691d93280", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10101,7 +10101,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x508ec7dc74bd2466809e3ade254cbc3f83fb22ceb5c15bfa8f95720a80415491", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10176,7 +10176,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1457fb54c40466660ccc0a2c7e05b9730e77f06e736699644e61e9101ff51acd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10251,7 +10251,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9c9d7057f53d1b63f64f405960c361a92df41d33e435b641396b16bf94e62eda", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10326,7 +10326,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xde5523cd5417fe12ec00abcbde4c79bc4bb1bb57f2ddbd84eba7fd65caf2ab4f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10401,7 +10401,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd74e047f3a1046eb2ea6d70577f5626b0de4c1e7eca35061f9ab6adb608c9a0b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10476,7 +10476,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6e04e2a1b07dc7c11a61a9cf55c2d9677b822842d2f1885d7b78f274474b9aa1", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10551,7 +10551,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x84ee436c7fbb924fd8d6480564630d97f8bae256254411d12a1a912a04be669e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10626,7 +10626,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb14dc42e7816093bb5f3127be0872b2d12077cd460ad0ebc2c9dac51613dc1cf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10701,7 +10701,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf5198bb86c35f4eae9427717c86bb21aa4e029fdc183fcf6df95718961f32b0c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10776,7 +10776,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x955a83eefcd152971f9eb80631e104d3c3614120bb2fd23fcecc960ac69f8423", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10851,7 +10851,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x69045ab68777ee830e26eebeba999ad92b19f2279ab3c19ac58818a46113b566", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -10926,7 +10926,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x228e1197962c412180d23e81a552002116094f44fe9d3315945db788fa4a5f35", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11001,7 +11001,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2619b337bde05bb38d4124e2c794860ab6894a0469425e3504dd44d1e76c1415", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11076,7 +11076,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb5e12d3c4f3100917ea0bf670de480b809aae2da6f861d85016c8e922e602a7a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11151,7 +11151,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x63cd4708e2c70253e93d0af790d97bf35d3ce4c2c20107dfbfba9e609b54658f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11226,7 +11226,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xebc2a139a05fd7bd5f40fb03a7b5057c1248b91a1cc00226817912bbb4b6e3fb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11301,7 +11301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x722c860fa25cc5111f9462cb2a830542226adc6b39b7dfc407d732de090d446c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11376,7 +11376,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4cf6359323fc738490d7e7c3bc52f8f232053dc12b94cbd6062f5838df99299b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11451,7 +11451,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5b850d84264c9849501c95758ae9470c84975508c9c9924c1f9f3ea2f8e5a8cb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11526,7 +11526,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0b56ef65d09820d217068e1202024b5926e7b2a4453473adb69a07860e80e78e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11601,7 +11601,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf8d1cf1e8980f60c04cf56ebab3916067fd0f0859b995a29a449e2ccf8feaf4a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11676,7 +11676,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xba75a690e90e1f32bd3bd2fc141659f8bf8c3f60cbcb6db4fc0acd99b17c1c65", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11751,7 +11751,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc1ed9ee836023258513c2899a19d8b1127d908e6bcd99d9540386070156c9917", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11826,7 +11826,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7692b9b91bc8045b1520d3fc440c892d115773aaf0aa302998abc9dfea0be742", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11901,7 +11901,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x64a198d8e496e65a8e8cdcb230cf4cedea7cd4075ffd67922d64348179ca1f05", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -11976,7 +11976,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8a10398740b3d0a7dcbeffb358fd19921cf3a5a4f9856b7123b84fa9c5b4796e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/address_collision.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/address_collision.json index 118f2550a6..16e04d84b2 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/address_collision.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/address_collision.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1fbc0d912d405cc1e39bc5b437e5e3cad4feae762f5c6a332d61e52b995411d7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/auxdata_variations.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/auxdata_variations.json index 9dccc1e98b..9de7f7da6a 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/auxdata_variations.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/auxdata_variations.json @@ -43,7 +43,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6b016ad444f8da705b20a6b87f120349a3013db1b7b28a88f76900cc4e90a109", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -110,7 +110,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdff9bc5d5f758becb7ed6980ee21c1dc05c85661250e891d16009c2a6163401e", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -177,7 +177,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x23942b9ced78fb4c2cc04a07188e6c29f1ee4fda0adfe826126784e92031715b", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -244,7 +244,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcdba8270370651731ce452bbf08a660c4b555986b831f6f7cd0d8f0b295b6fea", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -311,7 +311,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x00f0b984a906a9129a2461fdcdbade762fdb626ae6f497fef23a2e0b05105cb9", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -378,7 +378,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x48dbe697bdfa9686cbb84eb085fda063e5f7e5eff7c5cae1092969f39dfce68d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/calldata.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/calldata.json index b25a20607d..df247c1289 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/calldata.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/calldata.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbc95630a91018f10b4c56a788b9f8a1b154c4ce1d83fb0fde3742f8f6c8577f8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_in_initcode.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_in_initcode.json index 1f777f1277..59a9f47946 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_in_initcode.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_in_initcode.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcc68351d8bd08e441356492937bc3aac86bf44cd86d94995436140de2121b275", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_in_initcode_reverts.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_in_initcode_reverts.json index 1b5488e282..dda1306b96 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_in_initcode_reverts.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_in_initcode_reverts.json @@ -43,7 +43,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe3b70714e6e087fb1c5488347e704d03f98bf070eb3293dee191e400cec3c0b8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_revert_eof_returndata.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_revert_eof_returndata.json index ffa741720f..098be8de17 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_revert_eof_returndata.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_revert_eof_returndata.json @@ -43,7 +43,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe4479d0cf699b9a83cb4ea027817f6bf650e63db1781d52a9605abdf20c417d3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_then_call.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_then_call.json index 00bdb24910..32c3cfedf9 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_then_call.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/eofcreate_then_call.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbd01e21aa006c1a8766f01239683c52b423589c18eb70c011d317d95bfa30433", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/return_data_cleared.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/return_data_cleared.json index a452aedd49..a93002e4f2 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/return_data_cleared.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/return_data_cleared.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x751c160c7b352a4ce1abdc9d0cb0dcb95ae87e92d7e04ec965dbf546b0df98a8", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/simple_eofcreate.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/simple_eofcreate.json index 560a71f52f..3cbdf55b07 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/simple_eofcreate.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate/simple_eofcreate.json @@ -43,7 +43,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x981fce3ea3eea4aee7fc339c5a3c50326b7aeefa170d1a0689a99ee2052fd5ce", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/auxdata_size_failures.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/auxdata_size_failures.json index 7b9a5f2f24..f30a59b552 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/auxdata_size_failures.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/auxdata_size_failures.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa150f2e35c43528fdb54c2098cdf48c86a3c317f61fb2c326d8e504805327bb3", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7f69643bf8d7ed8258129772c6e206b950d1eb902e9f9aa475e166db9ab0f7bd", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -171,7 +171,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1657e233b617a332554ecbaec5e5b1008385562ddd885c7e6f55f08dacf97178", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -236,7 +236,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x60f7efd124f7af4f5656abcbbfd48fd833b99bca2441b0f5cd535059e9239293", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -301,7 +301,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x60f7efd124f7af4f5656abcbbfd48fd833b99bca2441b0f5cd535059e9239293", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -366,7 +366,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf2e24754e71231a545f31259e3991db2c7b1076c9be7a967acea3b2472662a08", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eof_eofcreate_msg_depth.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eof_eofcreate_msg_depth.json index df96da61bd..6eebf4281b 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eof_eofcreate_msg_depth.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eof_eofcreate_msg_depth.json @@ -53,7 +53,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xde6cc62227b4b078e56263de2ca4c5a3022420a1188093cb8f9f3da221a9e143", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -130,7 +130,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0b1aa5b808b3ea89cc2ba3fcd8b77eba82bcbd78066f95760a947fd80012797f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -207,7 +207,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x74e324aac301006cdc09d236ba96fe1553afa07963c80e6783c38e8ce9336018", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -284,7 +284,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x83f2020561771ad3ae256f02110de34a0d02de8cbc28115e5e0e457b73783791", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eofcreate_deploy_sizes.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eofcreate_deploy_sizes.json index 2fe2ec7cba..5f4155fbbb 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eofcreate_deploy_sizes.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eofcreate_deploy_sizes.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdce092ea651cab61d5f2bfde44de66d6926cbc0227a4349045ba8ef9aa2194d6", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5cc90509b0f34f02655e56b0ff74e71c17cf6c219007ad767e3d6f3ffb5dcd84", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -171,7 +171,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8e3b8943f9e8236b12df185fadcb228f9d5332bd126a17ef6db6d8753ec06bdb", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -236,7 +236,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x847dc0daf11ce276cebd64a8fde8dd001f14794da3ebfc1fd29e56aff9ba2ff5", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eofcreate_insufficient_stipend.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eofcreate_insufficient_stipend.json index 6323bb6e5b..de49fbae47 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eofcreate_insufficient_stipend.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/eofcreate_insufficient_stipend.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9168349382365dd021f7080ff16376bc6560957196dfbf75fd7cd3915bdec010", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4efddcd0c21e2367863eb5ab7f6748fba3603e2cc4251b69ce6d47f6c4282a14", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/initcode_aborts.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/initcode_aborts.json index a99d963d74..f5cec44a10 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/initcode_aborts.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/initcode_aborts.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3e6c255f5df9308331074b37de40a4a0380908d5a5c78e35fe52558b9bb98d9c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/initcode_revert.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/initcode_revert.json index e2e6ffd6a4..e47adc28e2 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/initcode_revert.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/initcode_revert.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2c5f11dec0f07c692a4fc711cbeec1713626662f9809d3fda3437e6c9df9c61d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7bbf2a83dc3ed5c456ad0cb04345e906b20afe9483955d94b0eca6a4a20e26f7", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_gas_memory_expansion.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_gas_memory_expansion.json index afdaa28bb0..8464273981 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_gas_memory_expansion.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_gas_memory_expansion.json @@ -44,7 +44,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9747af5c90023ebcc200c11d992d273843995cdaed32eb2a4e7e2cf695c0c796", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_initcode_gas.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_initcode_gas.json index 5da78e4e4f..2103b45e4a 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_initcode_gas.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_initcode_gas.json @@ -44,7 +44,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2e3e7832984c72232a74c2db65513e2bf6cbb29cd2e6d24b0353c0a951fe6dec", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_returncontract_auxdata_gas.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_returncontract_auxdata_gas.json index 457747400c..88ad1862ea 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_returncontract_auxdata_gas.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/insufficient_returncontract_auxdata_gas.json @@ -44,7 +44,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x94434785221fa814c384e6180770b57f4761f834fc3d7f3e5ac6c425f3e1f066", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/static_flag_eofcreate.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/static_flag_eofcreate.json index e3d8f1d6a8..71c3a2b01c 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/static_flag_eofcreate.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/eofcreate_failures/static_flag_eofcreate.json @@ -47,7 +47,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x51f755899fc8d21ff146011ae98270adc8ca223029342648d876661ff5045133", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -118,7 +118,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x812c162eef62ab097eeebe7ba8c18252d9f72a7038906a460e5af561dc36d13d", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -189,7 +189,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5e9c16317a46a8f090cfc95e1d20179bcafb7c6985b675a53492196b3daa3778", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -260,7 +260,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9bb90fa90ddf13b6917d1d2bb40bcf0f9eb5fd68f3ef88190d3ac8852411eeaf", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -331,7 +331,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc27a607f9ffe151abe4974877879813de7fd437886048ca064f8b0e59c28c989", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -402,7 +402,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x930477734a5f1b1cd78ecebec9321450d1085855b9a5bc73ff90c9577c12cf86", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -473,7 +473,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf59f2676f0d70d2f7f47dd89711e79e7011cbe6c80faa931c42158cf35c6b250", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -544,7 +544,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x00a8814fed89710fd0186bf40c6ef79c61416cc5d49cfeb043df87eebbdf3a4f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/legacy_eof_creates/cross_version_creates_fail.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/legacy_eof_creates/cross_version_creates_fail.json index ef1ff948ad..6e56063f3e 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/legacy_eof_creates/cross_version_creates_fail.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/legacy_eof_creates/cross_version_creates_fail.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7d37011aa283336fc899a95e802fdd5fe242b6e9bbad211ed058b09ef2a3dd10", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x91e0dbd83cdd2d3280713d220ce23094e4f0ce75d69202f678375b72a4c3024c", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -171,7 +171,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x98ed0c2dba724a1d48020713a5eef6f6ecc9b06a04584caaf9f860a6035f5e55", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -236,7 +236,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x11531242065578efbd65395cddc4e826a3a15c85836b6dc883e8eb2909850021", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/legacy_eof_creates/legacy_initcode_eof_contract_fails.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/legacy_eof_creates/legacy_initcode_eof_contract_fails.json index f9eb30c808..062fbd579a 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/legacy_eof_creates/legacy_initcode_eof_contract_fails.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/legacy_eof_creates/legacy_initcode_eof_contract_fails.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x75e11bd3cdd608f0498b821b1ae6947379e99d22b5014888633fe35ab519cf4f", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -106,7 +106,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7789360253cc754284e1efb96ecfa77988482a751fea843096ad07a4388758b2", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -171,7 +171,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xadd098c6c9f59dbe5420cddb8995e484f4781761a585e5bb89957c73f5d17099", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -236,7 +236,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdbacdcec53642efd574ad503d082d33a8eff5f7095795aaee6490ab014a8ffda", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/container_combos_valid.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/container_combos_valid.json index 68c446e1b0..8595078aef 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/container_combos_valid.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/container_combos_valid.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1097866400b9ae751d0d0456ed2e372215d85ad11fce69391aad060adeac30db", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -100,7 +100,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe8cd629b02a1f9bd567a9a80850bf2f194c57c32ce498d828f02f211b5b17858", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -159,7 +159,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xabb6fab523174f4a9fd932c789c59d112d76ec7a7156219bee16481f2d6c9d08", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -224,7 +224,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x63ba797516cee7f83d0eb712fdd8dc60a51dbebac6cd5bb5139ad9508d17506a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -283,7 +283,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fc3070967147882db3d0841c6a663cca19515f89daaa0c1442791e6bbd1e7a4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/reverting_container.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/reverting_container.json index a1f9782cff..2a3d5dacbc 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/reverting_container.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/reverting_container.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x63ba797516cee7f83d0eb712fdd8dc60a51dbebac6cd5bb5139ad9508d17506a", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", @@ -100,7 +100,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2fc3070967147882db3d0841c6a663cca19515f89daaa0c1442791e6bbd1e7a4", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/simple_create_from_creation.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/simple_create_from_creation.json index 5ff6342675..0c13c0c847 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/simple_create_from_creation.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/simple_create_from_creation.json @@ -35,7 +35,7 @@ "to": "" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe8cd629b02a1f9bd567a9a80850bf2f194c57c32ce498d828f02f211b5b17858", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/simple_create_from_deployed.json b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/simple_create_from_deployed.json index cb316f9f4f..57446b72e2 100644 --- a/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/simple_create_from_deployed.json +++ b/tests/eof_suite/eest/state_tests/prague/eip7692_eof_v1/eip7620_eof_create/subcontainer_validation/simple_create_from_deployed.json @@ -41,7 +41,7 @@ "secretKey": "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1097866400b9ae751d0d0456ed2e372215d85ad11fce69391aad060adeac30db", "logs": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", diff --git a/tests/eof_suite/evmone/state_tests/state_transition/call/delegatecall_static_legacy.json b/tests/eof_suite/evmone/state_tests/state_transition/call/delegatecall_static_legacy.json index 7ed5930b38..b5e3fed06c 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/call/delegatecall_static_legacy.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/call/delegatecall_static_legacy.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbb9984f2d6701c023bf57e8125b59a672e16b3c31e297e847c349dd68d159ab7", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eip663/dupn.json b/tests/eof_suite/evmone/state_tests/state_transition/eip663/dupn.json index a41c3204f5..ea7cc39ce5 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eip663/dupn.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eip663/dupn.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x393b8c91c93b49419c4f38656278bf53f2177bf549ac0a5f7133391078e475f3", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eip663/exchange.json b/tests/eof_suite/evmone/state_tests/state_transition/eip663/exchange.json index 56b87de193..4f3386a2c8 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eip663/exchange.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eip663/exchange.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbdd04fa41be05f4704ce8e82f90fc4f5ec965bbef07ad9657a1f1abc4b8b9cd4", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eip663/swapn.json b/tests/eof_suite/evmone/state_tests/state_transition/eip663/swapn.json index c095b8f6cb..3650a4714c 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eip663/swapn.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eip663/swapn.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2b6347ff6fd9559730077150e515310fb39a136a8343a0976e7364ef11960730", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/eof1_extdelegatecall_eof1.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/eof1_extdelegatecall_eof1.json index 6f7291e983..d2b8718a04 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/eof1_extdelegatecall_eof1.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/eof1_extdelegatecall_eof1.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc5abb1c5fec1f9b4d0dec57e7ce52cfeb6ddf97e95c2adb3642f0e3a61a35432", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/eof1_extdelegatecall_legacy.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/eof1_extdelegatecall_legacy.json index 52e30f9bb2..16637650c0 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/eof1_extdelegatecall_legacy.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/eof1_extdelegatecall_legacy.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x62cd19f848bfa91ce61006196c3c4097cafa699a1059b4ee4bc3b4369b0f6059", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_ase_ready_violation.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_ase_ready_violation.json index 0020490143..4ad900e590 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_ase_ready_violation.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_ase_ready_violation.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc7d25602970ad2496d8b294b1c29094a38c7e6ded5f4ed9ac8a76be9d19d279f", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_callee_abort.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_callee_abort.json index ba44d8d644..208d4cf620 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_callee_abort.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_callee_abort.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdb62ee6bce57491ebf4ba4b0f896da0e00c324ad1dd7203d205135ac514def75", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_callee_revert.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_callee_revert.json index 6efb8288dc..93662aa218 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_callee_revert.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_callee_revert.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0772ba652d7c8cd83d0281377f0d23f81e10349b303375c45c7f5cf874f2d3a0", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_clears_returndata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_clears_returndata.json index 7b01406e1a..8a5a2bb63e 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_clears_returndata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_clears_returndata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9a935db5df78eed3ee28d51c086a0250310c2aca28f25e0b93ba1b132b1fa4e6", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_cold_oog.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_cold_oog.json index 3ecfc9b578..a0d6571cba 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_cold_oog.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_cold_oog.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1b9e883408fb5005a5a4fe5b9aa7003fbbc185be54291768990b2e7346e75472", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_failing_with_value_additional_cost.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_failing_with_value_additional_cost.json index 348e683245..11a1335426 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_failing_with_value_additional_cost.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_failing_with_value_additional_cost.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x685867f1d1acc16a5ecc79e21b1091801d78bac24fcf6e57aa07407640034bd2", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_failing_with_value_balance_check.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_failing_with_value_balance_check.json index 531cb8aa89..64bf26a9dc 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_failing_with_value_balance_check.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_failing_with_value_balance_check.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x58e32851887e2faaa8edb1d7cfc69b95067d3492a82d4eac9af571a0f1e581b4", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_gas_refund_propagation.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_gas_refund_propagation.json index 8ed00cceb0..32e82f0d98 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_gas_refund_propagation.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_gas_refund_propagation.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1355e5c13b28c704c4e7a64b8dcd8530c00c3a7e42e7ae83a7afd5edb68b85b5", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_input.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_input.json index 8e08546ea6..72133c2c42 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_input.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_input.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x04e26e185b4559ae1ed52b122869d186da09eeda03d08cbe88508008d5b88955", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_memory.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_memory.json index 15e156d748..06a7fa6916 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_memory.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_memory.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8709d16e2d1b006107a66eade2c9e172cf15ca11bde17942beef392de333c3a2", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_min_callee_gas_failure_mode.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_min_callee_gas_failure_mode.json index cb7228f834..f0504924bf 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_min_callee_gas_failure_mode.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_min_callee_gas_failure_mode.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x31e5ab3670f221d3d0157bb4e0d67e04d93f0fdbe140b83ffb83f1a8798ec956", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_output.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_output.json index 4c434e79bd..6be1e5ac29 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_output.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_output.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x965bd66e2b6714a9843faaf20eea451ffce5e2090a265e0bda93527aa8743a63", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_recipient_and_code_address.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_recipient_and_code_address.json index 1b4f5ef3e3..e83e705831 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_recipient_and_code_address.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_recipient_and_code_address.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcba55b0816d79a97733a6f88bedfae33b745434e257d8b192d24e26be96be2c3", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_static_with_value.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_static_with_value.json index f7b512fbbb..4357c49d98 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_static_with_value.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_static_with_value.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4511fc44bda4ef3ba405a643e58727439aeb3e9cbb8e840efd4a5b9264278f8e", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_then_oog.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_then_oog.json index 893867a264..7172933e5b 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_then_oog.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_then_oog.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9e9d03e73c300693e0d2c243534b9f84804fe96e6963be6d8f922e9624293f0b", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_value.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_value.json index b1be4e44f3..1a66461bae 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_value.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_value.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a0b6a302d7cfbb08952a6657e09baaab33addfddfd25ce58fcb4457ecfac293", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_value_zero_to_nonexistent_account.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_value_zero_to_nonexistent_account.json index b8ff4946a4..8d87c49226 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_value_zero_to_nonexistent_account.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_value_zero_to_nonexistent_account.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4b1e278d8337fdcd05cc3ac6df9f734b70c89a602840b0326ff8687e19f2fb72", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value.json index 53cb9569c5..f53c381f73 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x50460834b970663344a7c086240b078f4ba77e77bb86e3d29a10c7779c10d860", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value_enough_gas.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value_enough_gas.json index 0936889737..e0d030160a 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value_enough_gas.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value_enough_gas.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf85b0d9b82141f84837bac29171d2e72be762a302c63f444700303086c3e500c", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value_low_gas.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value_low_gas.json index 196056f645..5ead8e9f27 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value_low_gas.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extcall_with_value_low_gas.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa2b8e50ab02b96875e0b3cac618081dfb35abfc34589fb98d9e5c14fd353dd8b", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_ase_ready_violation.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_ase_ready_violation.json index 9ca4d75c1f..e6dabfc30b 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_ase_ready_violation.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_ase_ready_violation.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa12e8b5df53682cf39d7a9b665f0ab5ad8e7a9c29ac3210a6b6c637a8a044738", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_callee_abort.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_callee_abort.json index a88b630841..c9c29e36d2 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_callee_abort.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_callee_abort.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xce52e50e0683a64b1a5bab0d633e4314aeec945a28f36c7d219e558c9e577f09", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_callee_revert.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_callee_revert.json index dbb04dadc3..4d41feee74 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_callee_revert.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_callee_revert.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x052a66e3300586af5cf3f20f6f67263f8d92addc0b7828357d3490a4e693d203", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_cold_oog.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_cold_oog.json index e38a0969d5..c56a1e79bc 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_cold_oog.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_cold_oog.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcb1ee640d38c280dbce9a20751849f20e0022e7f7e16cf8e3d999f2b23b87e08", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_gas_refund_propagation.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_gas_refund_propagation.json index 851e8b4270..5532e7cb2f 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_gas_refund_propagation.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_gas_refund_propagation.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x30d5379f97d11c3054810aef29ec9e21277c833b93d593455754b3c21bf072cb", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_input.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_input.json index 8a0adefec2..554e008683 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_input.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_input.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x920426bf03d11b12b6af68efede2d1d07157fe56296b025242bf4414a7397dfe", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_memory.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_memory.json index 5a9e9e1655..5fe12f6dcb 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_memory.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_memory.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd6ed0ddae278152c9cf7d5d6c2c3cff959abb0210f8b53f3309e139eb7eb14f0", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_output.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_output.json index 8c9f2ae9b1..216707df60 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_output.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_output.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x995909bf27f18bcb5a6ec93afa347f506d25750bb74e9676662bf17b90597e12", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_recipient_and_code_address.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_recipient_and_code_address.json index 29bad0d0bb..1906b04dc3 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_recipient_and_code_address.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_recipient_and_code_address.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x655dcda149fe0662ab0db4f5fe55afb3512c1e58b98feeaaf575f2ecee302cc6", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_returndatasize.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_returndatasize.json index 064d8d5c87..d248d83aa1 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_returndatasize.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_returndatasize.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x9c264e6b63f72875f56d7de151ca6a8485c7dbb238ee3ed949149a7e3be718ca", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_returndatasize_abort.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_returndatasize_abort.json index 8a2192f180..fc6abeb715 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_returndatasize_abort.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_returndatasize_abort.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xa25cb7353e8903ea4e051d39ce90ca8d2ab59330c1766bcb25be4bd1de7ea782", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_static.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_static.json index ce785cd779..12d5f7a110 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_static.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_static.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x878cac587d9f2492ff6e6f8c6d395d45b7edc48aaecafea442183080145fd7ec", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_then_oog.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_then_oog.json index 4b3e832907..a94cd0a9a9 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_then_oog.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extdelegatecall_then_oog.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x57baadea18bf49a08a3e5394a9592d37622790b3c6eeb383175f7ac18ec67951", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_ase_ready_violation.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_ase_ready_violation.json index 016be0dc3c..89e686e198 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_ase_ready_violation.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_ase_ready_violation.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc9293acd23b9c0b9e1553755988ddc3753f591d83284787928d066c43c20b75d", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_callee_abort.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_callee_abort.json index a9e7c21e7f..0f5e81a898 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_callee_abort.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_callee_abort.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8ce6e0880b5abfbd2a4a5158d9f74ea6ba13d6f8db8268e545bc28f6193296be", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_callee_revert.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_callee_revert.json index e60fa02e9a..4fb3176790 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_callee_revert.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_callee_revert.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3bcc9e1aa9d5c3cd1506b7d3ba330711c9c496616aeaef1e59274e17479e3d3b", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_cold_oog.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_cold_oog.json index 968931679b..06dcfa5737 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_cold_oog.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_cold_oog.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xea3a9323d89d804220e7fbb9b8e1dfd3f3da494b3a16b9fedcfb6f0f0d332d57", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_input.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_input.json index 438aeab30a..e88b9d2e29 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_input.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_input.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x016e79a3b6b8833276925fbc53f6aefc66d9d9279ba5916e70109a8873ed2889", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_memory.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_memory.json index 160b24e9ab..ac532ccbfe 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_memory.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_memory.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe266cb80d4c0d6c35cc716c652c3bed7f4a8399701b1bdc23145c17043c496d4", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_output.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_output.json index fafb020a53..b902f01820 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_output.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_output.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x680a8fc099b2af9dd4b045f70bb3c710a2b6f99ff68fa296066272358a92e539", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_recipient_and_code_address.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_recipient_and_code_address.json index 7829284b82..6a6504519b 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_recipient_and_code_address.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_recipient_and_code_address.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xceb812026952b4f8d04100b1688fcd47c8c86f3510eb3d539e870ef4a8a034f6", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_then_oog.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_then_oog.json index aea3b59911..aa3f13d6be 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_then_oog.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/extstaticcall_then_oog.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x58dc200098fb5784a2db08b338853a3add1c7cd7f270585c866136c0598225d7", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndatacopy.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndatacopy.json index 8eb9732d29..16f10b755e 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndatacopy.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndatacopy.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1492c72491c6993d01f95537b3b0b02e5b52fdb37d038e5871700af5548648c7", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndataload.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndataload.json index 295c0a8d0b..96267ed805 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndataload.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndataload.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4f4e67dde6ffaf38400051d3a7bfe06ea58ec334af905cd75cc0dc5853fe031f", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndatasize_before_extcall.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndatasize_before_extcall.json index 4e9c213831..2a8c57d4ee 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndatasize_before_extcall.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_calls/returndatasize_before_extcall.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xeede45c8a1202b2abe80e81e2255daa07d32efc24511b287a1ebe366916975db", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create2_deploying_eof.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create2_deploying_eof.json index 2b747fb0bb..de229d55b6 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create2_deploying_eof.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create2_deploying_eof.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5a09e101fa1f129540914dfbeaa4f258c66bdacb4adb80e68eb941fc29b10042", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create2_with_eof_initcode.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create2_with_eof_initcode.json index f22fa200a5..7030c7e297 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create2_with_eof_initcode.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create2_with_eof_initcode.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfe5960cd5c9049b7d75d7010cb6283de99a8d241992aa98419a3159c7096b331", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create_deploying_eof.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create_deploying_eof.json index d20493df0a..59c02617e9 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create_deploying_eof.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create_deploying_eof.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x43ac6cb343da079692ea55734a56470f17f6c996fdcc6534b1d07be8bfa7cc57", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create_with_eof_initcode.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create_with_eof_initcode.json index 7e72a33496..aa21d8af76 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create_with_eof_initcode.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/create_with_eof_initcode.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc83b382d914b10309610fad224a8f918df473cd29039e7acf5217875c89aa90c", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx.json index a7d33702fd..8a581ac58e 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0560c43cf69cd87968a86739d64119e4d0a5cf83f82aced77653ba6ed8039d5c", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_dataloadn_referring_to_auxdata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_dataloadn_referring_to_auxdata.json index 4b0d98ed7e..607d142d45 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_dataloadn_referring_to_auxdata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_dataloadn_referring_to_auxdata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfbde06fcbcd3bb6f40c3805898b5cbeeaf5bc55f8ada073251a869f78a309bf5", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_container_max_size.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_container_max_size.json index a7c5684cab..d14fdac4c2 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_container_max_size.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_container_max_size.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x66744f184bceaab188828e0eaff46572ec862b8c942e39e4fa6c7a03f563e5dd", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_container_too_large.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_container_too_large.json index 639dd2d435..c1fc2f6469 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_container_too_large.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_container_too_large.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb50b656c7c0aa483971f365fded5abf44ddc5b6fa55f2f6c91ea240b63930490", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_data.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_data.json index ffc10f928b..093900b291 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_data.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploy_data.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3bd1651fdcb154948521c2472185606de5809216c1f28eed1110a02cfc7391ec", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploying_eof.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploying_eof.json index aa9f65f53a..2550334b95 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploying_eof.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_deploying_eof.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf47d2ffd9b0ae0770abf6a3e73801f71f33e49cb46e96ad7b2f9de701475c4d5", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_dynamic_auxdata_in_calldata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_dynamic_auxdata_in_calldata.json index 24dd145c51..0350ad808a 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_dynamic_auxdata_in_calldata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_dynamic_auxdata_in_calldata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc0cca4f70017655c25d02e8bb26511e219cb174ca0d6cf5e797275bfb2413202", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_aborts.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_aborts.json index e6c8611229..e26937ce98 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_aborts.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_aborts.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf47d2ffd9b0ae0770abf6a3e73801f71f33e49cb46e96ad7b2f9de701475c4d5", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_max_size.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_max_size.json index 43a5a8accc..432dfa3bca 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_max_size.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_max_size.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xbd711ec7e370342e55e0656e02f59f8f442ab18274ba1cb1d967c276f212cb10", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_return.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_return.json index 50bb39a596..8b5f934988 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_return.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_return.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf5d0c4a74825178c43c96fc8499e9c03efc145c1626eaa4e9ca3d4774b68bd5d", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_stop.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_stop.json index 9f05a995d5..29b2c58822 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_stop.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_stop.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x58d4ba47ff500b76190ae9b84d3240fd355b32bdee84b90bdb6ad184b53f2e62", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_too_large.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_too_large.json index bcf6c4ef5c..658e29d8f6 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_too_large.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_initcontainer_too_large.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "expectException": "TR_InitCodeLimitExceeded", "hash": "0xa8ee3e60c0f9967eb8e7b8520445a5e9b6a737d45fb8ad777ead390ae8c1f9fb", diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_deploycode.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_deploycode.json index 91d782b03a..e02d79c5c8 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_deploycode.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_deploycode.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8258bc5b04390ff83f13d4e6b5cbaf2b57bc8c0a5bf34dcb15548813b005e362", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_eof_version.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_eof_version.json index f764404d74..177204876a 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_eof_version.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_eof_version.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x07a457d6b640e278ba48c3f35105e951ec78fab0227f709c4bf3b02d91e6d9b2", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_initcode.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_initcode.json index 153d435e1c..c71bbc6f31 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_initcode.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_initcode.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x07a457d6b640e278ba48c3f35105e951ec78fab0227f709c4bf3b02d91e6d9b2", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_initcode_header.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_initcode_header.json index f7eb1026f8..00511efc86 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_initcode_header.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_invalid_initcode_header.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x07a457d6b640e278ba48c3f35105e951ec78fab0227f709c4bf3b02d91e6d9b2", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_nested_eofcreate.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_nested_eofcreate.json index 6e28aceceb..6b5401a5fc 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_nested_eofcreate.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_nested_eofcreate.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2740ee116256a4e6c92a94db811b42aa0f68604bf18e00e9bc4b4b191122f297", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_static_auxdata_in_calldata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_static_auxdata_in_calldata.json index a43372970b..9faa28e91f 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_static_auxdata_in_calldata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_static_auxdata_in_calldata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc0cca4f70017655c25d02e8bb26511e219cb174ca0d6cf5e797275bfb2413202", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_truncated_data_initcode.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_truncated_data_initcode.json index 67608e9c8c..47e3fa4522 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_truncated_data_initcode.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/creation_tx_truncated_data_initcode.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x8258bc5b04390ff83f13d4e6b5cbaf2b57bc8c0a5bf34dcb15548813b005e362", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_appended_data_size_larger_than_64K.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_appended_data_size_larger_than_64K.json index dc9146b196..6c1d849e8f 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_appended_data_size_larger_than_64K.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_appended_data_size_larger_than_64K.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xfaf55dea75b6cb21be18537147ffe1867f84df0b69d67c21eb592529cf8239a3", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_equal_to_declared.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_equal_to_declared.json index 497eae136d..885551c0fe 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_equal_to_declared.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_equal_to_declared.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe4d711681dea2ac607977526d7265d5dc9f526619e02a0c2e4c1c5fecb2150c7", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_longer_than_declared.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_longer_than_declared.json index f59b9d641d..41ef98c83a 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_longer_than_declared.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_longer_than_declared.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x047969dbd1772ac127fc593cb753d454c11c58c02adb295be2433ca74b2386a8", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_shorter_than_declared.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_shorter_than_declared.json index 6c99e6da11..04710598aa 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_shorter_than_declared.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_auxdata_shorter_than_declared.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x12e9f8f28208e02179d7a84dcba5bda9039f0bc9c34f9c258d96f76ca395f62a", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_call_created_contract.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_call_created_contract.json index 1acb2d1db0..e91e3d0697 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_call_created_contract.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_call_created_contract.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd6b7d627769e244d51d887eda38171d74554e89bf72bd817b8eca027f9a760f9", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_caller_balance_too_low.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_caller_balance_too_low.json index 525d8f7183..8884f0e03c 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_caller_balance_too_low.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_caller_balance_too_low.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x45534404013ad0ba558e5734811b3669f5822cfb9590c4cf478bd2de72a52fdd", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_clears_returndata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_clears_returndata.json index 9b86071bf7..ddf15916f2 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_clears_returndata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_clears_returndata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xab3025dcb13375d081bb1f7e55731cddd864cedfafffea035225dea39906a169", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_dataloadn_referring_to_auxdata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_dataloadn_referring_to_auxdata.json index 71f541c7dd..3467b25d02 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_dataloadn_referring_to_auxdata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_dataloadn_referring_to_auxdata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xdc4551773880d9df16a8f0a8d4aa5d40b409f5063c9396119082a7cfbb1b51ed", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_max_size.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_max_size.json index f069ed736e..b2852ede02 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_max_size.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_max_size.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xef49564092e05f3987ff6d48e8b4cc62d7a3f3c794a6af6791faf9121f54bb84", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_too_large.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_too_large.json index af6a294bfb..d024e45518 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_too_large.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_too_large.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xe9763c2a5e958074109a32f9b1d62deea0b2764417362058a86b07c069d284a6", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_with_aux_data_too_large.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_with_aux_data_too_large.json index f0486a8b7c..852c997733 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_with_aux_data_too_large.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_deploy_container_with_aux_data_too_large.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc4ad6e261c40c1a7098cc57d1885b170bc159ee4134ee5c51fe998c7283d2c77", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_empty_auxdata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_empty_auxdata.json index d22ede8c5d..1aed89ad9e 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_empty_auxdata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_empty_auxdata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xf073ed079117f9c67e1145b0571094437400c140781172ba5030c2d5a0f67f40", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_failure_after_eofcreate_success.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_failure_after_eofcreate_success.json index 9110bcafc8..5f952f6ee7 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_failure_after_eofcreate_success.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_failure_after_eofcreate_success.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3844a60218a131c80c6b028f4e1a8e3da149eb137784a7535d59c2453308ccbe", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_initcontainer_aborts.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_initcontainer_aborts.json index 1057292d31..2c49478b7e 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_initcontainer_aborts.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_initcontainer_aborts.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2f9bc4efa856c9add42fb1c09a384f06df02b59f9840994309fd50be13c64cfa", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_nested_eofcreate.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_nested_eofcreate.json index a6a1785830..c7bcdaaf23 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_nested_eofcreate.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_nested_eofcreate.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x0afbd5f332f3caababacd38b91172bfd2dc8f062f562ae0051fb5b89644cf366", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_nested_eofcreate_revert.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_nested_eofcreate_revert.json index 3f3f5aa66c..69dbc6b659 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_nested_eofcreate_revert.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_nested_eofcreate_revert.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x1f4dd53a0b4deef2a886dd2524bbd35e372d129799e5b8b463c9ff484fd17c28", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_initcode_charge.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_initcode_charge.json index 198edd8a25..7b3145f500 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_initcode_charge.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_initcode_charge.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xd396fbd06fb289620c3f1bf6d232995f162144b5cd26fb796e7f34d5ebc7000f", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_mem_expansion.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_mem_expansion.json index aa5278da16..3c5f616701 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_mem_expansion.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_not_enough_gas_for_mem_expansion.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x7c92ac7634df86d89ecb296b3c7ab0cd5d42b752886224be0488193282910b3d", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_revert_empty_returndata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_revert_empty_returndata.json index 505164da1e..d1d0b08aa4 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_revert_empty_returndata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_revert_empty_returndata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xddb429d6594b6d840b85d2f00f1d0a239fc5ab3aaedbbd3da50aa79dc84b1013", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_revert_non_empty_returndata.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_revert_non_empty_returndata.json index 91e9ce0510..d9c387da43 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_revert_non_empty_returndata.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_revert_non_empty_returndata.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4f3948e53f2d9cdf052406e1330384093c67137efaf2dd17d3cae4e5f3c39b3b", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_with_auxdata_and_subcontainer.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_with_auxdata_and_subcontainer.json index fc8524d323..0ed6c799a6 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_with_auxdata_and_subcontainer.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/eofcreate_with_auxdata_and_subcontainer.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x3fddd43083347061e6cb527694be24bc93af943f0bed96f55f823a97d016de14", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/returncontract_not_enough_gas_for_mem_expansion.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/returncontract_not_enough_gas_for_mem_expansion.json index 207d7c54bc..bce0070d2f 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_create/returncontract_not_enough_gas_for_mem_expansion.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_create/returncontract_not_enough_gas_for_mem_expansion.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x4a50a1691decefa447c595c5a166335b750a8713ba8faa768446896cf4190c45", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_callf.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_callf.json index 3760a08393..d5b4b27ba4 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_callf.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_callf.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xcde9dbf9bd730e9903520039c962cd4b982ea6296ada587c6c5dbdd8345e3654", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_creation_tx.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_creation_tx.json index 44ddd60c4c..2c51b676cd 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_creation_tx.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_creation_tx.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x6300f24dba80dc2a35aa8c75b218027232c0cc14086e9155070292dc2cb08266", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_data.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_data.json index 898ee554cd..48321dc9b0 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_data.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_data.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x048910a353314221f1285f8623a0457d45198c79542a0f1167170cb84adfb7af", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_eofcreate.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_eofcreate.json index c68e034dce..a853d77a2d 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_eofcreate.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_eofcreate.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x2f756829a9ab1b7ccae5fef03242cc51faaea432a3ed8d9baa71341cc009605c", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_minimal.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_minimal.json index 74bbde3519..e412532ae6 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_minimal.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_minimal.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xb42542eeeb2441aa1ed6040e06cbe02e1667a0858568b098332192efda283665", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_static_relative_jump_loop.json b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_static_relative_jump_loop.json index ca02bd412d..369d506b0e 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_static_relative_jump_loop.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/eof_examples_static_relative_jump_loop.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x34258af4a70801caf82cf549d4f3fe77508289d392fcf9b16f3b3417cb8c774b", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodecopy_eof.json b/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodecopy_eof.json index 7b13a179ff..af6c0bcf71 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodecopy_eof.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodecopy_eof.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x251bb1e9f0d72999bec0480d8aeb56d58a864e674b5e834809e1d9565a3f1025", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodehash_eof.json b/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodehash_eof.json index 4d93466763..98e96da83d 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodehash_eof.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodehash_eof.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0x5d2f72a79a745142fd617bac24702bb9741d3ce3aa3748e32d843feb2527c036", "indexes": { diff --git a/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodesize_eof.json b/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodesize_eof.json index c04aaa7f74..81f5cfc70b 100644 --- a/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodesize_eof.json +++ b/tests/eof_suite/evmone/state_tests/state_transition/extcode/legacy_extcodesize_eof.json @@ -8,7 +8,7 @@ "currentTimestamp": "0x0" }, "post": { - "PragueEOF": [ + "Prague": [ { "hash": "0xc21a474a32061aeeafdc3e665a93021c6e42836ca66947d5e32ecec658b36abc", "indexes": { From 16adf432ed65f55113d0202b2a81fbe95e443b38 Mon Sep 17 00:00:00 2001 From: Delweng Date: Mon, 9 Sep 2024 18:08:12 +0800 Subject: [PATCH 11/17] chore: make clippy happy (#1755) * chore(revm): elided lifetime has a name Signed-off-by: jsvisa * clipy: map to inspect Signed-off-by: jsvisa * fix all clippy warnings Signed-off-by: jsvisa * typo Signed-off-by: jsvisa --------- Signed-off-by: jsvisa --- crates/interpreter/src/function_stack.rs | 7 +++---- .../interpreter/src/instructions/arithmetic.rs | 2 ++ crates/precompile/src/hash.rs | 18 ++++++++++++------ crates/revm/src/context/context_precompiles.rs | 2 +- crates/revm/src/db/states/account_status.rs | 13 +++++++++++++ crates/revm/src/evm.rs | 12 ++++-------- 6 files changed, 35 insertions(+), 19 deletions(-) diff --git a/crates/interpreter/src/function_stack.rs b/crates/interpreter/src/function_stack.rs index 4c33aa911c..400283ccdb 100644 --- a/crates/interpreter/src/function_stack.rs +++ b/crates/interpreter/src/function_stack.rs @@ -51,10 +51,9 @@ impl FunctionStack { /// Pops a frame from the stack and sets current_code_idx to the popped frame's idx. pub fn pop(&mut self) -> Option { - self.return_stack.pop().map(|frame| { - self.current_code_idx = frame.idx; - frame - }) + self.return_stack + .pop() + .inspect(|frame| self.current_code_idx = frame.idx) } /// Sets current_code_idx, this is needed for JUMPF opcode. diff --git a/crates/interpreter/src/instructions/arithmetic.rs b/crates/interpreter/src/instructions/arithmetic.rs index 9b34aa14f9..da11b79b9c 100644 --- a/crates/interpreter/src/instructions/arithmetic.rs +++ b/crates/interpreter/src/instructions/arithmetic.rs @@ -69,6 +69,8 @@ pub fn exp(interpreter: &mut Interpreter, _host: & *op2 = op1.pow(*op2); } +/// Implements the `SIGNEXTEND` opcode as defined in the Ethereum Yellow Paper. +/// /// In the yellow paper `SIGNEXTEND` is defined to take two inputs, we will call them /// `x` and `y`, and produce one output. The first `t` bits of the output (numbering from the /// left, starting from 0) are equal to the `t`-th bit of `y`, where `t` is equal to diff --git a/crates/precompile/src/hash.rs b/crates/precompile/src/hash.rs index 9457302b1a..1ea5e73dfc 100644 --- a/crates/precompile/src/hash.rs +++ b/crates/precompile/src/hash.rs @@ -11,9 +11,12 @@ pub const RIPEMD160: PrecompileWithAddress = PrecompileWithAddress( Precompile::Standard(ripemd160_run), ); -/// See: -/// See: -/// See: +/// Computes the SHA-256 hash of the input data. +/// +/// This function follows specifications defined in the following references: +/// - [Ethereum Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) +/// - [Solidity Documentation on Mathematical and Cryptographic Functions](https://docs.soliditylang.org/en/develop/units-and-global-variables.html#mathematical-and-cryptographic-functions) +/// - [Address 0x02](https://etherscan.io/address/0000000000000000000000000000000000000002) pub fn sha256_run(input: &Bytes, gas_limit: u64) -> PrecompileResult { let cost = calc_linear_cost_u32(input.len(), 60, 12); if cost > gas_limit { @@ -24,9 +27,12 @@ pub fn sha256_run(input: &Bytes, gas_limit: u64) -> PrecompileResult { } } -/// See: -/// See: -/// See: +/// Computes the RIPEMD-160 hash of the input data. +/// +/// This function follows specifications defined in the following references: +/// - [Ethereum Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) +/// - [Solidity Documentation on Mathematical and Cryptographic Functions](https://docs.soliditylang.org/en/develop/units-and-global-variables.html#mathematical-and-cryptographic-functions) +/// - [Address 03](https://etherscan.io/address/0000000000000000000000000000000000000003) pub fn ripemd160_run(input: &Bytes, gas_limit: u64) -> PrecompileResult { let gas_used = calc_linear_cost_u32(input.len(), 600, 120); if gas_used > gas_limit { diff --git a/crates/revm/src/context/context_precompiles.rs b/crates/revm/src/context/context_precompiles.rs index f674093535..f3fa881a14 100644 --- a/crates/revm/src/context/context_precompiles.rs +++ b/crates/revm/src/context/context_precompiles.rs @@ -95,7 +95,7 @@ impl ContextPrecompiles { /// Returns precompiles addresses. #[inline] - pub fn addresses<'a>(&'a self) -> Box + 'a> { + pub fn addresses<'a>(&'a self) -> Box + 'a> { match self.inner { PrecompilesCow::StaticRef(inner) => Box::new(inner.addresses()), PrecompilesCow::Owned(ref inner) => Box::new(inner.keys()), diff --git a/crates/revm/src/db/states/account_status.rs b/crates/revm/src/db/states/account_status.rs index 5902ed9819..6f0d8e7f78 100644 --- a/crates/revm/src/db/states/account_status.rs +++ b/crates/revm/src/db/states/account_status.rs @@ -1,6 +1,19 @@ +/// AccountStatus represents the various states an account can be in after being loaded from the database. +/// /// After account get loaded from database it can be in a lot of different states /// while we execute multiple transaction and even blocks over account that is in memory. /// This structure models all possible states that account can be in. +/// +/// # Variants +/// +/// - `LoadedNotExisting`: the account has been loaded but does not exist. +/// - `Loaded`: the account has been loaded and exists. +/// - `LoadedEmptyEIP161`: the account is loaded and empty, as per EIP-161. +/// - `InMemoryChange`: there are changes in the account that exist only in memory. +/// - `Changed`: the account has been modified. +/// - `Destroyed`: the account has been destroyed. +/// - `DestroyedChanged`: the account has been destroyed and then modified. +/// - `DestroyedAgain`: the account has been destroyed again. #[derive(Clone, Copy, Default, Debug, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub enum AccountStatus { diff --git a/crates/revm/src/evm.rs b/crates/revm/src/evm.rs index b42abcdcf1..ab34469ce4 100644 --- a/crates/revm/src/evm.rs +++ b/crates/revm/src/evm.rs @@ -199,10 +199,7 @@ impl Evm<'_, EXT, DB> { .handler .validation() .initial_tx_gas(&self.context.evm.env) - .map_err(|e| { - self.clear(); - e - })?; + .inspect_err(|_e| self.clear())?; let output = self.transact_preverified_inner(initial_gas_spend); let output = self.handler.post_execution().end(&mut self.context, output); self.clear(); @@ -228,10 +225,9 @@ impl Evm<'_, EXT, DB> { /// This function will validate the transaction. #[inline] pub fn transact(&mut self) -> EVMResult { - let initial_gas_spend = self.preverify_transaction_inner().map_err(|e| { - self.clear(); - e - })?; + let initial_gas_spend = self + .preverify_transaction_inner() + .inspect_err(|_e| self.clear())?; let output = self.transact_preverified_inner(initial_gas_spend); let output = self.handler.post_execution().end(&mut self.context, output); From e34bcba354281fb1a7d4cd7512b6a7f89807577f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:08:28 +0200 Subject: [PATCH 12/17] chore(deps): bump secp256k1 from 0.29.0 to 0.29.1 (#1758) Bumps [secp256k1](https://github.com/rust-bitcoin/rust-secp256k1) from 0.29.0 to 0.29.1. - [Changelog](https://github.com/rust-bitcoin/rust-secp256k1/blob/secp256k1-0.29.1/CHANGELOG.md) - [Commits](https://github.com/rust-bitcoin/rust-secp256k1/compare/secp256k1-0.29.0...secp256k1-0.29.1) --- updated-dependencies: - dependency-name: secp256k1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 94465d457b..d5c6611130 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3547,9 +3547,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.29.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0cc0f1cf93f4969faf3ea1c7d8a9faed25918d96affa959720823dfe86d4f3" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" dependencies = [ "rand", "secp256k1-sys", From 32376114a2251782419a2ba08092595c0e34a8db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:15:30 +0200 Subject: [PATCH 13/17] chore(deps): bump alloy-primitives from 0.8.0 to 0.8.2 (#1761) Bumps [alloy-primitives](https://github.com/alloy-rs/core) from 0.8.0 to 0.8.2. - [Release notes](https://github.com/alloy-rs/core/releases) - [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md) - [Commits](https://github.com/alloy-rs/core/compare/v0.8.0...v0.8.2) --- updated-dependencies: - dependency-name: alloy-primitives dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 37 ++++++++++++++++++++++++------------ crates/primitives/Cargo.toml | 2 +- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d5c6611130..ec2a71e7bb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -184,9 +184,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a767e59c86900dd7c3ce3ecef04f3ace5ac9631ee150beb8b7d22f7fa3bbb2d7" +checksum = "ccb865df835f851b367ae439d6c82b117ded971628c8888b24fed411a290e38a" dependencies = [ "alloy-rlp", "arbitrary", @@ -194,7 +194,7 @@ dependencies = [ "cfg-if", "const-hex", "derive_arbitrary", - "derive_more", + "derive_more 1.0.0", "getrandom", "hex-literal", "itoa", @@ -975,12 +975,6 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - [[package]] name = "core-foundation" version = "0.9.4" @@ -1162,13 +1156,32 @@ version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ - "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", "syn 2.0.70", ] +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.70", + "unicode-xid", +] + [[package]] name = "digest" version = "0.9.0" @@ -3489,7 +3502,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "cfg-if", - "derive_more", + "derive_more 0.99.18", "parity-scale-codec", "scale-info-derive", ] diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 3f0b494f37..1135cac208 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -23,7 +23,7 @@ all = "warn" [dependencies] alloy-eips = { version = "0.3", default-features = false, features = ["k256"] } -alloy-primitives = { version = "0.8.0", default-features = false, features = [ +alloy-primitives = { version = "0.8.2", default-features = false, features = [ "rlp", ] } hashbrown = "0.14" From 0d840bfdd9167a31c16bea754c2d2a255ed79a43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:15:43 +0200 Subject: [PATCH 14/17] chore(deps): bump anyhow from 1.0.86 to 1.0.87 (#1760) Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.86 to 1.0.87. - [Release notes](https://github.com/dtolnay/anyhow/releases) - [Commits](https://github.com/dtolnay/anyhow/compare/1.0.86...1.0.87) --- updated-dependencies: - dependency-name: anyhow dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- crates/revm/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ec2a71e7bb..66a0d447df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -457,9 +457,9 @@ checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "10f00e1f6e58a40e807377c75c6a7f97bf9044fab57816f2414e6f5f4499d7b8" [[package]] name = "arbitrary" diff --git a/crates/revm/Cargo.toml b/crates/revm/Cargo.toml index 9479989aeb..56d1d6644e 100644 --- a/crates/revm/Cargo.toml +++ b/crates/revm/Cargo.toml @@ -58,7 +58,7 @@ alloy-sol-types = { version = "0.8.0", default-features = false, features = [ "std", ] } ethers-contract = { version = "2.0.14", default-features = false } -anyhow = "1.0.83" +anyhow = "1.0.87" criterion = "0.5" indicatif = "0.17" reqwest = { version = "0.12" } From dcb92c6e2aa487bf45ce32f94c30a46a1ad90815 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:15:51 +0200 Subject: [PATCH 15/17] chore(deps): bump alloy-sol-types from 0.8.0 to 0.8.2 (#1762) Bumps [alloy-sol-types](https://github.com/alloy-rs/core) from 0.8.0 to 0.8.2. - [Release notes](https://github.com/alloy-rs/core/releases) - [Changelog](https://github.com/alloy-rs/core/blob/main/CHANGELOG.md) - [Commits](https://github.com/alloy-rs/core/compare/v0.8.0...v0.8.2) --- updated-dependencies: - dependency-name: alloy-sol-types dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 54 +++++++++++++++++++++++++++------------ bins/revm-test/Cargo.toml | 2 +- crates/revm/Cargo.toml | 2 +- 3 files changed, 40 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 66a0d447df..dfd4fe374d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -126,9 +126,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "299d2a937b6c60968df3dad2a988b0f0e03277b344639a4f7a31bd68e6285e59" +checksum = "a28ecae8b5315daecd0075084eb47f4374b3037777346ca52fc8d9c327693f02" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -332,13 +332,13 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183bcfc0f3291d9c41a3774172ee582fb2ce6eb6569085471d8f225de7bb86fc" +checksum = "e2dc5201ca0018afb7a3e0cd8bd15f7ca6aca924333b5f3bb87463b41d0c4ef2" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.70", @@ -346,15 +346,15 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c4d842beb7a6686d04125603bc57614d5ed78bf95e4753274db3db4ba95214" +checksum = "155f63dc6945885aa4532601800201fddfaa3b20901fda8e8c2570327242fe0e" dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", "indexmap", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.70", @@ -364,9 +364,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1306e8d3c9e6e6ecf7a39ffaf7291e73a5f655a2defd366ee92c2efebcdf7fee" +checksum = "847700aa9cb59d3c7b290b2d05976cd8d76b64d73bb63116a9533132d995586b" dependencies = [ "const-hex", "dunce", @@ -379,9 +379,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4691da83dce9c9b4c775dd701c87759f173bd3021cbf2e60cde00c5fe6d7241" +checksum = "3a6b5d462d4520bd9ed70d8364c6280aeff13baa46ea26be1ddd33538dbbe6ac" dependencies = [ "serde", "winnow 0.6.18", @@ -389,9 +389,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "577e262966e92112edbd15b1b2c0947cc434d6e8311df96d3329793fe8047da9" +checksum = "83665e5607725a7a1aab3cb0dea708f4a05e70776954ec7f0a9461439175c957" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -2849,6 +2849,28 @@ dependencies = [ "version_check", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.70", +] + [[package]] name = "proc-macro2" version = "1.0.86" @@ -3938,9 +3960,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284c41c2919303438fcf8dede4036fd1e82d4fc0fbb2b279bd2a1442c909ca92" +checksum = "f1e1355d44af21638c8e05d45097db6cb5ec2aa3e970c51cb2901605cf3344fa" dependencies = [ "paste", "proc-macro2", diff --git a/bins/revm-test/Cargo.toml b/bins/revm-test/Cargo.toml index 1603661040..6688fe905c 100644 --- a/bins/revm-test/Cargo.toml +++ b/bins/revm-test/Cargo.toml @@ -10,7 +10,7 @@ hex = "0.4" revm = { path = "../../crates/revm", version = "14.0.1", default-features=false } microbench = "0.5" alloy-sol-macro = "0.8.0" -alloy-sol-types = "0.8.0" +alloy-sol-types = "0.8.2" regex = "1.10.6" eyre = "0.6.12" diff --git a/crates/revm/Cargo.toml b/crates/revm/Cargo.toml index 56d1d6644e..559677f1dd 100644 --- a/crates/revm/Cargo.toml +++ b/crates/revm/Cargo.toml @@ -54,7 +54,7 @@ alloy-eips = { version = "0.3", optional = true, default-features = false } alloy-transport = { version = "0.3", optional = true, default-features = false } [dev-dependencies] -alloy-sol-types = { version = "0.8.0", default-features = false, features = [ +alloy-sol-types = { version = "0.8.2", default-features = false, features = [ "std", ] } ethers-contract = { version = "2.0.14", default-features = false } From f68d3dca9fc8938897e2d3267a32e72e01ed9763 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:16:03 +0200 Subject: [PATCH 16/17] chore(deps): bump alloy-provider from 0.3.0 to 0.3.1 (#1759) Bumps [alloy-provider](https://github.com/alloy-rs/alloy) from 0.3.0 to 0.3.1. - [Release notes](https://github.com/alloy-rs/alloy/releases) - [Changelog](https://github.com/alloy-rs/alloy/blob/main/CHANGELOG.md) - [Commits](https://github.com/alloy-rs/alloy/compare/v0.3.0...v0.3.1) --- updated-dependencies: - dependency-name: alloy-provider dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dfd4fe374d..bb66af3315 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2d2a195caa6707f5ce13905794865765afc6d9ea92c3a56e3a973c168d703bc" +checksum = "1376948df782ffee83a54cac4b2aba14134edd997229a3db97da0a606586eb5c" dependencies = [ "alloy-chains", "alloy-consensus", From 077c2c35c9190be1586ce1c3230ea24391c53c0e Mon Sep 17 00:00:00 2001 From: Wodann Date: Mon, 9 Sep 2024 05:27:30 -0500 Subject: [PATCH 17/17] feat: introducing EvmWiring, a chain-specific configuration (#1672) * refactor: allow chain-specific configuration of Evm * refactor: rename Transaction::transact_to and clarify docs * refactor: remove trait bounds on Transaction super trait * refactor: remove trait bounds from Block supertrait * fix: clippy warnings * fix: cargo doc * refactor: limit trait bounds on HaltReason * refactor: allow moving of kind * refactor: rename Transaction::nonce to nonce_opt to signal that it's optional * refactor: replace AccessList with alloy version * refactor: rename gas_priority_fee to max_priority_fee_per_gas * refactor: correct trait bound on ExecutionResult::clone * Clone * refactor: only allow optional nonce check via CfgEnv * fix: revme * refactor: derive DummyHost * refactor: derive Clone for ExecutionResult * refactor: remove EVMErrorForChain * refactor: derive Clone for CfgEnvWithChainSpec * refactor: use EVMResultGeneric * refactor: add convenience EVMErrorForChain type alias * feat: export OptimismBlock * refactor: add handler constructor and Context to revm::ChainSpec * refactor: generalise optimism implementation using traits * fix: no-default-features * fix: CI * chore: Add default fn to Tx/Block traits * Chore: rename ChainSpec to EvmWiring * chore: clippy comments fix * chore: rename EthEvmWiring to EthereumWiring * chore: re add serde, restring HaltReasonTrait * chore: move custom opcode to examples * chore: remove op feature from test wiring * nit use Self::EvmWiringT * nit indents * feat(Wiring): Add Database and EXT to EvmWiring * some fixes * temp * feat: make builder compile. EnvWiring and Result Halt * chore: cleanup rename * nit * fix: make string conversion complete * fix compile * compiles * wip builder * wip * fix compile * wip * fix optimism test * fix docs ci * cleanup * cleanup * use core::error::Error * cleanup * use core error * fix builer * fix docs * final doc fix * rm alloy provider --------- Co-authored-by: rakita --- .github/workflows/ci.yml | 6 +- Cargo.lock | 29 +- Cargo.toml | 1 + bins/revm-test/src/bin/analysis.rs | 6 +- bins/revm-test/src/bin/burntpix/main.rs | 8 +- bins/revm-test/src/bin/snailtracer.rs | 4 +- bins/revm-test/src/bin/transfer.rs | 5 +- bins/revme/src/cmd/evmrunner.rs | 26 +- bins/revme/src/cmd/statetest/runner.rs | 51 +- crates/interpreter/Cargo.toml | 11 +- crates/interpreter/src/host.rs | 16 +- crates/interpreter/src/host/dummy.rs | 38 +- crates/interpreter/src/instruction_result.rs | 86 +- .../interpreter/src/instructions/bitwise.rs | 10 +- .../interpreter/src/instructions/control.rs | 20 +- crates/interpreter/src/instructions/data.rs | 6 +- .../interpreter/src/instructions/host_env.rs | 28 +- crates/interpreter/src/instructions/stack.rs | 9 +- crates/interpreter/src/instructions/system.rs | 6 +- crates/interpreter/src/interpreter.rs | 19 +- .../interpreter/src/interpreter/analysis.rs | 6 +- .../interpreter/src/interpreter/contract.rs | 22 +- .../src/interpreter_action/call_inputs.rs | 16 +- .../src/interpreter_action/create_inputs.rs | 16 +- .../interpreter_action/eof_create_inputs.rs | 12 +- crates/interpreter/src/opcode.rs | 6 +- crates/optimism/CHANGELOG.md | 0 crates/optimism/Cargo.toml | 82 ++ crates/optimism/LICENSE | 21 + .../src/optimism => optimism/src}/bn128.rs | 9 +- crates/optimism/src/env.rs | 115 +++ .../src/optimism => optimism/src}/fast_lz.rs | 15 +- .../src}/handler_register.rs | 352 +++---- .../src/optimism => optimism/src}/l1block.rs | 77 +- crates/optimism/src/lib.rs | 83 ++ crates/optimism/src/result.rs | 86 ++ crates/optimism/src/spec.rs | 852 ++++++++++++++++ crates/precompile/Cargo.toml | 10 - crates/precompile/benches/bench.rs | 4 +- crates/precompile/src/fatal_precompile.rs | 4 +- crates/precompile/src/kzg_point_evaluation.rs | 8 +- crates/precompile/src/lib.rs | 4 - crates/primitives/Cargo.toml | 5 - crates/primitives/src/block.rs | 64 ++ crates/primitives/src/bytecode.rs | 3 +- crates/primitives/src/bytecode/eof.rs | 3 +- crates/primitives/src/db.rs | 3 + crates/{revm => primitives}/src/db/emptydb.rs | 6 +- crates/primitives/src/eip7702/bytecode.rs | 3 +- crates/primitives/src/env.rs | 304 +++--- crates/primitives/src/env/handler_cfg.rs | 159 --- crates/primitives/src/evm_wiring.rs | 62 ++ crates/primitives/src/lib.rs | 10 +- crates/primitives/src/precompile.rs | 30 +- crates/primitives/src/result.rs | 133 +-- crates/primitives/src/specification.rs | 440 ++------- crates/primitives/src/transaction.rs | 64 ++ crates/revm/Cargo.toml | 14 +- crates/revm/benches/bench.rs | 28 +- crates/revm/src/builder.rs | 910 +++++++++--------- crates/revm/src/context.rs | 82 +- .../revm/src/context/context_precompiles.rs | 106 +- crates/revm/src/context/evm_context.rs | 171 ++-- crates/revm/src/context/inner_evm_context.rs | 96 +- crates/revm/src/db.rs | 3 +- crates/revm/src/db/in_memory_db.rs | 7 +- crates/revm/src/evm.rs | 179 ++-- crates/revm/src/evm_wiring.rs | 33 + crates/revm/src/handler.rs | 173 ++-- .../src/handler/handle_types/execution.rs | 166 ++-- .../revm/src/handler/handle_types/generic.rs | 11 +- .../handler/handle_types/post_execution.rs | 86 +- .../src/handler/handle_types/pre_execution.rs | 51 +- .../src/handler/handle_types/validation.rs | 45 +- crates/revm/src/handler/mainnet/execution.rs | 104 +- .../src/handler/mainnet/post_execution.rs | 54 +- .../revm/src/handler/mainnet/pre_execution.rs | 60 +- crates/revm/src/handler/mainnet/validation.rs | 56 +- crates/revm/src/handler/register.rs | 19 +- crates/revm/src/inspector.rs | 30 +- crates/revm/src/inspector/customprinter.rs | 30 +- crates/revm/src/inspector/eip3155.rs | 29 +- crates/revm/src/inspector/gas.rs | 61 +- crates/revm/src/inspector/handler_register.rs | 63 +- crates/revm/src/inspector/noop.rs | 5 +- crates/revm/src/journaled_state.rs | 44 +- crates/revm/src/lib.rs | 12 +- crates/revm/src/optimism.rs | 13 - examples/custom_opcodes.rs | 271 ++++++ examples/db_by_ref.rs | 23 +- examples/fork_ref_transact.rs | 3 +- examples/generate_block_traces.rs | 6 +- 92 files changed, 3965 insertions(+), 2553 deletions(-) create mode 100644 crates/optimism/CHANGELOG.md create mode 100644 crates/optimism/Cargo.toml create mode 100644 crates/optimism/LICENSE rename crates/{revm/src/optimism => optimism/src}/bn128.rs (94%) create mode 100644 crates/optimism/src/env.rs rename crates/{revm/src/optimism => optimism/src}/fast_lz.rs (98%) rename crates/{revm/src/optimism => optimism/src}/handler_register.rs (63%) rename crates/{revm/src/optimism => optimism/src}/l1block.rs (91%) create mode 100644 crates/optimism/src/lib.rs create mode 100644 crates/optimism/src/result.rs create mode 100644 crates/optimism/src/spec.rs create mode 100644 crates/primitives/src/block.rs rename crates/{revm => primitives}/src/db/emptydb.rs (97%) delete mode 100644 crates/primitives/src/env/handler_cfg.rs create mode 100644 crates/primitives/src/evm_wiring.rs create mode 100644 crates/primitives/src/transaction.rs create mode 100644 crates/revm/src/evm_wiring.rs delete mode 100644 crates/revm/src/optimism.rs create mode 100644 examples/custom_opcodes.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c3cb25136a..be78248b81 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,13 +38,15 @@ jobs: strategy: fail-fast: false matrix: - features: ["", "optimism,kzg-rs"] + features: ["", "kzg-rs"] steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: targets: riscv32imac-unknown-none-elf - - run: cargo check --target riscv32imac-unknown-none-elf --no-default-features --features=${{ matrix.features }} + - run: | + cargo check --target riscv32imac-unknown-none-elf --no-default-features --features=${{ matrix.features }} + cargo check --target riscv32imac-unknown-none-elf -p revm-optimism --no-default-features --features=${{ matrix.features }} check: name: check ${{ matrix.features }} diff --git a/Cargo.lock b/Cargo.lock index bb66af3315..0d750b7378 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1139,6 +1139,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-where" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.70", +] + [[package]] name = "derive_arbitrary" version = "1.3.2" @@ -3129,8 +3140,8 @@ dependencies = [ "alloy-transport", "anyhow", "auto_impl", - "cfg-if", "criterion", + "derive-where", "dyn-clone", "ethers-contract", "ethers-core", @@ -3150,6 +3161,7 @@ name = "revm-interpreter" version = "10.0.1" dependencies = [ "bincode", + "derive-where", "paste", "phf", "revm-primitives", @@ -3158,6 +3170,21 @@ dependencies = [ "walkdir", ] +[[package]] +name = "revm-optimism" +version = "1.0.0" +dependencies = [ + "alloy-sol-types", + "anyhow", + "criterion", + "enumn", + "indicatif", + "revm", + "revm-precompile", + "rstest", + "serde", +] + [[package]] name = "revm-precompile" version = "11.0.1" diff --git a/Cargo.toml b/Cargo.toml index 426d6e403f..12d19a5568 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "crates/primitives", "crates/interpreter", "crates/precompile", + "crates/optimism", ] resolver = "2" default-members = ["crates/revm"] diff --git a/bins/revm-test/src/bin/analysis.rs b/bins/revm-test/src/bin/analysis.rs index a6fa92f46d..c71e50c863 100644 --- a/bins/revm-test/src/bin/analysis.rs +++ b/bins/revm-test/src/bin/analysis.rs @@ -1,5 +1,5 @@ use revm::{ - db::BenchmarkDB, + db::{BenchmarkDB, EthereumBenchmarkWiring}, interpreter::analysis::to_analysed, primitives::{address, bytes, Bytecode, Bytes, TxKind}, Evm, @@ -13,7 +13,7 @@ fn main() { let bytecode_analysed = to_analysed(Bytecode::new_raw(contract_data)); // BenchmarkDB is dummy state that implements Database trait. - let mut evm = Evm::builder() + let mut evm = Evm::::builder() .modify_tx_env(|tx| { // execution globals block hash/gas_limit/coinbase/timestamp.. tx.caller = address!("1000000000000000000000000000000000000000"); @@ -37,7 +37,7 @@ fn main() { let mut evm = evm .modify() - .reset_handler_with_db(BenchmarkDB::new_bytecode(bytecode_analysed)) + .with_db(BenchmarkDB::new_bytecode(bytecode_analysed)) .build(); let timer = Instant::now(); diff --git a/bins/revm-test/src/bin/burntpix/main.rs b/bins/revm-test/src/bin/burntpix/main.rs index ef0b78ea2a..581f611204 100644 --- a/bins/revm-test/src/bin/burntpix/main.rs +++ b/bins/revm-test/src/bin/burntpix/main.rs @@ -4,8 +4,8 @@ use regex::bytes::Regex; use revm::{ db::{CacheDB, EmptyDB}, primitives::{ - address, hex, keccak256, AccountInfo, Address, Bytecode, Bytes, ExecutionResult, Output, - TxKind, B256, U256, + address, hex, keccak256, AccountInfo, Address, Bytecode, Bytes, EthereumWiring, + ExecutionResult, Output, TxKind, B256, U256, }, Evm, }; @@ -28,6 +28,8 @@ sol! { } } +type EthereumCacheDbWiring = EthereumWiring, ()>; + fn main() { let (seed, iterations) = try_init_env_vars().expect("Failed to parse env vars"); @@ -35,7 +37,7 @@ fn main() { let db = init_db(); - let mut evm = Evm::builder() + let mut evm = Evm::::builder() .modify_tx_env(|tx| { tx.caller = address!("1000000000000000000000000000000000000000"); tx.transact_to = TxKind::Call(BURNTPIX_MAIN_ADDRESS); diff --git a/bins/revm-test/src/bin/snailtracer.rs b/bins/revm-test/src/bin/snailtracer.rs index cebe950a7f..3a874a44e0 100644 --- a/bins/revm-test/src/bin/snailtracer.rs +++ b/bins/revm-test/src/bin/snailtracer.rs @@ -1,5 +1,5 @@ use revm::{ - db::BenchmarkDB, + db::{BenchmarkDB, EthereumBenchmarkWiring}, interpreter::analysis::to_analysed, primitives::{address, bytes, Bytecode, Bytes, TxKind}, Evm, @@ -9,7 +9,7 @@ pub fn simple_example() { let bytecode = to_analysed(Bytecode::new_raw(CONTRACT_DATA.clone())); // BenchmarkDB is dummy state that implements Database trait. - let mut evm = Evm::builder() + let mut evm = Evm::::builder() .with_db(BenchmarkDB::new_bytecode(bytecode.clone())) .modify_tx_env(|tx| { // execution globals block hash/gas_limit/coinbase/timestamp.. diff --git a/bins/revm-test/src/bin/transfer.rs b/bins/revm-test/src/bin/transfer.rs index 4fa1f29b09..b0845fa34f 100644 --- a/bins/revm-test/src/bin/transfer.rs +++ b/bins/revm-test/src/bin/transfer.rs @@ -1,14 +1,13 @@ use revm::{ - db::BenchmarkDB, + db::{BenchmarkDB, EthereumBenchmarkWiring}, primitives::{Bytecode, TxKind, U256}, Evm, }; - use std::time::Duration; fn main() { // BenchmarkDB is dummy state that implements Database trait. - let mut evm = Evm::builder() + let mut evm = Evm::::builder() .with_db(BenchmarkDB::new_bytecode(Bytecode::new())) .modify_tx_env(|tx| { // execution globals block hash/gas_limit/coinbase/timestamp.. diff --git a/bins/revme/src/cmd/evmrunner.rs b/bins/revme/src/cmd/evmrunner.rs index 6d1b664264..3065280213 100644 --- a/bins/revme/src/cmd/evmrunner.rs +++ b/bins/revme/src/cmd/evmrunner.rs @@ -2,8 +2,8 @@ use revm::{ db::BenchmarkDB, inspector_handle_register, inspectors::TracerEip3155, - primitives::{Address, Bytecode, BytecodeDecodeError, TxKind}, - Evm, + primitives::{address, Address, Bytecode, BytecodeDecodeError, EthereumWiring, TxKind}, + Database, Evm, }; use std::io::Error as IoError; use std::path::PathBuf; @@ -57,6 +57,8 @@ pub struct Cmd { impl Cmd { /// Run evm runner command. pub fn run(&self) -> Result<(), Errors> { + const CALLER: Address = address!("0000000000000000000000000000000000000001"); + let bytecode_str: Cow<'_, str> = if let Some(path) = &self.path { // check if path exists. if !path.exists() { @@ -71,19 +73,21 @@ impl Cmd { let input = hex::decode(self.input.trim()) .map_err(|_| Errors::InvalidInput)? .into(); + + let mut db = BenchmarkDB::new_bytecode(Bytecode::new_raw_checked(bytecode.into())?); + + let nonce = db.basic(CALLER).unwrap().map_or(0, |account| account.nonce); + // BenchmarkDB is dummy state that implements Database trait. // the bytecode is deployed at zero address. - let mut evm = Evm::builder() - .with_db(BenchmarkDB::new_bytecode(Bytecode::new_raw_checked( - bytecode.into(), - )?)) + let mut evm = Evm::>::builder() + .with_db(db) .modify_tx_env(|tx| { // execution globals block hash/gas_limit/coinbase/timestamp.. - tx.caller = "0x0000000000000000000000000000000000000001" - .parse() - .unwrap(); + tx.caller = CALLER; tx.transact_to = TxKind::Call(Address::ZERO); tx.data = input; + tx.nonce = nonce; }) .build(); @@ -101,9 +105,7 @@ impl Cmd { let out = if self.trace { let mut evm = evm .modify() - .reset_handler_with_external_context(TracerEip3155::new( - Box::new(std::io::stdout()), - )) + .with_external_context(TracerEip3155::new(Box::new(std::io::stdout()))) .append_handler_register(inspector_handle_register) .build(); diff --git a/bins/revme/src/cmd/statetest/runner.rs b/bins/revme/src/cmd/statetest/runner.rs index de9aaec269..b3e01f3392 100644 --- a/bins/revme/src/cmd/statetest/runner.rs +++ b/bins/revme/src/cmd/statetest/runner.rs @@ -5,19 +5,19 @@ use super::{ }; use indicatif::{ProgressBar, ProgressDrawTarget}; use revm::{ - db::EmptyDB, + db::{EmptyDB, State}, inspector_handle_register, inspectors::TracerEip3155, interpreter::analysis::to_analysed, primitives::{ - calc_excess_blob_gas, keccak256, Bytecode, Bytes, EVMResultGeneric, Env, ExecutionResult, - SpecId, TxKind, B256, + calc_excess_blob_gas, keccak256, Bytecode, Bytes, EVMResultGeneric, EnvWiring, + EthereumWiring, ExecutionResult, HaltReason, SpecId, TxKind, B256, }, - Evm, State, + Evm, }; use serde_json::json; use std::{ - convert::Infallible, + fmt::Debug, io::{stderr, stdout}, path::{Path, PathBuf}, sync::{ @@ -29,6 +29,9 @@ use std::{ use thiserror::Error; use walkdir::{DirEntry, WalkDir}; +type ExecEvmWiring<'a> = EthereumWiring<&'a mut State, ()>; +type TraceEvmWiring<'a> = EthereumWiring<&'a mut State, TracerEip3155>; + #[derive(Debug, Error)] #[error("Test {name} failed: {kind}")] pub struct TestError { @@ -135,12 +138,15 @@ fn skip_test(path: &Path) -> bool { ) } -fn check_evm_execution( +fn check_evm_execution( test: &Test, expected_output: Option<&Bytes>, test_name: &str, - exec_result: &EVMResultGeneric, - evm: &Evm<'_, EXT, &mut State>, + exec_result: &EVMResultGeneric< + ExecutionResult, + EthereumWiring<&mut State, EXT>, + >, + evm: &Evm<'_, EthereumWiring<&mut State, EXT>>, print_json_outcome: bool, ) -> Result<(), TestError> { let logs_root = log_rlp_hash(exec_result.as_ref().map(|r| r.logs()).unwrap_or_default()); @@ -164,7 +170,7 @@ fn check_evm_execution( Err(e) => e.to_string(), }, "postLogsHash": logs_root, - "fork": evm.handler.cfg().spec_id, + "fork": evm.handler.spec_id(), "test": test_name, "d": test.indexes.data, "g": test.indexes.gas, @@ -277,7 +283,7 @@ pub fn execute_test_suite( cache_state.insert_account_with_storage(address, acc_info, info.storage); } - let mut env = Box::::default(); + let mut env = Box::>::default(); // for mainnet env.cfg.chain_id = 1; // env.cfg.spec_id is set down the road @@ -355,6 +361,8 @@ pub fn execute_test_suite( .get(test.indexes.data) .unwrap() .clone(); + + env.tx.nonce = u64::try_from(unit.transaction.nonce).unwrap(); env.tx.value = unit.transaction.value[test.indexes.value]; env.tx.access_list = unit @@ -376,16 +384,14 @@ pub fn execute_test_suite( env.tx.transact_to = to; let mut cache = cache_state.clone(); - cache.set_state_clear_flag(SpecId::enabled( - spec_id, - revm::primitives::SpecId::SPURIOUS_DRAGON, - )); + cache.set_state_clear_flag(SpecId::enabled(spec_id, SpecId::SPURIOUS_DRAGON)); let mut state = revm::db::State::builder() .with_cached_prestate(cache) .with_bundle_update() .build(); - let mut evm = Evm::builder() + let mut evm = Evm::::builder() .with_db(&mut state) + .with_default_ext_ctx() .modify_env(|e| e.clone_from(&env)) .with_spec_id(spec_id) .build(); @@ -394,7 +400,8 @@ pub fn execute_test_suite( let (e, exec_result) = if trace { let mut evm = evm .modify() - .reset_handler_with_external_context( + .reset_handler_with_external_context::>() + .with_external_context( TracerEip3155::new(Box::new(stderr())).without_summary(), ) .append_handler_register(inspector_handle_register) @@ -445,21 +452,19 @@ pub fn execute_test_suite( // re build to run with tracing let mut cache = cache_state.clone(); - cache.set_state_clear_flag(SpecId::enabled( - spec_id, - revm::primitives::SpecId::SPURIOUS_DRAGON, - )); - let state = revm::db::State::builder() + cache.set_state_clear_flag(SpecId::enabled(spec_id, SpecId::SPURIOUS_DRAGON)); + let mut state = revm::db::State::builder() .with_cached_prestate(cache) .with_bundle_update() .build(); let path = path.display(); println!("\nTraces:"); - let mut evm = Evm::builder() + let mut evm = Evm::::builder() + .with_db(&mut state) .with_spec_id(spec_id) - .with_db(state) .with_env(env.clone()) + .reset_handler_with_external_context::>() .with_external_context(TracerEip3155::new(Box::new(stdout())).without_summary()) .append_handler_register(inspector_handle_register) .build(); diff --git a/crates/interpreter/Cargo.toml b/crates/interpreter/Cargo.toml index 7495dc5f4f..114c89c415 100644 --- a/crates/interpreter/Cargo.toml +++ b/crates/interpreter/Cargo.toml @@ -24,6 +24,7 @@ all = "warn" [dependencies] revm-primitives = { path = "../primitives", version = "9.0.1", default-features = false } +derive-where = { version = "1.2.7", default-features = false } paste = { version = "1.0", optional = true } phf = { version = "0.11", default-features = false, optional = true, features = [ "macros", @@ -50,16 +51,6 @@ asm-keccak = ["revm-primitives/asm-keccak"] portable = ["revm-primitives/portable"] parse = ["dep:paste", "dep:phf"] -optimism = ["revm-primitives/optimism"] -# Optimism default handler enabled Optimism handler register by default in EvmBuilder. -optimism-default-handler = [ - "optimism", - "revm-primitives/optimism-default-handler", -] -negate-optimism-default-handler = [ - "revm-primitives/negate-optimism-default-handler", -] - dev = [ "memory_limit", "optional_balance_check", diff --git a/crates/interpreter/src/host.rs b/crates/interpreter/src/host.rs index 231b1a315c..377985b0d8 100644 --- a/crates/interpreter/src/host.rs +++ b/crates/interpreter/src/host.rs @@ -1,16 +1,20 @@ -use crate::primitives::{Address, Bytes, Env, Log, B256, U256}; +use crate::primitives::{Address, Bytes, Log, B256, U256}; use core::ops::{Deref, DerefMut}; mod dummy; pub use dummy::DummyHost; +use revm_primitives::{EnvWiring, EvmWiring}; /// EVM context host. pub trait Host { + /// Chain specification. + type EvmWiringT: EvmWiring; + /// Returns a reference to the environment. - fn env(&self) -> &Env; + fn env(&self) -> &EnvWiring; /// Returns a mutable reference to the environment. - fn env_mut(&mut self) -> &mut Env; + fn env_mut(&mut self) -> &mut EnvWiring; /// Load an account code. fn load_account_delegated(&mut self, address: Address) -> Option; @@ -255,13 +259,15 @@ pub struct SelfDestructResult { #[cfg(test)] mod tests { + use revm_primitives::{db::EmptyDB, EthereumWiring}; + use super::*; fn assert_host() {} #[test] fn object_safety() { - assert_host::(); - assert_host::(); + assert_host::>>(); + assert_host::>>(); } } diff --git a/crates/interpreter/src/host/dummy.rs b/crates/interpreter/src/host/dummy.rs index 602fb512da..88f0bf4063 100644 --- a/crates/interpreter/src/host/dummy.rs +++ b/crates/interpreter/src/host/dummy.rs @@ -1,5 +1,10 @@ +use derive_where::derive_where; +use revm_primitives::EnvWiring; + use crate::{ - primitives::{hash_map::Entry, Address, Bytes, Env, HashMap, Log, B256, KECCAK_EMPTY, U256}, + primitives::{ + hash_map::Entry, Address, Bytes, Env, EvmWiring, HashMap, Log, B256, KECCAK_EMPTY, U256, + }, Host, SStoreResult, SelfDestructResult, }; use std::vec::Vec; @@ -7,21 +12,29 @@ use std::vec::Vec; use super::{AccountLoad, Eip7702CodeLoad, StateLoad}; /// A dummy [Host] implementation. -#[derive(Clone, Debug, Default, PartialEq, Eq)] -pub struct DummyHost { - pub env: Env, +#[derive_where(Clone, Debug, Default; EvmWiringT::Block, EvmWiringT::Transaction)] +pub struct DummyHost +where + EvmWiringT: EvmWiring, +{ + pub env: Env, pub storage: HashMap, pub transient_storage: HashMap, pub log: Vec, } -impl DummyHost { +impl DummyHost +where + EvmWiringT: EvmWiring, +{ /// Create a new dummy host with the given [`Env`]. #[inline] - pub fn new(env: Env) -> Self { + pub fn new(env: EnvWiring) -> Self { Self { env, - ..Default::default() + storage: HashMap::new(), + transient_storage: HashMap::new(), + log: Vec::new(), } } @@ -33,14 +46,19 @@ impl DummyHost { } } -impl Host for DummyHost { +impl Host for DummyHost +where + EvmWiringT: EvmWiring, +{ + type EvmWiringT = EvmWiringT; + #[inline] - fn env(&self) -> &Env { + fn env(&self) -> &EnvWiring { &self.env } #[inline] - fn env_mut(&mut self) -> &mut Env { + fn env_mut(&mut self) -> &mut EnvWiring { &mut self.env } diff --git a/crates/interpreter/src/instruction_result.rs b/crates/interpreter/src/instruction_result.rs index 8ca673ad52..46f82a335e 100644 --- a/crates/interpreter/src/instruction_result.rs +++ b/crates/interpreter/src/instruction_result.rs @@ -1,3 +1,8 @@ +use core::fmt::Debug; + +use derive_where::derive_where; +use revm_primitives::EvmWiring; + use crate::primitives::{HaltReason, OutOfGasError, SuccessReason}; #[repr(u8)] @@ -137,8 +142,6 @@ impl From for InstructionResult { HaltReason::EofAuxDataTooSmall => Self::EofAuxDataTooSmall, HaltReason::EOFFunctionStackOverflow => Self::EOFFunctionStackOverflow, HaltReason::InvalidEXTCALLTarget => Self::InvalidEXTCALLTarget, - #[cfg(feature = "optimism")] - HaltReason::FailedDeposit => Self::FatalExternalError, } } } @@ -233,16 +236,17 @@ pub enum InternalResult { InvalidExtDelegateCallTarget, } -#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] -pub enum SuccessOrHalt { +#[derive(Copy, Clone, PartialEq, Eq, Hash)] +#[derive_where(Debug; EvmWiringT::HaltReason)] +pub enum SuccessOrHalt { Success(SuccessReason), Revert, - Halt(HaltReason), + Halt(EvmWiringT::HaltReason), FatalExternalError, Internal(InternalResult), } -impl SuccessOrHalt { +impl SuccessOrHalt { /// Returns true if the transaction returned successfully without halts. #[inline] pub fn is_success(self) -> bool { @@ -272,7 +276,7 @@ impl SuccessOrHalt { /// Returns the [HaltReason] value the EVM has experienced an exceptional halt #[inline] - pub fn to_halt(self) -> Option { + pub fn to_halt(self) -> Option { match self { SuccessOrHalt::Halt(reason) => Some(reason), _ => None, @@ -280,7 +284,7 @@ impl SuccessOrHalt { } } -impl From for SuccessOrHalt { +impl From for SuccessOrHalt { fn from(result: InstructionResult) -> Self { match result { InstructionResult::Continue => Self::Internal(InternalResult::InternalContinue), // used only in interpreter loop @@ -290,56 +294,68 @@ impl From for SuccessOrHalt { InstructionResult::Revert => Self::Revert, InstructionResult::CreateInitCodeStartingEF00 => Self::Revert, InstructionResult::CallOrCreate => Self::Internal(InternalResult::InternalCallOrCreate), // used only in interpreter loop - InstructionResult::CallTooDeep => Self::Halt(HaltReason::CallTooDeep), // not gonna happen for first call - InstructionResult::OutOfFunds => Self::Halt(HaltReason::OutOfFunds), // Check for first call is done separately. - InstructionResult::OutOfGas => Self::Halt(HaltReason::OutOfGas(OutOfGasError::Basic)), + InstructionResult::CallTooDeep => Self::Halt(HaltReason::CallTooDeep.into()), // not gonna happen for first call + InstructionResult::OutOfFunds => Self::Halt(HaltReason::OutOfFunds.into()), // Check for first call is done separately. + InstructionResult::OutOfGas => { + Self::Halt(HaltReason::OutOfGas(OutOfGasError::Basic).into()) + } InstructionResult::MemoryLimitOOG => { - Self::Halt(HaltReason::OutOfGas(OutOfGasError::MemoryLimit)) + Self::Halt(HaltReason::OutOfGas(OutOfGasError::MemoryLimit).into()) + } + InstructionResult::MemoryOOG => { + Self::Halt(HaltReason::OutOfGas(OutOfGasError::Memory).into()) } - InstructionResult::MemoryOOG => Self::Halt(HaltReason::OutOfGas(OutOfGasError::Memory)), InstructionResult::PrecompileOOG => { - Self::Halt(HaltReason::OutOfGas(OutOfGasError::Precompile)) + Self::Halt(HaltReason::OutOfGas(OutOfGasError::Precompile).into()) } InstructionResult::InvalidOperandOOG => { - Self::Halt(HaltReason::OutOfGas(OutOfGasError::InvalidOperand)) + Self::Halt(HaltReason::OutOfGas(OutOfGasError::InvalidOperand).into()) } InstructionResult::OpcodeNotFound | InstructionResult::ReturnContractInNotInitEOF => { - Self::Halt(HaltReason::OpcodeNotFound) + Self::Halt(HaltReason::OpcodeNotFound.into()) } InstructionResult::CallNotAllowedInsideStatic => { - Self::Halt(HaltReason::CallNotAllowedInsideStatic) + Self::Halt(HaltReason::CallNotAllowedInsideStatic.into()) } // first call is not static call InstructionResult::StateChangeDuringStaticCall => { - Self::Halt(HaltReason::StateChangeDuringStaticCall) + Self::Halt(HaltReason::StateChangeDuringStaticCall.into()) } - InstructionResult::InvalidFEOpcode => Self::Halt(HaltReason::InvalidFEOpcode), - InstructionResult::InvalidJump => Self::Halt(HaltReason::InvalidJump), - InstructionResult::NotActivated => Self::Halt(HaltReason::NotActivated), - InstructionResult::StackUnderflow => Self::Halt(HaltReason::StackUnderflow), - InstructionResult::StackOverflow => Self::Halt(HaltReason::StackOverflow), - InstructionResult::OutOfOffset => Self::Halt(HaltReason::OutOfOffset), - InstructionResult::CreateCollision => Self::Halt(HaltReason::CreateCollision), - InstructionResult::OverflowPayment => Self::Halt(HaltReason::OverflowPayment), // Check for first call is done separately. - InstructionResult::PrecompileError => Self::Halt(HaltReason::PrecompileError), - InstructionResult::NonceOverflow => Self::Halt(HaltReason::NonceOverflow), + InstructionResult::InvalidFEOpcode => Self::Halt(HaltReason::InvalidFEOpcode.into()), + InstructionResult::InvalidJump => Self::Halt(HaltReason::InvalidJump.into()), + InstructionResult::NotActivated => Self::Halt(HaltReason::NotActivated.into()), + InstructionResult::StackUnderflow => Self::Halt(HaltReason::StackUnderflow.into()), + InstructionResult::StackOverflow => Self::Halt(HaltReason::StackOverflow.into()), + InstructionResult::OutOfOffset => Self::Halt(HaltReason::OutOfOffset.into()), + InstructionResult::CreateCollision => Self::Halt(HaltReason::CreateCollision.into()), + InstructionResult::OverflowPayment => Self::Halt(HaltReason::OverflowPayment.into()), // Check for first call is done separately. + InstructionResult::PrecompileError => Self::Halt(HaltReason::PrecompileError.into()), + InstructionResult::NonceOverflow => Self::Halt(HaltReason::NonceOverflow.into()), InstructionResult::CreateContractSizeLimit | InstructionResult::CreateContractStartingWithEF => { - Self::Halt(HaltReason::CreateContractSizeLimit) + Self::Halt(HaltReason::CreateContractSizeLimit.into()) } InstructionResult::CreateInitCodeSizeLimit => { - Self::Halt(HaltReason::CreateInitCodeSizeLimit) + Self::Halt(HaltReason::CreateInitCodeSizeLimit.into()) } // TODO (EOF) add proper Revert subtype. InstructionResult::InvalidEOFInitCode => Self::Revert, InstructionResult::FatalExternalError => Self::FatalExternalError, - InstructionResult::EOFOpcodeDisabledInLegacy => Self::Halt(HaltReason::OpcodeNotFound), + InstructionResult::EOFOpcodeDisabledInLegacy => { + Self::Halt(HaltReason::OpcodeNotFound.into()) + } InstructionResult::EOFFunctionStackOverflow => { - Self::Halt(HaltReason::EOFFunctionStackOverflow) + Self::Halt(HaltReason::EOFFunctionStackOverflow.into()) } InstructionResult::ReturnContract => Self::Success(SuccessReason::EofReturnContract), - InstructionResult::EofAuxDataOverflow => Self::Halt(HaltReason::EofAuxDataOverflow), - InstructionResult::EofAuxDataTooSmall => Self::Halt(HaltReason::EofAuxDataTooSmall), - InstructionResult::InvalidEXTCALLTarget => Self::Halt(HaltReason::InvalidEXTCALLTarget), + InstructionResult::EofAuxDataOverflow => { + Self::Halt(HaltReason::EofAuxDataOverflow.into()) + } + InstructionResult::EofAuxDataTooSmall => { + Self::Halt(HaltReason::EofAuxDataTooSmall.into()) + } + InstructionResult::InvalidEXTCALLTarget => { + Self::Halt(HaltReason::InvalidEXTCALLTarget.into()) + } InstructionResult::InvalidExtDelegateCallTarget => { Self::Internal(InternalResult::InvalidExtDelegateCallTarget) } diff --git a/crates/interpreter/src/instructions/bitwise.rs b/crates/interpreter/src/instructions/bitwise.rs index 8a87ee5ae0..c9f4ecb221 100644 --- a/crates/interpreter/src/instructions/bitwise.rs +++ b/crates/interpreter/src/instructions/bitwise.rs @@ -125,7 +125,7 @@ pub fn sar(interpreter: &mut Interpreter, _host: & mod tests { use crate::instructions::bitwise::{byte, sar, shl, shr}; use crate::{Contract, DummyHost, Interpreter}; - use revm_primitives::{uint, Env, LatestSpec, U256}; + use revm_primitives::{uint, DefaultEthereumWiring, Env, LatestSpec, U256}; #[test] fn test_shift_left() { @@ -202,7 +202,7 @@ mod tests { host.clear(); push!(interpreter, test.value); push!(interpreter, test.shift); - shl::(&mut interpreter, &mut host); + shl::, LatestSpec>(&mut interpreter, &mut host); pop!(interpreter, res); assert_eq!(res, test.expected); } @@ -283,7 +283,7 @@ mod tests { host.clear(); push!(interpreter, test.value); push!(interpreter, test.shift); - shr::(&mut interpreter, &mut host); + shr::, LatestSpec>(&mut interpreter, &mut host); pop!(interpreter, res); assert_eq!(res, test.expected); } @@ -389,7 +389,7 @@ mod tests { host.clear(); push!(interpreter, test.value); push!(interpreter, test.shift); - sar::(&mut interpreter, &mut host); + sar::, LatestSpec>(&mut interpreter, &mut host); pop!(interpreter, res); assert_eq!(res, test.expected); } @@ -403,7 +403,7 @@ mod tests { expected: U256, } - let mut host = DummyHost::new(Env::default()); + let mut host = DummyHost::::new(Env::default()); let mut interpreter = Interpreter::new(Contract::default(), u64::MAX, false); let input_value = U256::from(0x1234567890abcdef1234567890abcdef_u128); diff --git a/crates/interpreter/src/instructions/control.rs b/crates/interpreter/src/instructions/control.rs index 40e9ace212..5fdf025c18 100644 --- a/crates/interpreter/src/instructions/control.rs +++ b/crates/interpreter/src/instructions/control.rs @@ -206,7 +206,9 @@ pub fn unknown(interpreter: &mut Interpreter, _host: &mut H) { mod test { use std::sync::Arc; - use revm_primitives::{bytes, eof::TypesSection, Bytecode, Eof, PragueSpec}; + use revm_primitives::{ + bytes, eof::TypesSection, Bytecode, DefaultEthereumWiring, Eof, PragueSpec, + }; use super::*; use crate::{ @@ -216,7 +218,7 @@ mod test { #[test] fn rjump() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let mut interp = Interpreter::new_bytecode(Bytecode::LegacyRaw(Bytes::from([ RJUMP, 0x00, 0x02, STOP, STOP, @@ -230,7 +232,7 @@ mod test { #[test] fn rjumpi() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let mut interp = Interpreter::new_bytecode(Bytecode::LegacyRaw(Bytes::from([ RJUMPI, 0x00, 0x03, RJUMPI, 0x00, 0x01, STOP, STOP, @@ -250,7 +252,7 @@ mod test { #[test] fn rjumpv() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let mut interp = Interpreter::new_bytecode(Bytecode::LegacyRaw(Bytes::from([ RJUMPV, @@ -332,7 +334,7 @@ mod test { #[test] fn callf_retf_stop() { let table = make_instruction_table::<_, PragueSpec>(); - let mut host = DummyHost::default(); + let mut host = DummyHost::::default(); let bytes1 = Bytes::from([CALLF, 0x00, 0x01, STOP]); let bytes2 = Bytes::from([RETF]); @@ -363,7 +365,7 @@ mod test { #[test] fn callf_stop() { let table = make_instruction_table::<_, PragueSpec>(); - let mut host = DummyHost::default(); + let mut host = DummyHost::::default(); let bytes1 = Bytes::from([CALLF, 0x00, 0x01]); let bytes2 = Bytes::from([STOP]); @@ -387,7 +389,7 @@ mod test { #[test] fn callf_stack_overflow() { let table = make_instruction_table::<_, PragueSpec>(); - let mut host = DummyHost::default(); + let mut host = DummyHost::::default(); let bytes1 = Bytes::from([CALLF, 0x00, 0x01]); let bytes2 = Bytes::from([STOP]); @@ -404,7 +406,7 @@ mod test { #[test] fn jumpf_stop() { let table = make_instruction_table::<_, PragueSpec>(); - let mut host = DummyHost::default(); + let mut host = DummyHost::::default(); let bytes1 = Bytes::from([JUMPF, 0x00, 0x01]); let bytes2 = Bytes::from([STOP]); @@ -425,7 +427,7 @@ mod test { #[test] fn jumpf_stack_overflow() { let table = make_instruction_table::<_, PragueSpec>(); - let mut host = DummyHost::default(); + let mut host = DummyHost::::default(); let bytes1 = Bytes::from([JUMPF, 0x00, 0x01]); let bytes2 = Bytes::from([STOP]); diff --git a/crates/interpreter/src/instructions/data.rs b/crates/interpreter/src/instructions/data.rs index 44024ec090..86ce32024d 100644 --- a/crates/interpreter/src/instructions/data.rs +++ b/crates/interpreter/src/instructions/data.rs @@ -83,7 +83,7 @@ pub fn data_copy(interpreter: &mut Interpreter, _host: &mut H) #[cfg(test)] mod test { - use revm_primitives::{b256, bytes, Bytecode, Bytes, Eof, PragueSpec}; + use revm_primitives::{b256, bytes, Bytecode, Bytes, DefaultEthereumWiring, Eof, PragueSpec}; use std::sync::Arc; use super::*; @@ -107,7 +107,7 @@ mod test { #[test] fn dataload_dataloadn() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let eof = dummy_eof(Bytes::from([ DATALOAD, DATALOADN, 0x00, 0x00, DATALOAD, DATALOADN, 0x00, 35, DATALOAD, DATALOADN, @@ -163,7 +163,7 @@ mod test { #[test] fn data_copy() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let eof = dummy_eof(Bytes::from([DATACOPY, DATACOPY, DATACOPY, DATACOPY])); diff --git a/crates/interpreter/src/instructions/host_env.rs b/crates/interpreter/src/instructions/host_env.rs index ce934d492f..fa95533e4f 100644 --- a/crates/interpreter/src/instructions/host_env.rs +++ b/crates/interpreter/src/instructions/host_env.rs @@ -1,6 +1,6 @@ use crate::{ gas, - primitives::{Spec, SpecId::*, U256}, + primitives::{Block, Spec, SpecId::*, Transaction, U256}, Host, Interpreter, }; @@ -13,31 +13,31 @@ pub fn chainid(interpreter: &mut Interpreter, host pub fn coinbase(interpreter: &mut Interpreter, host: &mut H) { gas!(interpreter, gas::BASE); - push_b256!(interpreter, host.env().block.coinbase.into_word()); + push_b256!(interpreter, host.env().block.coinbase().into_word()); } pub fn timestamp(interpreter: &mut Interpreter, host: &mut H) { gas!(interpreter, gas::BASE); - push!(interpreter, host.env().block.timestamp); + push!(interpreter, *host.env().block.timestamp()); } pub fn block_number(interpreter: &mut Interpreter, host: &mut H) { gas!(interpreter, gas::BASE); - push!(interpreter, host.env().block.number); + push!(interpreter, *host.env().block.number()); } pub fn difficulty(interpreter: &mut Interpreter, host: &mut H) { gas!(interpreter, gas::BASE); if SPEC::enabled(MERGE) { - push_b256!(interpreter, host.env().block.prevrandao.unwrap()); + push_b256!(interpreter, *host.env().block.prevrandao().unwrap()); } else { - push!(interpreter, host.env().block.difficulty); + push!(interpreter, *host.env().block.difficulty()); } } pub fn gaslimit(interpreter: &mut Interpreter, host: &mut H) { gas!(interpreter, gas::BASE); - push!(interpreter, host.env().block.gas_limit); + push!(interpreter, *host.env().block.gas_limit()); } pub fn gasprice(interpreter: &mut Interpreter, host: &mut H) { @@ -49,12 +49,12 @@ pub fn gasprice(interpreter: &mut Interpreter, host: &mut H) { pub fn basefee(interpreter: &mut Interpreter, host: &mut H) { check!(interpreter, LONDON); gas!(interpreter, gas::BASE); - push!(interpreter, host.env().block.basefee); + push!(interpreter, *host.env().block.basefee()); } pub fn origin(interpreter: &mut Interpreter, host: &mut H) { gas!(interpreter, gas::BASE); - push_b256!(interpreter, host.env().tx.caller.into_word()); + push_b256!(interpreter, host.env().tx.caller().into_word()); } // EIP-4844: Shard Blob Transactions @@ -63,7 +63,7 @@ pub fn blob_hash(interpreter: &mut Interpreter, ho gas!(interpreter, gas::VERYLOW); pop_top!(interpreter, index); let i = as_usize_saturated!(index); - *index = match host.env().tx.blob_hashes.get(i) { + *index = match host.env().tx.blob_hashes().get(i) { Some(hash) => U256::from_be_bytes(hash.0), None => U256::ZERO, }; @@ -75,6 +75,12 @@ pub fn blob_basefee(interpreter: &mut Interpreter, gas!(interpreter, gas::BASE); push!( interpreter, - U256::from(host.env().block.get_blob_gasprice().unwrap_or_default()) + U256::from( + host.env() + .block + .get_blob_gasprice() + .copied() + .unwrap_or_default() + ) ); } diff --git a/crates/interpreter/src/instructions/stack.rs b/crates/interpreter/src/instructions/stack.rs index d75067e1f2..f249823b4d 100644 --- a/crates/interpreter/src/instructions/stack.rs +++ b/crates/interpreter/src/instructions/stack.rs @@ -86,16 +86,17 @@ pub fn exchange(interpreter: &mut Interpreter, _host: &mut H) #[cfg(test)] mod test { + use super::*; use crate::{ opcode::{make_instruction_table, DUPN, EXCHANGE, SWAPN}, - primitives::{Bytecode, Bytes, PragueSpec}, + primitives::{Bytecode, Bytes, DefaultEthereumWiring, PragueSpec}, DummyHost, Gas, InstructionResult, }; #[test] fn dupn() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let mut interp = Interpreter::new_bytecode(Bytecode::LegacyRaw(Bytes::from([ DUPN, 0x00, DUPN, 0x01, DUPN, 0x02, @@ -115,7 +116,7 @@ mod test { #[test] fn swapn() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let mut interp = Interpreter::new_bytecode(Bytecode::LegacyRaw(Bytes::from([SWAPN, 0x00, SWAPN, 0x01]))); @@ -135,7 +136,7 @@ mod test { #[test] fn exchange() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let mut interp = Interpreter::new_bytecode(Bytecode::LegacyRaw(Bytes::from([ EXCHANGE, 0x00, EXCHANGE, 0x11, diff --git a/crates/interpreter/src/instructions/system.rs b/crates/interpreter/src/instructions/system.rs index 3605a53705..659951f733 100644 --- a/crates/interpreter/src/instructions/system.rs +++ b/crates/interpreter/src/instructions/system.rs @@ -189,13 +189,13 @@ mod test { use super::*; use crate::{ opcode::{make_instruction_table, RETURNDATACOPY, RETURNDATALOAD}, - primitives::{bytes, Bytecode, PragueSpec}, + primitives::{bytes, Bytecode, DefaultEthereumWiring, PragueSpec}, DummyHost, Gas, InstructionResult, }; #[test] fn returndataload() { - let table = make_instruction_table::<_, PragueSpec>(); + let table = make_instruction_table::, PragueSpec>(); let mut host = DummyHost::default(); let mut interp = Interpreter::new_bytecode(Bytecode::LegacyRaw( @@ -254,7 +254,7 @@ mod test { #[test] fn returndatacopy() { let table = make_instruction_table::<_, PragueSpec>(); - let mut host = DummyHost::default(); + let mut host = DummyHost::::default(); let mut interp = Interpreter::new_bytecode(Bytecode::LegacyRaw( [ diff --git a/crates/interpreter/src/interpreter.rs b/crates/interpreter/src/interpreter.rs index ea1389e7fe..2b796366f2 100644 --- a/crates/interpreter/src/interpreter.rs +++ b/crates/interpreter/src/interpreter.rs @@ -469,20 +469,25 @@ pub fn resize_memory(memory: &mut SharedMemory, gas: &mut Gas, new_size: usize) mod tests { use super::*; use crate::{opcode::InstructionTable, DummyHost}; - use revm_primitives::CancunSpec; + use revm_primitives::{CancunSpec, DefaultEthereumWiring}; #[test] fn object_safety() { let mut interp = Interpreter::new(Contract::default(), u64::MAX, false); - let mut host = crate::DummyHost::default(); - let table: &InstructionTable = - &crate::opcode::make_instruction_table::(); + let mut host = crate::DummyHost::::default(); + let table: &InstructionTable> = + &crate::opcode::make_instruction_table::, CancunSpec>( + ); let _ = interp.run(EMPTY_SHARED_MEMORY, table, &mut host); - let host: &mut dyn Host = &mut host as &mut dyn Host; - let table: &InstructionTable = - &crate::opcode::make_instruction_table::(); + let host: &mut dyn Host = + &mut host as &mut dyn Host; + let table: &InstructionTable> = + &crate::opcode::make_instruction_table::< + dyn Host, + CancunSpec, + >(); let _ = interp.run(EMPTY_SHARED_MEMORY, table, host); } } diff --git a/crates/interpreter/src/interpreter/analysis.rs b/crates/interpreter/src/interpreter/analysis.rs index 0f3651a7bd..c2ea93506c 100644 --- a/crates/interpreter/src/interpreter/analysis.rs +++ b/crates/interpreter/src/interpreter/analysis.rs @@ -219,8 +219,7 @@ impl fmt::Display for EofError { } } -#[cfg(feature = "std")] -impl std::error::Error for EofError {} +impl core::error::Error for EofError {} #[derive(Debug, Hash, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] pub enum EofValidationError { @@ -442,8 +441,7 @@ impl fmt::Display for EofValidationError { } } -#[cfg(feature = "std")] -impl std::error::Error for EofValidationError {} +impl core::error::Error for EofValidationError {} /// Validates that: /// * All instructions are valid. diff --git a/crates/interpreter/src/interpreter/contract.rs b/crates/interpreter/src/interpreter/contract.rs index 304b700446..5dc50f4d0d 100644 --- a/crates/interpreter/src/interpreter/contract.rs +++ b/crates/interpreter/src/interpreter/contract.rs @@ -1,8 +1,8 @@ -use revm_primitives::TxKind; +use revm_primitives::{EnvWiring, EvmWiring}; use super::analysis::to_analysed; use crate::{ - primitives::{Address, Bytecode, Bytes, Env, B256, U256}, + primitives::{Address, Bytecode, Bytes, Transaction, TxKind, B256, U256}, CallInputs, }; @@ -53,25 +53,29 @@ impl Contract { } } - /// Creates a new contract from the given [`Env`]. + /// Creates a new contract from the given [`EnvWiring`]. #[inline] - pub fn new_env(env: &Env, bytecode: Bytecode, hash: Option) -> Self { - let contract_address = match env.tx.transact_to { + pub fn new_env( + env: &EnvWiring, + bytecode: Bytecode, + hash: Option, + ) -> Self { + let contract_address = match env.tx.kind() { TxKind::Call(caller) => caller, TxKind::Create => Address::ZERO, }; - let bytecode_address = match env.tx.transact_to { + let bytecode_address = match env.tx.kind() { TxKind::Call(caller) => Some(caller), TxKind::Create => None, }; Self::new( - env.tx.data.clone(), + env.tx.data().clone(), bytecode, hash, contract_address, bytecode_address, - env.tx.caller, - env.tx.value, + *env.tx.caller(), + *env.tx.value(), ) } diff --git a/crates/interpreter/src/interpreter_action/call_inputs.rs b/crates/interpreter/src/interpreter_action/call_inputs.rs index bc51ceac8d..7695bd8980 100644 --- a/crates/interpreter/src/interpreter_action/call_inputs.rs +++ b/crates/interpreter/src/interpreter_action/call_inputs.rs @@ -1,4 +1,6 @@ -use crate::primitives::{Address, Bytes, TxEnv, TxKind, U256}; +use revm_primitives::Transaction; + +use crate::primitives::{Address, Bytes, TxKind, U256}; use core::ops::Range; use std::boxed::Box; @@ -46,17 +48,17 @@ impl CallInputs { /// Creates new call inputs. /// /// Returns `None` if the transaction is not a call. - pub fn new(tx_env: &TxEnv, gas_limit: u64) -> Option { - let TxKind::Call(target_address) = tx_env.transact_to else { + pub fn new(tx_env: &impl Transaction, gas_limit: u64) -> Option { + let TxKind::Call(target_address) = tx_env.kind() else { return None; }; Some(CallInputs { - input: tx_env.data.clone(), + input: tx_env.data().clone(), gas_limit, target_address, bytecode_address: target_address, - caller: tx_env.caller, - value: CallValue::Transfer(tx_env.value), + caller: *tx_env.caller(), + value: CallValue::Transfer(*tx_env.value()), scheme: CallScheme::Call, is_static: false, is_eof: false, @@ -67,7 +69,7 @@ impl CallInputs { /// Creates new boxed call inputs. /// /// Returns `None` if the transaction is not a call. - pub fn new_boxed(tx_env: &TxEnv, gas_limit: u64) -> Option> { + pub fn new_boxed(tx_env: &impl Transaction, gas_limit: u64) -> Option> { Self::new(tx_env, gas_limit).map(Box::new) } diff --git a/crates/interpreter/src/interpreter_action/create_inputs.rs b/crates/interpreter/src/interpreter_action/create_inputs.rs index adae96ac2d..151df91d21 100644 --- a/crates/interpreter/src/interpreter_action/create_inputs.rs +++ b/crates/interpreter/src/interpreter_action/create_inputs.rs @@ -1,5 +1,7 @@ +use revm_primitives::Transaction; + pub use crate::primitives::CreateScheme; -use crate::primitives::{Address, Bytes, TxEnv, TxKind, U256}; +use crate::primitives::{Address, Bytes, TxKind, U256}; use std::boxed::Box; /// Inputs for a create call. @@ -20,22 +22,22 @@ pub struct CreateInputs { impl CreateInputs { /// Creates new create inputs. - pub fn new(tx_env: &TxEnv, gas_limit: u64) -> Option { - let TxKind::Create = tx_env.transact_to else { + pub fn new(tx_env: &impl Transaction, gas_limit: u64) -> Option { + let TxKind::Create = tx_env.kind() else { return None; }; Some(CreateInputs { - caller: tx_env.caller, + caller: *tx_env.caller(), scheme: CreateScheme::Create, - value: tx_env.value, - init_code: tx_env.data.clone(), + value: *tx_env.value(), + init_code: tx_env.data().clone(), gas_limit, }) } /// Returns boxed create inputs. - pub fn new_boxed(tx_env: &TxEnv, gas_limit: u64) -> Option> { + pub fn new_boxed(tx_env: &impl Transaction, gas_limit: u64) -> Option> { Self::new(tx_env, gas_limit).map(Box::new) } diff --git a/crates/interpreter/src/interpreter_action/eof_create_inputs.rs b/crates/interpreter/src/interpreter_action/eof_create_inputs.rs index c5cafb3c87..f63480d8bc 100644 --- a/crates/interpreter/src/interpreter_action/eof_create_inputs.rs +++ b/crates/interpreter/src/interpreter_action/eof_create_inputs.rs @@ -1,4 +1,6 @@ -use crate::primitives::{Address, Bytes, Eof, TxEnv, U256}; +use revm_primitives::EvmWiring; + +use crate::primitives::{Address, Bytes, Eof, Transaction, U256}; /// EOF create can be called from two places: /// * EOFCREATE opcode @@ -73,13 +75,13 @@ impl EOFCreateInputs { } /// Creates new EOFCreateInputs from transaction. - pub fn new_tx(tx: &TxEnv, gas_limit: u64) -> Self { + pub fn new_tx(tx: &EvmWiringT::Transaction, gas_limit: u64) -> Self { EOFCreateInputs::new( - tx.caller, - tx.value, + *tx.caller(), + *tx.value(), gas_limit, EOFCreateKind::Tx { - initdata: tx.data.clone(), + initdata: tx.data().clone(), }, ) } diff --git a/crates/interpreter/src/opcode.rs b/crates/interpreter/src/opcode.rs index b9891712e0..587810f5d6 100644 --- a/crates/interpreter/src/opcode.rs +++ b/crates/interpreter/src/opcode.rs @@ -24,8 +24,8 @@ impl fmt::Display for OpCodeError { } } -#[cfg(all(feature = "std", feature = "parse"))] -impl std::error::Error for OpCodeError {} +#[cfg(feature = "parse")] +impl core::error::Error for OpCodeError {} /// An EVM opcode. /// @@ -497,7 +497,7 @@ opcodes! { 0x3D => RETURNDATASIZE => system::returndatasize:: => stack_io(0, 1); 0x3E => RETURNDATACOPY => system::returndatacopy:: => stack_io(3, 0); 0x3F => EXTCODEHASH => host::extcodehash:: => stack_io(1, 1), not_eof; - 0x40 => BLOCKHASH => host::blockhash:: => stack_io(1, 1); + 0x40 => BLOCKHASH => host::blockhash:: => stack_io(1, 1); 0x41 => COINBASE => host_env::coinbase => stack_io(0, 1); 0x42 => TIMESTAMP => host_env::timestamp => stack_io(0, 1); 0x43 => NUMBER => host_env::block_number => stack_io(0, 1); diff --git a/crates/optimism/CHANGELOG.md b/crates/optimism/CHANGELOG.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/crates/optimism/Cargo.toml b/crates/optimism/Cargo.toml new file mode 100644 index 0000000000..01fe061821 --- /dev/null +++ b/crates/optimism/Cargo.toml @@ -0,0 +1,82 @@ +[package] +authors = ["Dragan Rakita "] +description = "Revm Optimism" +edition = "2021" +keywords = ["ethereum", "optimism", "evm", "revm", "no_std"] +license = "MIT" +name = "revm-optimism" +repository = "https://github.com/bluealloy/revm" +version = "1.0.0" +readme = "../../README.md" + +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] + +[lints.rust] +unreachable_pub = "warn" +unused_must_use = "deny" +rust_2018_idioms = "deny" + +[lints.rustdoc] +all = "warn" + +[dependencies] +# revm +revm = { path = "../revm", version = "14.0.1", default-features = false } +revm-precompile = { path = "../precompile", version = "11.0.1", default-features = false, features = [ + "secp256r1", +] } + +# misc +enumn = { version = "0.1" } + +# Optional +serde = { version = "1.0", default-features = false, features = [ + "derive", + "rc", +], optional = true } + + +[dev-dependencies] +anyhow = "1.0.83" +criterion = "0.5" +indicatif = "0.17" +rstest = "0.22.0" +alloy-sol-types = "0.8" + +[features] +default = ["std", "c-kzg", "secp256k1", "portable", "blst"] +std = [ + "serde?/std", + "revm/std", + "revm-precompile/std", +] +hashbrown = ["revm/hashbrown"] +serde = ["dep:serde", "revm/serde"] +serde-json = ["serde", "revm/serde-json"] +portable = ["revm/portable"] + +dev = [ + "memory_limit", + "optional_balance_check", + "optional_block_gas_limit", + "optional_eip3607", + "optional_gas_refund", + "optional_no_base_fee", + "optional_beneficiary_reward", +] +memory_limit = ["revm/memory_limit"] +optional_balance_check = ["revm/optional_balance_check"] +optional_block_gas_limit = ["revm/optional_block_gas_limit"] +optional_eip3607 = ["revm/optional_eip3607"] +optional_gas_refund = ["revm/optional_gas_refund"] +optional_no_base_fee = ["revm/optional_no_base_fee"] +optional_beneficiary_reward = ["revm/optional_beneficiary_reward"] + +# See comments in `revm-precompile` +secp256k1 = ["revm/secp256k1"] +c-kzg = ["revm/c-kzg"] +# `kzg-rs` is not audited but useful for `no_std` environment, use it with causing and default to `c-kzg` if possible. +kzg-rs = ["revm/kzg-rs"] +blst = ["revm/blst"] diff --git a/crates/optimism/LICENSE b/crates/optimism/LICENSE new file mode 100644 index 0000000000..ad98ff22cc --- /dev/null +++ b/crates/optimism/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021-2024 draganrakita + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/crates/revm/src/optimism/bn128.rs b/crates/optimism/src/bn128.rs similarity index 94% rename from crates/revm/src/optimism/bn128.rs rename to crates/optimism/src/bn128.rs index 5ad8e83f95..b61be4ac34 100644 --- a/crates/revm/src/optimism/bn128.rs +++ b/crates/optimism/src/bn128.rs @@ -1,5 +1,6 @@ -use revm_precompile::bn128; -use revm_precompile::{Error, Precompile, PrecompileResult, PrecompileWithAddress}; +use revm_precompile::{ + bn128, {Error, Precompile, PrecompileResult, PrecompileWithAddress}, +}; pub(crate) mod pair { use super::*; @@ -25,9 +26,9 @@ pub(crate) mod pair { #[cfg(test)] mod tests { - use revm_precompile::primitives::{hex, PrecompileErrors}; - use super::*; + use revm::primitives::{hex, PrecompileErrors}; + use std::vec; #[test] fn test_bn128_pair() { diff --git a/crates/optimism/src/env.rs b/crates/optimism/src/env.rs new file mode 100644 index 0000000000..15467030f0 --- /dev/null +++ b/crates/optimism/src/env.rs @@ -0,0 +1,115 @@ +use revm::primitives::{ + AccessListItem, Address, AuthorizationList, Bytes, Transaction, TransactionValidation, TxKind, + B256, U256, +}; + +use super::{OptimismInvalidTransaction, OptimismTransaction}; + +/// The Optimism transaction environment. +#[derive(Clone, Debug, Default, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +pub struct TxEnv { + #[cfg_attr(feature = "serde", serde(flatten))] + pub base: revm::primitives::TxEnv, + + /// The source hash is used to make sure that deposit transactions do + /// not have identical hashes. + /// + /// L1 originated deposit transaction source hashes are computed using + /// the hash of the l1 block hash and the l1 log index. + /// L1 attributes deposit source hashes are computed with the l1 block + /// hash and the sequence number = l2 block number - l2 epoch start + /// block number. + /// + /// These two deposit transaction sources specify a domain in the outer + /// hash so there are no collisions. + pub source_hash: Option, + /// The amount to increase the balance of the `from` account as part of + /// a deposit transaction. This is unconditional and is applied to the + /// `from` account even if the deposit transaction fails since + /// the deposit is pre-paid on L1. + pub mint: Option, + /// Whether or not the transaction is a system transaction. + pub is_system_transaction: Option, + /// An enveloped EIP-2718 typed transaction. This is used + /// to compute the L1 tx cost using the L1 block info, as + /// opposed to requiring downstream apps to compute the cost + /// externally. + pub enveloped_tx: Option, +} + +impl Transaction for TxEnv { + fn caller(&self) -> &Address { + self.base.caller() + } + + fn gas_limit(&self) -> u64 { + self.base.gas_limit() + } + + fn gas_price(&self) -> &U256 { + self.base.gas_price() + } + + fn kind(&self) -> TxKind { + self.base.kind() + } + + fn value(&self) -> &U256 { + self.base.value() + } + + fn data(&self) -> &Bytes { + self.base.data() + } + + fn nonce(&self) -> u64 { + self.base.nonce() + } + + fn chain_id(&self) -> Option { + self.base.chain_id() + } + + fn access_list(&self) -> &[AccessListItem] { + self.base.access_list() + } + + fn max_priority_fee_per_gas(&self) -> Option<&U256> { + self.base.max_priority_fee_per_gas() + } + + fn blob_hashes(&self) -> &[B256] { + self.base.blob_hashes() + } + + fn max_fee_per_blob_gas(&self) -> Option<&U256> { + self.base.max_fee_per_blob_gas() + } + + fn authorization_list(&self) -> Option<&AuthorizationList> { + self.base.authorization_list() + } +} + +impl OptimismTransaction for TxEnv { + fn source_hash(&self) -> Option<&B256> { + self.source_hash.as_ref() + } + + fn mint(&self) -> Option<&u128> { + self.mint.as_ref() + } + + fn is_system_transaction(&self) -> Option { + self.is_system_transaction + } + + fn enveloped_tx(&self) -> Option { + self.enveloped_tx.clone() + } +} + +impl TransactionValidation for TxEnv { + type ValidationError = OptimismInvalidTransaction; +} diff --git a/crates/revm/src/optimism/fast_lz.rs b/crates/optimism/src/fast_lz.rs similarity index 98% rename from crates/revm/src/optimism/fast_lz.rs rename to crates/optimism/src/fast_lz.rs index cf715bf3cb..cdcaff5849 100644 --- a/crates/revm/src/optimism/fast_lz.rs +++ b/crates/optimism/src/fast_lz.rs @@ -105,15 +105,15 @@ fn u24(input: &[u8], idx: u32) -> u32 { #[cfg(test)] mod tests { + use super::*; use alloy_sol_types::sol; use alloy_sol_types::SolCall; - - use super::*; - use crate::db::BenchmarkDB; - use crate::{ - primitives::address, primitives::bytes, primitives::Bytecode, primitives::Bytes, - primitives::TxKind, primitives::U256, Evm, + use revm::{ + db::BenchmarkDB, + primitives::{address, bytes, Bytecode, Bytes, EthereumWiring, TxKind, U256}, + Evm, }; + use std::vec::Vec; use rstest::rstest; @@ -162,8 +162,9 @@ mod tests { let native_val = flz_compress_len(&input); - let mut evm = Evm::builder() + let mut evm = Evm::>::builder() .with_db(BenchmarkDB::new_bytecode(contract_bytecode.clone())) + .with_default_ext_ctx() .modify_tx_env(|tx| { tx.caller = address!("1000000000000000000000000000000000000000"); tx.transact_to = TxKind::Call(address!("0000000000000000000000000000000000000000")); diff --git a/crates/revm/src/optimism/handler_register.rs b/crates/optimism/src/handler_register.rs similarity index 63% rename from crates/revm/src/optimism/handler_register.rs rename to crates/optimism/src/handler_register.rs index fc04e0ab84..800ea1a210 100644 --- a/crates/revm/src/optimism/handler_register.rs +++ b/crates/optimism/src/handler_register.rs @@ -1,89 +1,99 @@ //! Handler related to Optimism chain -use crate::{ +use super::{ + optimism_spec_to_generic, OptimismContext, OptimismHaltReason, OptimismInvalidTransaction, + OptimismSpec, OptimismSpecId, OptimismTransaction, OptimismWiring, +}; +use crate::{BASE_FEE_RECIPIENT, L1_FEE_RECIPIENT}; +use core::ops::Mul; +use revm::{ handler::{ mainnet::{self, deduct_caller_inner}, register::EvmHandler, }, interpreter::{return_ok, return_revert, Gas, InstructionResult}, - optimism, + precompile::{secp256r1, PrecompileSpecId}, primitives::{ - db::Database, spec_to_generic, Account, EVMError, Env, ExecutionResult, HaltReason, - HashMap, InvalidTransaction, OptimismInvalidTransaction, ResultAndState, Spec, SpecId, - SpecId::REGOLITH, U256, + db::Database, Account, Block, EVMError, EVMResult, EVMResultGeneric, EnvWiring, + ExecutionResult, HashMap, InvalidTransaction, ResultAndState, Transaction, U256, }, Context, ContextPrecompiles, FrameResult, }; -use core::ops::Mul; -use revm_precompile::{secp256r1, PrecompileSpecId}; -use std::string::ToString; use std::sync::Arc; -pub fn optimism_handle_register(handler: &mut EvmHandler<'_, EXT, DB>) { - spec_to_generic!(handler.cfg.spec_id, { +pub fn optimism_handle_register(handler: &mut EvmHandler<'_, EvmWiringT>) +where + EvmWiringT: OptimismWiring, +{ + optimism_spec_to_generic!(handler.spec_id, { // validate environment - handler.validation.env = Arc::new(validate_env::); + handler.validation.env = Arc::new(validate_env::); // Validate transaction against state. - handler.validation.tx_against_state = Arc::new(validate_tx_against_state::); + handler.validation.tx_against_state = + Arc::new(validate_tx_against_state::); // Load additional precompiles for the given chain spec. - handler.pre_execution.load_precompiles = Arc::new(load_precompiles::); + handler.pre_execution.load_precompiles = Arc::new(load_precompiles::); // load l1 data - handler.pre_execution.load_accounts = Arc::new(load_accounts::); + handler.pre_execution.load_accounts = Arc::new(load_accounts::); // An estimated batch cost is charged from the caller and added to L1 Fee Vault. - handler.pre_execution.deduct_caller = Arc::new(deduct_caller::); + handler.pre_execution.deduct_caller = Arc::new(deduct_caller::); // Refund is calculated differently then mainnet. - handler.execution.last_frame_return = Arc::new(last_frame_return::); - handler.post_execution.refund = Arc::new(refund::); - handler.post_execution.reward_beneficiary = Arc::new(reward_beneficiary::); + handler.execution.last_frame_return = Arc::new(last_frame_return::); + handler.post_execution.refund = Arc::new(refund::); + handler.post_execution.reward_beneficiary = + Arc::new(reward_beneficiary::); // In case of halt of deposit transaction return Error. - handler.post_execution.output = Arc::new(output::); - handler.post_execution.end = Arc::new(end::); + handler.post_execution.output = Arc::new(output::); + handler.post_execution.end = Arc::new(end::); }); } /// Validate environment for the Optimism chain. -pub fn validate_env(env: &Env) -> Result<(), EVMError> { +pub fn validate_env( + env: &EnvWiring, +) -> EVMResultGeneric<(), EvmWiringT> { // Do not perform any extra validation for deposit transactions, they are pre-verified on L1. - if env.tx.optimism.source_hash.is_some() { + if env.tx.source_hash().is_some() { return Ok(()); } + // Important: validate block before tx. env.validate_block_env::()?; // Do not allow for a system transaction to be processed if Regolith is enabled. - let tx = &env.tx.optimism; - if tx.is_system_transaction.unwrap_or(false) && SPEC::enabled(SpecId::REGOLITH) { - return Err(InvalidTransaction::OptimismError( - OptimismInvalidTransaction::DepositSystemTxPostRegolith, - ) - .into()); + if env.tx.is_system_transaction().unwrap_or(false) + && SPEC::optimism_enabled(OptimismSpecId::REGOLITH) + { + return Err(OptimismInvalidTransaction::DepositSystemTxPostRegolith.into()); } - env.validate_tx::()?; + env.validate_tx::() + .map_err(OptimismInvalidTransaction::Base)?; + Ok(()) } /// Don not perform any extra validation for deposit transactions, they are pre-verified on L1. -pub fn validate_tx_against_state( - context: &mut Context, -) -> Result<(), EVMError> { - if context.evm.inner.env.tx.optimism.source_hash.is_some() { +pub fn validate_tx_against_state( + context: &mut Context, +) -> EVMResultGeneric<(), EvmWiringT> { + if context.evm.inner.env.tx.source_hash().is_some() { return Ok(()); } - mainnet::validate_tx_against_state::(context) + mainnet::validate_tx_against_state::(context) } /// Handle output of the transaction #[inline] -pub fn last_frame_return( - context: &mut Context, +pub fn last_frame_return( + context: &mut Context, frame_result: &mut FrameResult, -) -> Result<(), EVMError> { +) -> EVMResultGeneric<(), EvmWiringT> { let env = context.evm.inner.env(); - let is_deposit = env.tx.optimism.source_hash.is_some(); - let tx_system = env.tx.optimism.is_system_transaction; - let tx_gas_limit = env.tx.gas_limit; - let is_regolith = SPEC::enabled(REGOLITH); + let is_deposit = env.tx.source_hash().is_some(); + let tx_system = env.tx.is_system_transaction(); + let tx_gas_limit = env.tx.gas_limit(); + let is_regolith = SPEC::optimism_enabled(OptimismSpecId::REGOLITH); let instruction_result = frame_result.interpreter_result().result; let gas = frame_result.gas_mut(); @@ -142,40 +152,41 @@ pub fn last_frame_return( /// Record Eip-7702 refund and calculate final refund. #[inline] -pub fn refund( - context: &mut Context, +pub fn refund( + context: &mut Context, gas: &mut Gas, eip7702_refund: i64, ) { gas.record_refund(eip7702_refund); let env = context.evm.inner.env(); - let is_deposit = env.tx.optimism.source_hash.is_some(); - let is_regolith = SPEC::enabled(REGOLITH); + let is_deposit = env.tx.source_hash().is_some(); + let is_regolith = SPEC::optimism_enabled(OptimismSpecId::REGOLITH); // Prior to Regolith, deposit transactions did not receive gas refunds. let is_gas_refund_disabled = env.cfg.is_gas_refund_disabled() || (is_deposit && !is_regolith); if !is_gas_refund_disabled { - gas.set_final_refund(SPEC::SPEC_ID.is_enabled_in(SpecId::LONDON)); + gas.set_final_refund(SPEC::OPTIMISM_SPEC_ID.is_enabled_in(OptimismSpecId::LONDON)); } } /// Load precompiles for Optimism chain. #[inline] -pub fn load_precompiles() -> ContextPrecompiles { +pub fn load_precompiles( +) -> ContextPrecompiles { let mut precompiles = ContextPrecompiles::new(PrecompileSpecId::from_spec_id(SPEC::SPEC_ID)); - if SPEC::enabled(SpecId::FJORD) { + if SPEC::optimism_enabled(OptimismSpecId::FJORD) { precompiles.extend([ // EIP-7212: secp256r1 P256verify secp256r1::P256VERIFY, ]) } - if SPEC::enabled(SpecId::GRANITE) { + if SPEC::optimism_enabled(OptimismSpecId::GRANITE) { precompiles.extend([ // Restrict bn256Pairing input size - optimism::bn128::pair::GRANITE, + crate::bn128::pair::GRANITE, ]) } @@ -184,69 +195,74 @@ pub fn load_precompiles() -> ContextPrecompiles( - context: &mut Context, -) -> Result<(), EVMError> { +pub fn load_accounts( + context: &mut Context, +) -> EVMResultGeneric<(), EvmWiringT> { // the L1-cost fee is only computed for Optimism non-deposit transactions. - if context.evm.inner.env.tx.optimism.source_hash.is_none() { + if context.evm.env.tx.source_hash().is_none() { let l1_block_info = - crate::optimism::L1BlockInfo::try_fetch(&mut context.evm.inner.db, SPEC::SPEC_ID) + super::L1BlockInfo::try_fetch(&mut context.evm.inner.db, SPEC::OPTIMISM_SPEC_ID) .map_err(EVMError::Database)?; // storage l1 block info for later use. - context.evm.inner.l1_block_info = Some(l1_block_info); + *context.evm.chain.l1_block_info_mut() = Some(l1_block_info); } - mainnet::load_accounts::(context) + mainnet::load_accounts::(context) } /// Deduct max balance from caller #[inline] -pub fn deduct_caller( - context: &mut Context, -) -> Result<(), EVMError> { +pub fn deduct_caller( + context: &mut Context, +) -> EVMResultGeneric<(), EvmWiringT> { // load caller's account. let mut caller_account = context .evm .inner .journaled_state - .load_account(context.evm.inner.env.tx.caller, &mut context.evm.inner.db)?; + .load_account( + *context.evm.inner.env.tx.caller(), + &mut context.evm.inner.db, + ) + .map_err(EVMError::Database)?; // If the transaction is a deposit with a `mint` value, add the mint value // in wei to the caller's balance. This should be persisted to the database // prior to the rest of execution. - if let Some(mint) = context.evm.inner.env.tx.optimism.mint { - caller_account.info.balance += U256::from(mint); + if let Some(mint) = context.evm.inner.env.tx.mint() { + caller_account.info.balance += U256::from(*mint); } // We deduct caller max balance after minting and before deducing the // l1 cost, max values is already checked in pre_validate but l1 cost wasn't. - deduct_caller_inner::(caller_account.data, &context.evm.inner.env); + deduct_caller_inner::(caller_account.data, &context.evm.inner.env); // If the transaction is not a deposit transaction, subtract the L1 data fee from the // caller's balance directly after minting the requested amount of ETH. - if context.evm.inner.env.tx.optimism.source_hash.is_none() { + if context.evm.inner.env.tx.source_hash().is_none() { // get envelope - let Some(enveloped_tx) = &context.evm.inner.env.tx.optimism.enveloped_tx else { + let Some(enveloped_tx) = &context.evm.inner.env.tx.enveloped_tx() else { return Err(EVMError::Custom( - "[OPTIMISM] Failed to load enveloped transaction.".to_string(), + "[OPTIMISM] Failed to load enveloped transaction.".into(), )); }; let tx_l1_cost = context .evm .inner - .l1_block_info - .as_ref() + .chain + .l1_block_info() .expect("L1BlockInfo should be loaded") - .calculate_tx_l1_cost(enveloped_tx, SPEC::SPEC_ID); + .calculate_tx_l1_cost(enveloped_tx, SPEC::OPTIMISM_SPEC_ID); if tx_l1_cost.gt(&caller_account.info.balance) { return Err(EVMError::Transaction( InvalidTransaction::LackOfFundForMaxFee { fee: tx_l1_cost.into(), balance: caller_account.info.balance.into(), - }, + } + .into(), )); } caller_account.info.balance = caller_account.info.balance.saturating_sub(tx_l1_cost); @@ -256,40 +272,41 @@ pub fn deduct_caller( /// Reward beneficiary with gas fee. #[inline] -pub fn reward_beneficiary( - context: &mut Context, +pub fn reward_beneficiary( + context: &mut Context, gas: &Gas, -) -> Result<(), EVMError> { - let is_deposit = context.evm.inner.env.tx.optimism.source_hash.is_some(); +) -> EVMResultGeneric<(), EvmWiringT> { + let is_deposit = context.evm.inner.env.tx.source_hash().is_some(); // transfer fee to coinbase/beneficiary. if !is_deposit { - mainnet::reward_beneficiary::(context, gas)?; + mainnet::reward_beneficiary::(context, gas)?; } if !is_deposit { // If the transaction is not a deposit transaction, fees are paid out // to both the Base Fee Vault as well as the L1 Fee Vault. - let Some(l1_block_info) = &context.evm.inner.l1_block_info else { - return Err(EVMError::Custom( - "[OPTIMISM] Failed to load L1 block information.".to_string(), - )); - }; + let l1_block_info = context + .evm + .chain + .l1_block_info() + .expect("L1BlockInfo should be loaded"); - let Some(enveloped_tx) = &context.evm.inner.env.tx.optimism.enveloped_tx else { + let Some(enveloped_tx) = &context.evm.inner.env.tx.enveloped_tx() else { return Err(EVMError::Custom( - "[OPTIMISM] Failed to load enveloped transaction.".to_string(), + "[OPTIMISM] Failed to load enveloped transaction.".into(), )); }; - let l1_cost = l1_block_info.calculate_tx_l1_cost(enveloped_tx, SPEC::SPEC_ID); + let l1_cost = l1_block_info.calculate_tx_l1_cost(enveloped_tx, SPEC::OPTIMISM_SPEC_ID); // Send the L1 cost of the transaction to the L1 Fee Vault. let mut l1_fee_vault_account = context .evm .inner .journaled_state - .load_account(optimism::L1_FEE_RECIPIENT, &mut context.evm.inner.db)?; + .load_account(L1_FEE_RECIPIENT, &mut context.evm.inner.db) + .map_err(EVMError::Database)?; l1_fee_vault_account.mark_touch(); l1_fee_vault_account.info.balance += l1_cost; @@ -298,14 +315,15 @@ pub fn reward_beneficiary( .evm .inner .journaled_state - .load_account(optimism::BASE_FEE_RECIPIENT, &mut context.evm.inner.db)?; + .load_account(BASE_FEE_RECIPIENT, &mut context.evm.inner.db) + .map_err(EVMError::Database)?; base_fee_vault_account.mark_touch(); base_fee_vault_account.info.balance += context .evm .inner .env .block - .basefee + .basefee() .mul(U256::from(gas.spent() - gas.refunded() as u64)); } Ok(()) @@ -313,21 +331,21 @@ pub fn reward_beneficiary( /// Main return handle, returns the output of the transaction. #[inline] -pub fn output( - context: &mut Context, +pub fn output( + context: &mut Context, frame_result: FrameResult, -) -> Result> { - let result = mainnet::output::(context, frame_result)?; +) -> EVMResult { + let result = mainnet::output::(context, frame_result)?; if result.result.is_halt() { // Post-regolith, if the transaction is a deposit transaction and it halts, // we bubble up to the global return handler. The mint value will be persisted // and the caller nonce will be incremented there. - let is_deposit = context.evm.inner.env.tx.optimism.source_hash.is_some(); - if is_deposit && SPEC::enabled(REGOLITH) { - return Err(EVMError::Transaction(InvalidTransaction::OptimismError( + let is_deposit = context.evm.inner.env.tx.source_hash().is_some(); + if is_deposit && SPEC::optimism_enabled(OptimismSpecId::REGOLITH) { + return Err(EVMError::Transaction( OptimismInvalidTransaction::HaltedDepositPostRegolith, - ))); + )); } } Ok(result) @@ -335,13 +353,13 @@ pub fn output( /// Optimism end handle changes output if the transaction is a deposit transaction. /// Deposit transaction can't be reverted and is always successful. #[inline] -pub fn end( - context: &mut Context, - evm_output: Result>, -) -> Result> { +pub fn end( + context: &mut Context, + evm_output: EVMResult, +) -> EVMResult { evm_output.or_else(|err| { if matches!(err, EVMError::Transaction(_)) - && context.evm.inner.env().tx.optimism.source_hash.is_some() + && context.evm.inner.env().tx.source_hash().is_some() { // If the transaction is a deposit transaction and it failed // for any reason, the caller nonce must be bumped, and the @@ -349,7 +367,7 @@ pub fn end( // also returned as a special Halt variant so that consumers can more // easily distinguish between a failed deposit and a failed // normal transaction. - let caller = context.evm.inner.env().tx.caller; + let caller = *context.evm.inner.env().tx.caller(); // Increment sender nonce and account balance for the mint amount. Deposits // always persist the mint amount, even if the transaction fails. @@ -364,7 +382,7 @@ pub fn end( ); acc.info.nonce = acc.info.nonce.saturating_add(1); acc.info.balance = acc.info.balance.saturating_add(U256::from( - context.evm.inner.env().tx.optimism.mint.unwrap_or(0), + context.evm.inner.env().tx.mint().cloned().unwrap_or(0), )); acc.mark_touch(); acc @@ -379,18 +397,17 @@ pub fn end( .evm .env() .tx - .optimism - .is_system_transaction + .is_system_transaction() .unwrap_or(false); - let gas_used = if SPEC::enabled(REGOLITH) || !is_system_tx { - context.evm.inner.env().tx.gas_limit + let gas_used = if SPEC::optimism_enabled(OptimismSpecId::REGOLITH) || !is_system_tx { + context.evm.inner.env().tx.gas_limit() } else { 0 }; Ok(ResultAndState { result: ExecutionResult::Halt { - reason: HaltReason::FailedDeposit, + reason: OptimismHaltReason::FailedDeposit, gas_used, }, state, @@ -403,25 +420,28 @@ pub fn end( #[cfg(test)] mod tests { - use revm_interpreter::{CallOutcome, InterpreterResult}; - use super::*; - use crate::{ + use crate::{BedrockSpec, L1BlockInfo, LatestSpec, OptimismEvmWiring, RegolithSpec}; + use revm::{ db::{EmptyDB, InMemoryDB}, - primitives::{ - bytes, state::AccountInfo, Address, BedrockSpec, Bytes, Env, LatestSpec, RegolithSpec, - B256, - }, - L1BlockInfo, + interpreter::{CallOutcome, InterpreterResult}, + primitives::{bytes, state::AccountInfo, Address, Bytes, B256}, }; + use std::boxed::Box; + + type TestEmptyOpWiring = OptimismEvmWiring; + type TestMemOpWiring = OptimismEvmWiring; /// Creates frame result. - fn call_last_frame_return( - env: Env, + fn call_last_frame_return( + env: EnvWiring, instruction_result: InstructionResult, gas: Gas, - ) -> Gas { - let mut ctx = Context::new_empty(); + ) -> Gas + where + SPEC: OptimismSpec, + { + let mut ctx = Context::::new_with_db(EmptyDB::default()); ctx.evm.inner.env = Box::new(env); let mut first_frame = FrameResult::Call(CallOutcome::new( InterpreterResult { @@ -431,16 +451,16 @@ mod tests { }, 0..0, )); - last_frame_return::(&mut ctx, &mut first_frame).unwrap(); - refund::(&mut ctx, first_frame.gas_mut(), 0); + last_frame_return::(&mut ctx, &mut first_frame).unwrap(); + refund::(&mut ctx, first_frame.gas_mut(), 0); *first_frame.gas() } #[test] fn test_revert_gas() { - let mut env = Env::default(); - env.tx.gas_limit = 100; - env.tx.optimism.source_hash = None; + let mut env = EnvWiring::::default(); + env.tx.base.gas_limit = 100; + env.tx.source_hash = None; let gas = call_last_frame_return::(env, InstructionResult::Revert, Gas::new(90)); @@ -451,9 +471,9 @@ mod tests { #[test] fn test_consume_gas() { - let mut env = Env::default(); - env.tx.gas_limit = 100; - env.tx.optimism.source_hash = Some(B256::ZERO); + let mut env = EnvWiring::::default(); + env.tx.base.gas_limit = 100; + env.tx.source_hash = Some(B256::ZERO); let gas = call_last_frame_return::(env, InstructionResult::Stop, Gas::new(90)); @@ -464,9 +484,9 @@ mod tests { #[test] fn test_consume_gas_with_refund() { - let mut env = Env::default(); - env.tx.gas_limit = 100; - env.tx.optimism.source_hash = Some(B256::ZERO); + let mut env = EnvWiring::::default(); + env.tx.base.gas_limit = 100; + env.tx.source_hash = Some(B256::ZERO); let mut ret_gas = Gas::new(90); ret_gas.record_refund(20); @@ -485,9 +505,9 @@ mod tests { #[test] fn test_consume_gas_sys_deposit_tx() { - let mut env = Env::default(); - env.tx.gas_limit = 100; - env.tx.optimism.source_hash = Some(B256::ZERO); + let mut env = EnvWiring::::default(); + env.tx.base.gas_limit = 100; + env.tx.source_hash = Some(B256::ZERO); let gas = call_last_frame_return::(env, InstructionResult::Stop, Gas::new(90)); assert_eq!(gas.remaining(), 0); @@ -506,19 +526,20 @@ mod tests { ..Default::default() }, ); - let mut context: Context<(), InMemoryDB> = Context::new_with_db(db); - context.evm.inner.l1_block_info = Some(L1BlockInfo { + + let mut context = Context::::new_with_db(db); + *context.evm.chain.l1_block_info_mut() = Some(L1BlockInfo { l1_base_fee: U256::from(1_000), l1_fee_overhead: Some(U256::from(1_000)), l1_base_fee_scalar: U256::from(1_000), ..Default::default() }); // Enveloped needs to be some but it will deduce zero fee. - context.evm.inner.env.tx.optimism.enveloped_tx = Some(bytes!("")); + context.evm.inner.env.tx.enveloped_tx = Some(bytes!("")); // added mint value is 10. - context.evm.inner.env.tx.optimism.mint = Some(10); + context.evm.inner.env.tx.mint = Some(10); - deduct_caller::(&mut context).unwrap(); + deduct_caller::(&mut context).unwrap(); // Check the account balance is updated. let account = context @@ -541,22 +562,22 @@ mod tests { ..Default::default() }, ); - let mut context: Context<(), InMemoryDB> = Context::new_with_db(db); - context.evm.inner.l1_block_info = Some(L1BlockInfo { + let mut context = Context::::new_with_db(db); + *context.evm.chain.l1_block_info_mut() = Some(L1BlockInfo { l1_base_fee: U256::from(1_000), l1_fee_overhead: Some(U256::from(1_000)), l1_base_fee_scalar: U256::from(1_000), ..Default::default() }); // l1block cost is 1048 fee. - context.evm.inner.env.tx.optimism.enveloped_tx = Some(bytes!("FACADE")); + context.evm.inner.env.tx.enveloped_tx = Some(bytes!("FACADE")); // added mint value is 10. - context.evm.inner.env.tx.optimism.mint = Some(10); + context.evm.inner.env.tx.mint = Some(10); // Putting source_hash to some makes it a deposit transaction. // so enveloped_tx gas cost is ignored. - context.evm.inner.env.tx.optimism.source_hash = Some(B256::ZERO); + context.evm.inner.env.tx.source_hash = Some(B256::ZERO); - deduct_caller::(&mut context).unwrap(); + deduct_caller::(&mut context).unwrap(); // Check the account balance is updated. let account = context @@ -579,16 +600,16 @@ mod tests { ..Default::default() }, ); - let mut context: Context<(), InMemoryDB> = Context::new_with_db(db); - context.evm.inner.l1_block_info = Some(L1BlockInfo { + let mut context = Context::::new_with_db(db); + *context.evm.chain.l1_block_info_mut() = Some(L1BlockInfo { l1_base_fee: U256::from(1_000), l1_fee_overhead: Some(U256::from(1_000)), l1_base_fee_scalar: U256::from(1_000), ..Default::default() }); // l1block cost is 1048 fee. - context.evm.inner.env.tx.optimism.enveloped_tx = Some(bytes!("FACADE")); - deduct_caller::(&mut context).unwrap(); + context.evm.inner.env.tx.enveloped_tx = Some(bytes!("FACADE")); + deduct_caller::(&mut context).unwrap(); // Check the account balance is updated. let account = context @@ -611,23 +632,24 @@ mod tests { ..Default::default() }, ); - let mut context: Context<(), InMemoryDB> = Context::new_with_db(db); - context.evm.inner.l1_block_info = Some(L1BlockInfo { + let mut context = Context::::new_with_db(db); + *context.evm.chain.l1_block_info_mut() = Some(L1BlockInfo { l1_base_fee: U256::from(1_000), l1_fee_overhead: Some(U256::from(1_000)), l1_base_fee_scalar: U256::from(1_000), ..Default::default() }); // l1block cost is 1048 fee. - context.evm.inner.env.tx.optimism.enveloped_tx = Some(bytes!("FACADE")); + context.evm.inner.env.tx.enveloped_tx = Some(bytes!("FACADE")); assert_eq!( - deduct_caller::(&mut context), + deduct_caller::(&mut context), Err(EVMError::Transaction( InvalidTransaction::LackOfFundForMaxFee { fee: Box::new(U256::from(1048)), balance: Box::new(U256::from(48)), - }, + } + .into(), )) ); } @@ -635,34 +657,34 @@ mod tests { #[test] fn test_validate_sys_tx() { // mark the tx as a system transaction. - let mut env = Env::default(); - env.tx.optimism.is_system_transaction = Some(true); + let mut env = EnvWiring::::default(); + env.tx.is_system_transaction = Some(true); assert_eq!( - validate_env::(&env), - Err(EVMError::Transaction(InvalidTransaction::OptimismError( + validate_env::(&env), + Err(EVMError::Transaction( OptimismInvalidTransaction::DepositSystemTxPostRegolith - ))) + )) ); // Pre-regolith system transactions should be allowed. - assert!(validate_env::(&env).is_ok()); + assert!(validate_env::(&env).is_ok()); } #[test] fn test_validate_deposit_tx() { // Set source hash. - let mut env = Env::default(); - env.tx.optimism.source_hash = Some(B256::ZERO); - assert!(validate_env::(&env).is_ok()); + let mut env = EnvWiring::::default(); + env.tx.source_hash = Some(B256::ZERO); + assert!(validate_env::(&env).is_ok()); } #[test] fn test_validate_tx_against_state_deposit_tx() { // Set source hash. - let mut env = Env::default(); - env.tx.optimism.source_hash = Some(B256::ZERO); + let mut env = EnvWiring::::default(); + env.tx.source_hash = Some(B256::ZERO); // Nonce and balance checks should be skipped for deposit transactions. - assert!(validate_env::(&env).is_ok()); + assert!(validate_env::(&env).is_ok()); } } diff --git a/crates/revm/src/optimism/l1block.rs b/crates/optimism/src/l1block.rs similarity index 91% rename from crates/revm/src/optimism/l1block.rs rename to crates/optimism/src/l1block.rs index d7195c456b..9b33b0547d 100644 --- a/crates/revm/src/optimism/l1block.rs +++ b/crates/optimism/src/l1block.rs @@ -1,6 +1,8 @@ -use crate::optimism::fast_lz::flz_compress_len; -use crate::primitives::{address, db::Database, Address, SpecId, U256}; +use crate::fast_lz::flz_compress_len; use core::ops::Mul; +use revm::primitives::{address, db::Database, Address, U256}; + +use super::OptimismSpecId; const ZERO_BYTE_COST: u64 = 4; const NON_ZERO_BYTE_COST: u64 = 16; @@ -46,7 +48,7 @@ pub const L1_BLOCK_CONTRACT: Address = address!("4200000000000000000000000000000 /// uint64 _sequenceNumber, bytes32 _batcherHash, uint256 _l1FeeOverhead, uint256 _l1FeeScalar) /// /// For now, we only care about the fields necessary for L1 cost calculation. -#[derive(Clone, Debug, Default)] +#[derive(Clone, Debug, Default, PartialEq, Eq)] pub struct L1BlockInfo { /// The base fee of the L1 origin block. pub l1_base_fee: U256, @@ -64,16 +66,19 @@ pub struct L1BlockInfo { impl L1BlockInfo { /// Try to fetch the L1 block info from the database. - pub fn try_fetch(db: &mut DB, spec_id: SpecId) -> Result { + pub fn try_fetch( + db: &mut DB, + spec_id: OptimismSpecId, + ) -> Result { // Ensure the L1 Block account is loaded into the cache after Ecotone. With EIP-4788, it is no longer the case // that the L1 block account is loaded into the cache prior to the first inquiry for the L1 block info. - if spec_id.is_enabled_in(SpecId::CANCUN) { + if spec_id.is_enabled_in(OptimismSpecId::CANCUN) { let _ = db.basic(L1_BLOCK_CONTRACT)?; } let l1_base_fee = db.storage(L1_BLOCK_CONTRACT, L1_BASE_FEE_SLOT)?; - if !spec_id.is_enabled_in(SpecId::ECOTONE) { + if !spec_id.is_enabled_in(OptimismSpecId::ECOTONE) { let l1_fee_overhead = db.storage(L1_BLOCK_CONTRACT, L1_OVERHEAD_SLOT)?; let l1_fee_scalar = db.storage(L1_BLOCK_CONTRACT, L1_SCALAR_SLOT)?; @@ -124,8 +129,8 @@ impl L1BlockInfo { /// /// Prior to regolith, an extra 68 non-zero bytes were included in the rollup data costs to /// account for the empty signature. - pub fn data_gas(&self, input: &[u8], spec_id: SpecId) -> U256 { - if spec_id.is_enabled_in(SpecId::FJORD) { + pub fn data_gas(&self, input: &[u8], spec_id: OptimismSpecId) -> U256 { + if spec_id.is_enabled_in(OptimismSpecId::FJORD) { let estimated_size = self.tx_estimated_size_fjord(input); return estimated_size @@ -142,7 +147,7 @@ impl L1BlockInfo { })); // Prior to regolith, an extra 68 non zero bytes were included in the rollup data costs. - if !spec_id.is_enabled_in(SpecId::REGOLITH) { + if !spec_id.is_enabled_in(OptimismSpecId::REGOLITH) { rollup_data_gas_cost += U256::from(NON_ZERO_BYTE_COST).mul(U256::from(68)); } @@ -161,16 +166,16 @@ impl L1BlockInfo { .max(U256::from(100_000_000)) } - /// Calculate the gas cost of a transaction based on L1 block data posted on L2, depending on the [SpecId] passed. - pub fn calculate_tx_l1_cost(&self, input: &[u8], spec_id: SpecId) -> U256 { + /// Calculate the gas cost of a transaction based on L1 block data posted on L2, depending on the [OptimismSpecId] passed. + pub fn calculate_tx_l1_cost(&self, input: &[u8], spec_id: OptimismSpecId) -> U256 { // If the input is a deposit transaction or empty, the default value is zero. if input.is_empty() || input.first() == Some(&0x7F) { return U256::ZERO; } - if spec_id.is_enabled_in(SpecId::FJORD) { + if spec_id.is_enabled_in(OptimismSpecId::FJORD) { self.calculate_tx_l1_cost_fjord(input) - } else if spec_id.is_enabled_in(SpecId::ECOTONE) { + } else if spec_id.is_enabled_in(OptimismSpecId::ECOTONE) { self.calculate_tx_l1_cost_ecotone(input, spec_id) } else { self.calculate_tx_l1_cost_bedrock(input, spec_id) @@ -178,7 +183,7 @@ impl L1BlockInfo { } /// Calculate the gas cost of a transaction based on L1 block data posted on L2, pre-Ecotone. - fn calculate_tx_l1_cost_bedrock(&self, input: &[u8], spec_id: SpecId) -> U256 { + fn calculate_tx_l1_cost_bedrock(&self, input: &[u8], spec_id: OptimismSpecId) -> U256 { let rollup_data_gas_cost = self.data_gas(input, spec_id); rollup_data_gas_cost .saturating_add(self.l1_fee_overhead.unwrap_or_default()) @@ -189,7 +194,7 @@ impl L1BlockInfo { /// Calculate the gas cost of a transaction based on L1 block data posted on L2, post-Ecotone. /// - /// [SpecId::ECOTONE] L1 cost function: + /// [OptimismSpecId::ECOTONE] L1 cost function: /// `(calldataGas/16)*(l1BaseFee*16*l1BaseFeeScalar + l1BlobBaseFee*l1BlobBaseFeeScalar)/1e6` /// /// We divide "calldataGas" by 16 to change from units of calldata gas to "estimated # of bytes when compressed". @@ -197,7 +202,7 @@ impl L1BlockInfo { /// /// Function is actually computed as follows for better precision under integer arithmetic: /// `calldataGas*(l1BaseFee*16*l1BaseFeeScalar + l1BlobBaseFee*l1BlobBaseFeeScalar)/16e6` - fn calculate_tx_l1_cost_ecotone(&self, input: &[u8], spec_id: SpecId) -> U256 { + fn calculate_tx_l1_cost_ecotone(&self, input: &[u8], spec_id: OptimismSpecId) -> U256 { // There is an edgecase where, for the very first Ecotone block (unless it is activated at Genesis), we must // use the Bedrock cost function. To determine if this is the case, we can check if the Ecotone parameters are // unset. @@ -215,7 +220,7 @@ impl L1BlockInfo { /// Calculate the gas cost of a transaction based on L1 block data posted on L2, post-Fjord. /// - /// [SpecId::FJORD] L1 cost function: + /// [OptimismSpecId::FJORD] L1 cost function: /// `estimatedSize*(baseFeeScalar*l1BaseFee*16 + blobFeeScalar*l1BlobBaseFee)/1e12` fn calculate_tx_l1_cost_fjord(&self, input: &[u8]) -> U256 { let l1_fee_scaled = self.calculate_l1_fee_scaled_ecotone(); @@ -244,7 +249,7 @@ impl L1BlockInfo { #[cfg(test)] mod tests { use super::*; - use crate::primitives::{bytes, hex}; + use revm::primitives::{bytes, hex}; #[test] fn test_data_gas_non_zero_bytes() { @@ -262,17 +267,17 @@ mod tests { // gas cost = 3 non-zero bytes * NON_ZERO_BYTE_COST + NON_ZERO_BYTE_COST * 68 // gas cost = 3 * 16 + 68 * 16 = 1136 let input = bytes!("FACADE"); - let bedrock_data_gas = l1_block_info.data_gas(&input, SpecId::BEDROCK); + let bedrock_data_gas = l1_block_info.data_gas(&input, OptimismSpecId::BEDROCK); assert_eq!(bedrock_data_gas, U256::from(1136)); // Regolith has no added 68 non zero bytes // gas cost = 3 * 16 = 48 - let regolith_data_gas = l1_block_info.data_gas(&input, SpecId::REGOLITH); + let regolith_data_gas = l1_block_info.data_gas(&input, OptimismSpecId::REGOLITH); assert_eq!(regolith_data_gas, U256::from(48)); // Fjord has a minimum compressed size of 100 bytes // gas cost = 100 * 16 = 1600 - let fjord_data_gas = l1_block_info.data_gas(&input, SpecId::FJORD); + let fjord_data_gas = l1_block_info.data_gas(&input, OptimismSpecId::FJORD); assert_eq!(fjord_data_gas, U256::from(1600)); } @@ -292,17 +297,17 @@ mod tests { // gas cost = 3 non-zero * NON_ZERO_BYTE_COST + 2 * ZERO_BYTE_COST + NON_ZERO_BYTE_COST * 68 // gas cost = 3 * 16 + 2 * 4 + 68 * 16 = 1144 let input = bytes!("FA00CA00DE"); - let bedrock_data_gas = l1_block_info.data_gas(&input, SpecId::BEDROCK); + let bedrock_data_gas = l1_block_info.data_gas(&input, OptimismSpecId::BEDROCK); assert_eq!(bedrock_data_gas, U256::from(1144)); // Regolith has no added 68 non zero bytes // gas cost = 3 * 16 + 2 * 4 = 56 - let regolith_data_gas = l1_block_info.data_gas(&input, SpecId::REGOLITH); + let regolith_data_gas = l1_block_info.data_gas(&input, OptimismSpecId::REGOLITH); assert_eq!(regolith_data_gas, U256::from(56)); // Fjord has a minimum compressed size of 100 bytes // gas cost = 100 * 16 = 1600 - let fjord_data_gas = l1_block_info.data_gas(&input, SpecId::FJORD); + let fjord_data_gas = l1_block_info.data_gas(&input, OptimismSpecId::FJORD); assert_eq!(fjord_data_gas, U256::from(1600)); } @@ -316,17 +321,17 @@ mod tests { }; let input = bytes!("FACADE"); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::REGOLITH); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::REGOLITH); assert_eq!(gas_cost, U256::from(1048)); // Zero rollup data gas cost should result in zero let input = bytes!(""); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::REGOLITH); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::REGOLITH); assert_eq!(gas_cost, U256::ZERO); // Deposit transactions with the EIP-2718 type of 0x7F should result in zero let input = bytes!("7FFACADE"); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::REGOLITH); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::REGOLITH); assert_eq!(gas_cost, U256::ZERO); } @@ -345,23 +350,23 @@ mod tests { // = (16 * 3) * (1000 * 16 * 1000 + 1000 * 1000) / (16 * 1e6) // = 51 let input = bytes!("FACADE"); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::ECOTONE); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::ECOTONE); assert_eq!(gas_cost, U256::from(51)); // Zero rollup data gas cost should result in zero let input = bytes!(""); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::ECOTONE); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::ECOTONE); assert_eq!(gas_cost, U256::ZERO); // Deposit transactions with the EIP-2718 type of 0x7F should result in zero let input = bytes!("7FFACADE"); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::ECOTONE); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::ECOTONE); assert_eq!(gas_cost, U256::ZERO); // If the scalars are empty, the bedrock cost function should be used. l1_block_info.empty_scalars = true; let input = bytes!("FACADE"); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::ECOTONE); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::ECOTONE); assert_eq!(gas_cost, U256::from(1048)); } @@ -386,7 +391,7 @@ mod tests { // l1Cost = estimatedSize * l1FeeScaled / 1e12 // = 100e6 * 17 / 1e6 // = 1700 - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::FJORD); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::FJORD); assert_eq!(gas_cost, U256::from(1700)); // fastLzSize = 202 @@ -397,17 +402,17 @@ mod tests { // l1Cost = estimatedSize * l1FeeScaled / 1e12 // = 126387400 * 17 / 1e6 // = 2148 - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::FJORD); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::FJORD); assert_eq!(gas_cost, U256::from(2148)); // Zero rollup data gas cost should result in zero let input = bytes!(""); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::FJORD); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::FJORD); assert_eq!(gas_cost, U256::ZERO); // Deposit transactions with the EIP-2718 type of 0x7F should result in zero let input = bytes!("7FFACADE"); - let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, SpecId::FJORD); + let gas_cost = l1_block_info.calculate_tx_l1_cost(&input, OptimismSpecId::FJORD); assert_eq!(gas_cost, U256::ZERO); } @@ -438,7 +443,7 @@ mod tests { // test - let data_gas = l1_block_info.data_gas(TX, SpecId::FJORD); + let data_gas = l1_block_info.data_gas(TX, OptimismSpecId::FJORD); assert_eq!(data_gas, expected_data_gas); diff --git a/crates/optimism/src/lib.rs b/crates/optimism/src/lib.rs new file mode 100644 index 0000000000..c53a2a25db --- /dev/null +++ b/crates/optimism/src/lib.rs @@ -0,0 +1,83 @@ +//! Optimism-specific constants, types, and helpers. +#![cfg_attr(not(test), warn(unused_crate_dependencies))] +#![cfg_attr(not(feature = "std"), no_std)] + +#[cfg(not(feature = "std"))] +extern crate alloc as std; + +mod bn128; +mod env; +mod fast_lz; +mod handler_register; +mod l1block; +mod result; +mod spec; + +pub use handler_register::{ + deduct_caller, end, last_frame_return, load_accounts, load_precompiles, + optimism_handle_register, output, refund, reward_beneficiary, validate_env, + validate_tx_against_state, +}; +pub use l1block::{L1BlockInfo, BASE_FEE_RECIPIENT, L1_BLOCK_CONTRACT, L1_FEE_RECIPIENT}; +pub use result::{OptimismHaltReason, OptimismInvalidTransaction}; +use revm::primitives::{Bytes, TransactionValidation, B256}; +pub use spec::*; + +pub trait OptimismContext { + /// A reference to the cached L1 block info. + fn l1_block_info(&self) -> Option<&L1BlockInfo>; + + /// A mutable reference to the cached L1 block info. + fn l1_block_info_mut(&mut self) -> &mut Option; +} + +/// Trait for an Optimism transaction. +pub trait OptimismTransaction { + /// The source hash is used to make sure that deposit transactions do + /// not have identical hashes. + /// + /// L1 originated deposit transaction source hashes are computed using + /// the hash of the l1 block hash and the l1 log index. + /// L1 attributes deposit source hashes are computed with the l1 block + /// hash and the sequence number = l2 block number - l2 epoch start + /// block number. + /// + /// These two deposit transaction sources specify a domain in the outer + /// hash so there are no collisions. + fn source_hash(&self) -> Option<&B256>; + /// The amount to increase the balance of the `from` account as part of + /// a deposit transaction. This is unconditional and is applied to the + /// `from` account even if the deposit transaction fails since + /// the deposit is pre-paid on L1. + fn mint(&self) -> Option<&u128>; + /// Whether or not the transaction is a system transaction. + fn is_system_transaction(&self) -> Option; + /// An enveloped EIP-2718 typed transaction. This is used + /// to compute the L1 tx cost using the L1 block info, as + /// opposed to requiring downstream apps to compute the cost + /// externally. + fn enveloped_tx(&self) -> Option; +} + +/// Trait for an Optimism chain spec. +pub trait OptimismWiring: + revm::EvmWiring< + ChainContext: OptimismContext, + Hardfork = OptimismSpecId, + HaltReason = OptimismHaltReason, + Transaction: OptimismTransaction + + TransactionValidation, +> +{ +} + +impl OptimismWiring for EvmWiringT where + EvmWiringT: revm::EvmWiring< + ChainContext: OptimismContext, + Hardfork = OptimismSpecId, + HaltReason = OptimismHaltReason, + Transaction: OptimismTransaction + + TransactionValidation, + > +{ +} diff --git a/crates/optimism/src/result.rs b/crates/optimism/src/result.rs new file mode 100644 index 0000000000..63093fc9f5 --- /dev/null +++ b/crates/optimism/src/result.rs @@ -0,0 +1,86 @@ +use core::fmt::Display; +use revm::primitives::{EVMError, HaltReason, InvalidTransaction}; + +/// Optimism transaction validation error. +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +pub enum OptimismInvalidTransaction { + Base(InvalidTransaction), + /// System transactions are not supported post-regolith hardfork. + /// + /// Before the Regolith hardfork, there was a special field in the `Deposit` transaction + /// type that differentiated between `system` and `user` deposit transactions. This field + /// was deprecated in the Regolith hardfork, and this error is thrown if a `Deposit` transaction + /// is found with this field set to `true` after the hardfork activation. + /// + /// In addition, this error is internal, and bubbles up into a [OptimismHaltReason::FailedDeposit] error + /// in the `revm` handler for the consumer to easily handle. This is due to a state transition + /// rule on OP Stack chains where, if for any reason a deposit transaction fails, the transaction + /// must still be included in the block, the sender nonce is bumped, the `mint` value persists, and + /// special gas accounting rules are applied. Normally on L1, [EVMError::Transaction] errors + /// are cause for non-inclusion, so a special [HaltReason] variant was introduced to handle this + /// case for failed deposit transactions. + DepositSystemTxPostRegolith, + /// Deposit transaction haults bubble up to the global main return handler, wiping state and + /// only increasing the nonce + persisting the mint value. + /// + /// This is a catch-all error for any deposit transaction that is results in a [HaltReason] error + /// post-regolith hardfork. This allows for a consumer to easily handle special cases where + /// a deposit transaction fails during validation, but must still be included in the block. + /// + /// In addition, this error is internal, and bubbles up into a [OptimismHaltReason::FailedDeposit] error + /// in the `revm` handler for the consumer to easily handle. This is due to a state transition + /// rule on OP Stack chains where, if for any reason a deposit transaction fails, the transaction + /// must still be included in the block, the sender nonce is bumped, the `mint` value persists, and + /// special gas accounting rules are applied. Normally on L1, [EVMError::Transaction] errors + /// are cause for non-inclusion, so a special [HaltReason] variant was introduced to handle this + /// case for failed deposit transactions. + HaltedDepositPostRegolith, +} + +impl Display for OptimismInvalidTransaction { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + Self::Base(error) => error.fmt(f), + Self::DepositSystemTxPostRegolith => { + write!( + f, + "deposit system transactions post regolith hardfork are not supported" + ) + } + Self::HaltedDepositPostRegolith => { + write!( + f, + "deposit transaction halted post-regolith; error will be bubbled up to main return handler" + ) + } + } + } +} + +impl core::error::Error for OptimismInvalidTransaction {} + +impl From for OptimismInvalidTransaction { + fn from(value: InvalidTransaction) -> Self { + Self::Base(value) + } +} + +impl From for EVMError { + fn from(value: OptimismInvalidTransaction) -> Self { + Self::Transaction(value) + } +} + +#[derive(Clone, Debug, PartialEq, Eq, Hash)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +pub enum OptimismHaltReason { + Base(HaltReason), + FailedDeposit, +} + +impl From for OptimismHaltReason { + fn from(value: HaltReason) -> Self { + Self::Base(value) + } +} diff --git a/crates/optimism/src/spec.rs b/crates/optimism/src/spec.rs new file mode 100644 index 0000000000..370e855f39 --- /dev/null +++ b/crates/optimism/src/spec.rs @@ -0,0 +1,852 @@ +use crate::{ + env::TxEnv, optimism_handle_register, L1BlockInfo, OptimismContext, OptimismHaltReason, +}; +use core::marker::PhantomData; +use revm::{ + handler::register::HandleRegisters, + precompile::PrecompileSpecId, + primitives::{db::Database, BlockEnv, EvmWiring, Spec, SpecId}, + EvmHandler, +}; + +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct OptimismEvmWiring { + _phantom: PhantomData<(DB, EXT)>, +} + +impl EvmWiring for OptimismEvmWiring { + type Block = BlockEnv; + type Database = DB; + type ChainContext = Context; + type ExternalContext = EXT; + type Hardfork = OptimismSpecId; + type HaltReason = OptimismHaltReason; + type Transaction = TxEnv; +} + +impl revm::EvmWiring for OptimismEvmWiring { + fn handler<'evm>(hardfork: Self::Hardfork) -> EvmHandler<'evm, Self> + where + DB: Database, + { + let mut handler = EvmHandler::mainnet_with_spec(hardfork); + + handler.append_handler_register(HandleRegisters::Plain(optimism_handle_register::)); + + handler + } +} + +/// Context for the Optimism chain. +#[derive(Clone, Default, Debug, PartialEq, Eq)] +pub struct Context { + l1_block_info: Option, +} + +impl OptimismContext for Context { + fn l1_block_info(&self) -> Option<&L1BlockInfo> { + self.l1_block_info.as_ref() + } + + fn l1_block_info_mut(&mut self) -> &mut Option { + &mut self.l1_block_info + } +} + +/// Specification IDs for the optimism blockchain. +#[repr(u8)] +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, enumn::N)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[allow(non_camel_case_types)] +pub enum OptimismSpecId { + FRONTIER = 0, + FRONTIER_THAWING = 1, + HOMESTEAD = 2, + DAO_FORK = 3, + TANGERINE = 4, + SPURIOUS_DRAGON = 5, + BYZANTIUM = 6, + CONSTANTINOPLE = 7, + PETERSBURG = 8, + ISTANBUL = 9, + MUIR_GLACIER = 10, + BERLIN = 11, + LONDON = 12, + ARROW_GLACIER = 13, + GRAY_GLACIER = 14, + MERGE = 15, + BEDROCK = 16, + REGOLITH = 17, + SHANGHAI = 18, + CANYON = 19, + CANCUN = 20, + ECOTONE = 21, + FJORD = 22, + GRANITE = 23, + PRAGUE = 24, + PRAGUE_EOF = 25, + #[default] + LATEST = u8::MAX, +} + +impl OptimismSpecId { + /// Returns the `OptimismSpecId` for the given `u8`. + #[inline] + pub fn try_from_u8(spec_id: u8) -> Option { + Self::n(spec_id) + } + + /// Returns `true` if the given specification ID is enabled in this spec. + #[inline] + pub const fn is_enabled_in(self, other: Self) -> bool { + Self::enabled(self, other) + } + + /// Returns `true` if the given specification ID is enabled in this spec. + #[inline] + pub const fn enabled(our: Self, other: Self) -> bool { + our as u8 >= other as u8 + } + + /// Converts the `OptimismSpecId` into a `SpecId`. + const fn into_eth_spec_id(self) -> SpecId { + match self { + OptimismSpecId::FRONTIER => SpecId::FRONTIER, + OptimismSpecId::FRONTIER_THAWING => SpecId::FRONTIER_THAWING, + OptimismSpecId::HOMESTEAD => SpecId::HOMESTEAD, + OptimismSpecId::DAO_FORK => SpecId::DAO_FORK, + OptimismSpecId::TANGERINE => SpecId::TANGERINE, + OptimismSpecId::SPURIOUS_DRAGON => SpecId::SPURIOUS_DRAGON, + OptimismSpecId::BYZANTIUM => SpecId::BYZANTIUM, + OptimismSpecId::CONSTANTINOPLE => SpecId::CONSTANTINOPLE, + OptimismSpecId::PETERSBURG => SpecId::PETERSBURG, + OptimismSpecId::ISTANBUL => SpecId::ISTANBUL, + OptimismSpecId::MUIR_GLACIER => SpecId::MUIR_GLACIER, + OptimismSpecId::BERLIN => SpecId::BERLIN, + OptimismSpecId::LONDON => SpecId::LONDON, + OptimismSpecId::ARROW_GLACIER => SpecId::ARROW_GLACIER, + OptimismSpecId::GRAY_GLACIER => SpecId::GRAY_GLACIER, + OptimismSpecId::MERGE | OptimismSpecId::BEDROCK | OptimismSpecId::REGOLITH => { + SpecId::MERGE + } + OptimismSpecId::SHANGHAI | OptimismSpecId::CANYON => SpecId::SHANGHAI, + OptimismSpecId::CANCUN + | OptimismSpecId::ECOTONE + | OptimismSpecId::FJORD + | OptimismSpecId::GRANITE => SpecId::CANCUN, + OptimismSpecId::PRAGUE => SpecId::PRAGUE, + OptimismSpecId::PRAGUE_EOF => SpecId::PRAGUE_EOF, + OptimismSpecId::LATEST => SpecId::LATEST, + } + } +} + +impl From for SpecId { + fn from(value: OptimismSpecId) -> Self { + value.into_eth_spec_id() + } +} + +impl From for OptimismSpecId { + fn from(value: SpecId) -> Self { + match value { + SpecId::FRONTIER => Self::FRONTIER, + SpecId::FRONTIER_THAWING => Self::FRONTIER_THAWING, + SpecId::HOMESTEAD => Self::HOMESTEAD, + SpecId::DAO_FORK => Self::DAO_FORK, + SpecId::TANGERINE => Self::TANGERINE, + SpecId::SPURIOUS_DRAGON => Self::SPURIOUS_DRAGON, + SpecId::BYZANTIUM => Self::BYZANTIUM, + SpecId::CONSTANTINOPLE => Self::CONSTANTINOPLE, + SpecId::PETERSBURG => Self::PETERSBURG, + SpecId::ISTANBUL => Self::ISTANBUL, + SpecId::MUIR_GLACIER => Self::MUIR_GLACIER, + SpecId::BERLIN => Self::BERLIN, + SpecId::LONDON => Self::LONDON, + SpecId::ARROW_GLACIER => Self::ARROW_GLACIER, + SpecId::GRAY_GLACIER => Self::GRAY_GLACIER, + SpecId::MERGE => Self::MERGE, + SpecId::SHANGHAI => Self::SHANGHAI, + SpecId::CANCUN => Self::CANCUN, + SpecId::PRAGUE => Self::PRAGUE, + SpecId::PRAGUE_EOF => Self::PRAGUE_EOF, + SpecId::LATEST => Self::LATEST, + } + } +} + +impl From for PrecompileSpecId { + fn from(value: OptimismSpecId) -> Self { + PrecompileSpecId::from_spec_id(value.into_eth_spec_id()) + } +} + +/// String identifiers for Optimism hardforks. +pub mod id { + // Re-export the Ethereum hardforks. + pub use revm::primitives::specification::id::*; + + pub const BEDROCK: &str = "Bedrock"; + pub const REGOLITH: &str = "Regolith"; + pub const CANYON: &str = "Canyon"; + pub const ECOTONE: &str = "Ecotone"; + pub const FJORD: &str = "Fjord"; + pub const GRANITE: &str = "Granite"; +} + +impl From<&str> for OptimismSpecId { + fn from(name: &str) -> Self { + match name { + id::FRONTIER => Self::FRONTIER, + id::FRONTIER_THAWING => Self::FRONTIER_THAWING, + id::HOMESTEAD => Self::HOMESTEAD, + id::DAO_FORK => Self::DAO_FORK, + id::TANGERINE => Self::TANGERINE, + id::SPURIOUS_DRAGON => Self::SPURIOUS_DRAGON, + id::BYZANTIUM => Self::BYZANTIUM, + id::CONSTANTINOPLE => Self::CONSTANTINOPLE, + id::PETERSBURG => Self::PETERSBURG, + id::ISTANBUL => Self::ISTANBUL, + id::MUIR_GLACIER => Self::MUIR_GLACIER, + id::BERLIN => Self::BERLIN, + id::LONDON => Self::LONDON, + id::ARROW_GLACIER => Self::ARROW_GLACIER, + id::GRAY_GLACIER => Self::GRAY_GLACIER, + id::MERGE => Self::MERGE, + id::SHANGHAI => Self::SHANGHAI, + id::CANCUN => Self::CANCUN, + id::PRAGUE => Self::PRAGUE, + id::PRAGUE_EOF => Self::PRAGUE_EOF, + id::BEDROCK => Self::BEDROCK, + id::REGOLITH => Self::REGOLITH, + id::CANYON => Self::CANYON, + id::ECOTONE => Self::ECOTONE, + id::FJORD => Self::FJORD, + id::LATEST => Self::LATEST, + _ => Self::LATEST, + } + } +} + +impl From for &'static str { + fn from(value: OptimismSpecId) -> Self { + match value { + OptimismSpecId::FRONTIER + | OptimismSpecId::FRONTIER_THAWING + | OptimismSpecId::HOMESTEAD + | OptimismSpecId::DAO_FORK + | OptimismSpecId::TANGERINE + | OptimismSpecId::SPURIOUS_DRAGON + | OptimismSpecId::BYZANTIUM + | OptimismSpecId::CONSTANTINOPLE + | OptimismSpecId::PETERSBURG + | OptimismSpecId::ISTANBUL + | OptimismSpecId::MUIR_GLACIER + | OptimismSpecId::BERLIN + | OptimismSpecId::LONDON + | OptimismSpecId::ARROW_GLACIER + | OptimismSpecId::GRAY_GLACIER + | OptimismSpecId::MERGE + | OptimismSpecId::SHANGHAI + | OptimismSpecId::CANCUN + | OptimismSpecId::PRAGUE + | OptimismSpecId::PRAGUE_EOF => value.into_eth_spec_id().into(), + OptimismSpecId::BEDROCK => id::BEDROCK, + OptimismSpecId::REGOLITH => id::REGOLITH, + OptimismSpecId::CANYON => id::CANYON, + OptimismSpecId::ECOTONE => id::ECOTONE, + OptimismSpecId::FJORD => id::FJORD, + OptimismSpecId::GRANITE => id::GRANITE, + OptimismSpecId::LATEST => id::LATEST, + } + } +} + +pub trait OptimismSpec: Spec + Sized + 'static { + /// The specification ID for optimism. + const OPTIMISM_SPEC_ID: OptimismSpecId; + + /// Returns whether the provided `OptimismSpec` is enabled by this spec. + #[inline] + fn optimism_enabled(spec_id: OptimismSpecId) -> bool { + OptimismSpecId::enabled(Self::OPTIMISM_SPEC_ID, spec_id) + } +} + +macro_rules! spec { + ($spec_id:ident, $spec_name:ident) => { + #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)] + pub struct $spec_name; + + impl OptimismSpec for $spec_name { + const OPTIMISM_SPEC_ID: OptimismSpecId = OptimismSpecId::$spec_id; + } + + impl Spec for $spec_name { + const SPEC_ID: SpecId = $spec_name::OPTIMISM_SPEC_ID.into_eth_spec_id(); + } + }; +} + +spec!(FRONTIER, FrontierSpec); +// FRONTIER_THAWING no EVM spec change +spec!(HOMESTEAD, HomesteadSpec); +// DAO_FORK no EVM spec change +spec!(TANGERINE, TangerineSpec); +spec!(SPURIOUS_DRAGON, SpuriousDragonSpec); +spec!(BYZANTIUM, ByzantiumSpec); +// CONSTANTINOPLE was overridden with PETERSBURG +spec!(PETERSBURG, PetersburgSpec); +spec!(ISTANBUL, IstanbulSpec); +// MUIR_GLACIER no EVM spec change +spec!(BERLIN, BerlinSpec); +spec!(LONDON, LondonSpec); +// ARROW_GLACIER no EVM spec change +// GRAY_GLACIER no EVM spec change +spec!(MERGE, MergeSpec); +spec!(SHANGHAI, ShanghaiSpec); +spec!(CANCUN, CancunSpec); +spec!(PRAGUE, PragueSpec); +spec!(PRAGUE_EOF, PragueEofSpec); + +spec!(LATEST, LatestSpec); + +// Optimism Hardforks +spec!(BEDROCK, BedrockSpec); +spec!(REGOLITH, RegolithSpec); +spec!(CANYON, CanyonSpec); +spec!(ECOTONE, EcotoneSpec); +spec!(FJORD, FjordSpec); +spec!(GRANITE, GraniteSpec); + +#[macro_export] +macro_rules! optimism_spec_to_generic { + ($spec_id:expr, $e:expr) => {{ + // We are transitioning from var to generic spec. + match $spec_id { + $crate::OptimismSpecId::FRONTIER | $crate::OptimismSpecId::FRONTIER_THAWING => { + use $crate::FrontierSpec as SPEC; + $e + } + $crate::OptimismSpecId::HOMESTEAD | $crate::OptimismSpecId::DAO_FORK => { + use $crate::HomesteadSpec as SPEC; + $e + } + $crate::OptimismSpecId::TANGERINE => { + use $crate::TangerineSpec as SPEC; + $e + } + $crate::OptimismSpecId::SPURIOUS_DRAGON => { + use $crate::SpuriousDragonSpec as SPEC; + $e + } + $crate::OptimismSpecId::BYZANTIUM => { + use $crate::ByzantiumSpec as SPEC; + $e + } + $crate::OptimismSpecId::PETERSBURG | $crate::OptimismSpecId::CONSTANTINOPLE => { + use $crate::PetersburgSpec as SPEC; + $e + } + $crate::OptimismSpecId::ISTANBUL | $crate::OptimismSpecId::MUIR_GLACIER => { + use $crate::IstanbulSpec as SPEC; + $e + } + $crate::OptimismSpecId::BERLIN => { + use $crate::BerlinSpec as SPEC; + $e + } + $crate::OptimismSpecId::LONDON + | $crate::OptimismSpecId::ARROW_GLACIER + | $crate::OptimismSpecId::GRAY_GLACIER => { + use $crate::LondonSpec as SPEC; + $e + } + $crate::OptimismSpecId::MERGE => { + use $crate::MergeSpec as SPEC; + $e + } + $crate::OptimismSpecId::SHANGHAI => { + use $crate::ShanghaiSpec as SPEC; + $e + } + $crate::OptimismSpecId::CANCUN => { + use $crate::CancunSpec as SPEC; + $e + } + $crate::OptimismSpecId::LATEST => { + use $crate::LatestSpec as SPEC; + $e + } + $crate::OptimismSpecId::PRAGUE => { + use $crate::PragueSpec as SPEC; + $e + } + $crate::OptimismSpecId::PRAGUE_EOF => { + use $crate::PragueEofSpec as SPEC; + $e + } + $crate::OptimismSpecId::BEDROCK => { + use $crate::BedrockSpec as SPEC; + $e + } + $crate::OptimismSpecId::REGOLITH => { + use $crate::RegolithSpec as SPEC; + $e + } + $crate::OptimismSpecId::CANYON => { + use $crate::CanyonSpec as SPEC; + $e + } + $crate::OptimismSpecId::GRANITE => { + use $crate::GraniteSpec as SPEC; + $e + } + $crate::OptimismSpecId::ECOTONE => { + use $crate::EcotoneSpec as SPEC; + $e + } + $crate::OptimismSpecId::FJORD => { + use $crate::FjordSpec as SPEC; + $e + } + } + }}; +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn optimism_spec_to_generic() { + optimism_spec_to_generic!( + OptimismSpecId::FRONTIER, + assert_eq!(SPEC::SPEC_ID, SpecId::FRONTIER) + ); + optimism_spec_to_generic!( + OptimismSpecId::FRONTIER_THAWING, + assert_eq!(SPEC::SPEC_ID, SpecId::FRONTIER) + ); + optimism_spec_to_generic!( + OptimismSpecId::HOMESTEAD, + assert_eq!(SPEC::SPEC_ID, SpecId::HOMESTEAD) + ); + optimism_spec_to_generic!( + OptimismSpecId::DAO_FORK, + assert_eq!(SPEC::SPEC_ID, SpecId::HOMESTEAD) + ); + optimism_spec_to_generic!( + OptimismSpecId::TANGERINE, + assert_eq!(SPEC::SPEC_ID, SpecId::TANGERINE) + ); + optimism_spec_to_generic!( + OptimismSpecId::SPURIOUS_DRAGON, + assert_eq!(SPEC::SPEC_ID, SpecId::SPURIOUS_DRAGON) + ); + optimism_spec_to_generic!( + OptimismSpecId::BYZANTIUM, + assert_eq!(SPEC::SPEC_ID, SpecId::BYZANTIUM) + ); + optimism_spec_to_generic!( + OptimismSpecId::CONSTANTINOPLE, + assert_eq!(SPEC::SPEC_ID, SpecId::PETERSBURG) + ); + optimism_spec_to_generic!( + OptimismSpecId::PETERSBURG, + assert_eq!(SPEC::SPEC_ID, SpecId::PETERSBURG) + ); + optimism_spec_to_generic!( + OptimismSpecId::ISTANBUL, + assert_eq!(SPEC::SPEC_ID, SpecId::ISTANBUL) + ); + optimism_spec_to_generic!( + OptimismSpecId::MUIR_GLACIER, + assert_eq!(SPEC::SPEC_ID, SpecId::ISTANBUL) + ); + optimism_spec_to_generic!( + OptimismSpecId::BERLIN, + assert_eq!(SPEC::SPEC_ID, SpecId::BERLIN) + ); + optimism_spec_to_generic!( + OptimismSpecId::LONDON, + assert_eq!(SPEC::SPEC_ID, SpecId::LONDON) + ); + optimism_spec_to_generic!( + OptimismSpecId::ARROW_GLACIER, + assert_eq!(SPEC::SPEC_ID, SpecId::LONDON) + ); + optimism_spec_to_generic!( + OptimismSpecId::GRAY_GLACIER, + assert_eq!(SPEC::SPEC_ID, SpecId::LONDON) + ); + optimism_spec_to_generic!( + OptimismSpecId::MERGE, + assert_eq!(SPEC::SPEC_ID, SpecId::MERGE) + ); + optimism_spec_to_generic!( + OptimismSpecId::BEDROCK, + assert_eq!(SPEC::SPEC_ID, SpecId::MERGE) + ); + optimism_spec_to_generic!( + OptimismSpecId::REGOLITH, + assert_eq!(SPEC::SPEC_ID, SpecId::MERGE) + ); + optimism_spec_to_generic!( + OptimismSpecId::SHANGHAI, + assert_eq!(SPEC::SPEC_ID, SpecId::SHANGHAI) + ); + optimism_spec_to_generic!( + OptimismSpecId::CANYON, + assert_eq!(SPEC::SPEC_ID, SpecId::SHANGHAI) + ); + optimism_spec_to_generic!( + OptimismSpecId::CANCUN, + assert_eq!(SPEC::SPEC_ID, SpecId::CANCUN) + ); + optimism_spec_to_generic!( + OptimismSpecId::ECOTONE, + assert_eq!(SPEC::SPEC_ID, SpecId::CANCUN) + ); + optimism_spec_to_generic!( + OptimismSpecId::FJORD, + assert_eq!(SPEC::SPEC_ID, SpecId::CANCUN) + ); + optimism_spec_to_generic!( + OptimismSpecId::PRAGUE, + assert_eq!(SPEC::SPEC_ID, SpecId::PRAGUE) + ); + optimism_spec_to_generic!( + OptimismSpecId::LATEST, + assert_eq!(SPEC::SPEC_ID, SpecId::LATEST) + ); + optimism_spec_to_generic!( + OptimismSpecId::FRONTIER, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::FRONTIER) + ); + optimism_spec_to_generic!( + OptimismSpecId::FRONTIER_THAWING, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::FRONTIER) + ); + optimism_spec_to_generic!( + OptimismSpecId::HOMESTEAD, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::HOMESTEAD) + ); + optimism_spec_to_generic!( + OptimismSpecId::DAO_FORK, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::HOMESTEAD) + ); + optimism_spec_to_generic!( + OptimismSpecId::TANGERINE, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::TANGERINE) + ); + optimism_spec_to_generic!( + OptimismSpecId::SPURIOUS_DRAGON, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::SPURIOUS_DRAGON) + ); + optimism_spec_to_generic!( + OptimismSpecId::BYZANTIUM, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::BYZANTIUM) + ); + optimism_spec_to_generic!( + OptimismSpecId::CONSTANTINOPLE, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::PETERSBURG) + ); + optimism_spec_to_generic!( + OptimismSpecId::PETERSBURG, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::PETERSBURG) + ); + optimism_spec_to_generic!( + OptimismSpecId::ISTANBUL, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::ISTANBUL) + ); + optimism_spec_to_generic!( + OptimismSpecId::MUIR_GLACIER, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::ISTANBUL) + ); + optimism_spec_to_generic!( + OptimismSpecId::BERLIN, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::BERLIN) + ); + optimism_spec_to_generic!( + OptimismSpecId::LONDON, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::LONDON) + ); + optimism_spec_to_generic!( + OptimismSpecId::ARROW_GLACIER, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::LONDON) + ); + optimism_spec_to_generic!( + OptimismSpecId::GRAY_GLACIER, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::LONDON) + ); + optimism_spec_to_generic!( + OptimismSpecId::MERGE, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::MERGE) + ); + optimism_spec_to_generic!( + OptimismSpecId::BEDROCK, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::BEDROCK) + ); + optimism_spec_to_generic!( + OptimismSpecId::REGOLITH, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::REGOLITH) + ); + optimism_spec_to_generic!( + OptimismSpecId::SHANGHAI, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::SHANGHAI) + ); + optimism_spec_to_generic!( + OptimismSpecId::CANYON, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::CANYON) + ); + optimism_spec_to_generic!( + OptimismSpecId::CANCUN, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::CANCUN) + ); + optimism_spec_to_generic!( + OptimismSpecId::ECOTONE, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::ECOTONE) + ); + optimism_spec_to_generic!( + OptimismSpecId::FJORD, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::FJORD) + ); + optimism_spec_to_generic!( + OptimismSpecId::GRANITE, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::GRANITE) + ); + optimism_spec_to_generic!( + OptimismSpecId::PRAGUE, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::PRAGUE) + ); + optimism_spec_to_generic!( + OptimismSpecId::PRAGUE_EOF, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::PRAGUE_EOF) + ); + optimism_spec_to_generic!( + OptimismSpecId::LATEST, + assert_eq!(SPEC::OPTIMISM_SPEC_ID, OptimismSpecId::LATEST) + ); + } + + #[test] + fn test_bedrock_post_merge_hardforks() { + assert!(BedrockSpec::optimism_enabled(OptimismSpecId::MERGE)); + assert!(!BedrockSpec::optimism_enabled(OptimismSpecId::SHANGHAI)); + assert!(!BedrockSpec::optimism_enabled(OptimismSpecId::CANCUN)); + assert!(!BedrockSpec::optimism_enabled(OptimismSpecId::LATEST)); + assert!(BedrockSpec::optimism_enabled(OptimismSpecId::BEDROCK)); + assert!(!BedrockSpec::optimism_enabled(OptimismSpecId::REGOLITH)); + } + + #[test] + fn test_regolith_post_merge_hardforks() { + assert!(RegolithSpec::optimism_enabled(OptimismSpecId::MERGE)); + assert!(!RegolithSpec::optimism_enabled(OptimismSpecId::SHANGHAI)); + assert!(!RegolithSpec::optimism_enabled(OptimismSpecId::CANCUN)); + assert!(!RegolithSpec::optimism_enabled(OptimismSpecId::LATEST)); + assert!(RegolithSpec::optimism_enabled(OptimismSpecId::BEDROCK)); + assert!(RegolithSpec::optimism_enabled(OptimismSpecId::REGOLITH)); + } + + #[test] + fn test_bedrock_post_merge_hardforks_spec_id() { + assert!(OptimismSpecId::enabled( + OptimismSpecId::BEDROCK, + OptimismSpecId::MERGE + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::BEDROCK, + OptimismSpecId::SHANGHAI + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::BEDROCK, + OptimismSpecId::CANCUN + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::BEDROCK, + OptimismSpecId::LATEST + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::BEDROCK, + OptimismSpecId::BEDROCK + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::BEDROCK, + OptimismSpecId::REGOLITH + )); + } + + #[test] + fn test_regolith_post_merge_hardforks_spec_id() { + assert!(OptimismSpecId::enabled( + OptimismSpecId::REGOLITH, + OptimismSpecId::MERGE + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::REGOLITH, + OptimismSpecId::SHANGHAI + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::REGOLITH, + OptimismSpecId::CANCUN + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::REGOLITH, + OptimismSpecId::LATEST + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::REGOLITH, + OptimismSpecId::BEDROCK + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::REGOLITH, + OptimismSpecId::REGOLITH + )); + } + + #[test] + fn test_canyon_post_merge_hardforks() { + assert!(CanyonSpec::optimism_enabled(OptimismSpecId::MERGE)); + assert!(CanyonSpec::optimism_enabled(OptimismSpecId::SHANGHAI)); + assert!(!CanyonSpec::optimism_enabled(OptimismSpecId::CANCUN)); + assert!(!CanyonSpec::optimism_enabled(OptimismSpecId::LATEST)); + assert!(CanyonSpec::optimism_enabled(OptimismSpecId::BEDROCK)); + assert!(CanyonSpec::optimism_enabled(OptimismSpecId::REGOLITH)); + assert!(CanyonSpec::optimism_enabled(OptimismSpecId::CANYON)); + } + + #[test] + fn test_canyon_post_merge_hardforks_spec_id() { + assert!(OptimismSpecId::enabled( + OptimismSpecId::CANYON, + OptimismSpecId::MERGE + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::CANYON, + OptimismSpecId::SHANGHAI + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::CANYON, + OptimismSpecId::CANCUN + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::CANYON, + OptimismSpecId::LATEST + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::CANYON, + OptimismSpecId::BEDROCK + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::CANYON, + OptimismSpecId::REGOLITH + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::CANYON, + OptimismSpecId::CANYON + )); + } + + #[test] + fn test_ecotone_post_merge_hardforks() { + assert!(EcotoneSpec::optimism_enabled(OptimismSpecId::MERGE)); + assert!(EcotoneSpec::optimism_enabled(OptimismSpecId::SHANGHAI)); + assert!(EcotoneSpec::optimism_enabled(OptimismSpecId::CANCUN)); + assert!(!EcotoneSpec::optimism_enabled(OptimismSpecId::LATEST)); + assert!(EcotoneSpec::optimism_enabled(OptimismSpecId::BEDROCK)); + assert!(EcotoneSpec::optimism_enabled(OptimismSpecId::REGOLITH)); + assert!(EcotoneSpec::optimism_enabled(OptimismSpecId::CANYON)); + assert!(EcotoneSpec::optimism_enabled(OptimismSpecId::ECOTONE)); + } + + #[test] + fn test_ecotone_post_merge_hardforks_spec_id() { + assert!(OptimismSpecId::enabled( + OptimismSpecId::ECOTONE, + OptimismSpecId::MERGE + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::ECOTONE, + OptimismSpecId::SHANGHAI + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::ECOTONE, + OptimismSpecId::CANCUN + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::ECOTONE, + OptimismSpecId::LATEST + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::ECOTONE, + OptimismSpecId::BEDROCK + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::ECOTONE, + OptimismSpecId::REGOLITH + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::ECOTONE, + OptimismSpecId::CANYON + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::ECOTONE, + OptimismSpecId::ECOTONE + )); + } + + #[test] + fn test_fjord_post_merge_hardforks() { + assert!(FjordSpec::optimism_enabled(OptimismSpecId::MERGE)); + assert!(FjordSpec::optimism_enabled(OptimismSpecId::SHANGHAI)); + assert!(FjordSpec::optimism_enabled(OptimismSpecId::CANCUN)); + assert!(!FjordSpec::optimism_enabled(OptimismSpecId::LATEST)); + assert!(FjordSpec::optimism_enabled(OptimismSpecId::BEDROCK)); + assert!(FjordSpec::optimism_enabled(OptimismSpecId::REGOLITH)); + assert!(FjordSpec::optimism_enabled(OptimismSpecId::CANYON)); + assert!(FjordSpec::optimism_enabled(OptimismSpecId::ECOTONE)); + assert!(FjordSpec::optimism_enabled(OptimismSpecId::FJORD)); + } + + #[test] + fn test_fjord_post_merge_hardforks_spec_id() { + assert!(OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::MERGE + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::SHANGHAI + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::CANCUN + )); + assert!(!OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::LATEST + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::BEDROCK + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::REGOLITH + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::CANYON + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::ECOTONE + )); + assert!(OptimismSpecId::enabled( + OptimismSpecId::FJORD, + OptimismSpecId::FJORD + )); + } +} diff --git a/crates/precompile/Cargo.toml b/crates/precompile/Cargo.toml index f30ae269c0..04cb1104eb 100644 --- a/crates/precompile/Cargo.toml +++ b/crates/precompile/Cargo.toml @@ -86,16 +86,6 @@ std = [ hashbrown = ["revm-primitives/hashbrown"] asm-keccak = ["revm-primitives/asm-keccak"] -optimism = ["revm-primitives/optimism", "secp256r1"] -# Optimism default handler enabled Optimism handler register by default in EvmBuilder. -optimism-default-handler = [ - "optimism", - "revm-primitives/optimism-default-handler", -] -negate-optimism-default-handler = [ - "revm-primitives/negate-optimism-default-handler", -] - # Enables the p256verify precompile. secp256r1 = ["dep:p256"] diff --git a/crates/precompile/benches/bench.rs b/crates/precompile/benches/bench.rs index faae103a95..366b6331a2 100644 --- a/crates/precompile/benches/bench.rs +++ b/crates/precompile/benches/bench.rs @@ -9,7 +9,7 @@ use revm_precompile::{ secp256k1::ec_recover_run, Bytes, }; -use revm_primitives::{hex, keccak256, Env, U256, VERSIONED_HASH_VERSION_KZG}; +use revm_primitives::{hex, keccak256, CfgEnv, U256, VERSIONED_HASH_VERSION_KZG}; use secp256k1::{Message, SecretKey, SECP256K1}; use sha2::{Digest, Sha256}; @@ -106,7 +106,7 @@ pub fn benchmark_crypto_precompiles(c: &mut Criterion) { let kzg_input = [versioned_hash, z, y, commitment, proof].concat().into(); let gas = 50000; - let env = Env::default(); + let env = CfgEnv::default(); let output = run(&kzg_input, gas, &env).unwrap(); println!("gas used by kzg precompile: {:?}", output.gas_used); diff --git a/crates/precompile/src/fatal_precompile.rs b/crates/precompile/src/fatal_precompile.rs index 4dfaee8db3..8a01cd58a1 100644 --- a/crates/precompile/src/fatal_precompile.rs +++ b/crates/precompile/src/fatal_precompile.rs @@ -1,5 +1,5 @@ use crate::primitives::{ - Address, Bytes, Env, Precompile, PrecompileErrors, PrecompileResult, StatefulPrecompile, + Address, Bytes, CfgEnv, Precompile, PrecompileErrors, PrecompileResult, StatefulPrecompile, }; use crate::PrecompileWithAddress; use std::{string::String, sync::Arc}; @@ -27,7 +27,7 @@ impl FatalPrecompile { } impl StatefulPrecompile for FatalPrecompile { - fn call(&self, _: &Bytes, _: u64, _: &Env) -> PrecompileResult { + fn call(&self, _: &Bytes, _: u64, _: &CfgEnv) -> PrecompileResult { Err(PrecompileErrors::Fatal { msg: self.msg.clone(), }) diff --git a/crates/precompile/src/kzg_point_evaluation.rs b/crates/precompile/src/kzg_point_evaluation.rs index 6f295219a6..98c4fe10d3 100644 --- a/crates/precompile/src/kzg_point_evaluation.rs +++ b/crates/precompile/src/kzg_point_evaluation.rs @@ -6,7 +6,7 @@ cfg_if::cfg_if! { use kzg_rs::{Bytes32, Bytes48, KzgProof, KzgSettings}; } } -use revm_primitives::{hex_literal::hex, Bytes, Env, PrecompileOutput}; +use revm_primitives::{hex_literal::hex, Bytes, CfgEnv, PrecompileOutput}; use sha2::{Digest, Sha256}; pub const POINT_EVALUATION: PrecompileWithAddress = @@ -30,7 +30,7 @@ pub const RETURN_VALUE: &[u8; 64] = &hex!( /// | versioned_hash | z | y | commitment | proof | /// | 32 | 32 | 32 | 48 | 48 | /// with z and y being padded 32 byte big endian values -pub fn run(input: &Bytes, gas_limit: u64, env: &Env) -> PrecompileResult { +pub fn run(input: &Bytes, gas_limit: u64, cfg: &CfgEnv) -> PrecompileResult { if gas_limit < GAS_COST { return Err(Error::OutOfGas.into()); } @@ -52,7 +52,7 @@ pub fn run(input: &Bytes, gas_limit: u64, env: &Env) -> PrecompileResult { let z = as_bytes32(&input[32..64]); let y = as_bytes32(&input[64..96]); let proof = as_bytes48(&input[144..192]); - if !verify_kzg_proof(commitment, z, y, proof, env.cfg.kzg_settings.get()) { + if !verify_kzg_proof(commitment, z, y, proof, cfg.kzg_settings.get()) { return Err(Error::BlobVerifyKzgProofFailed.into()); } @@ -118,7 +118,7 @@ mod tests { let expected_output = hex!("000000000000000000000000000000000000000000000000000000000000100073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"); let gas = 50000; - let env = Env::default(); + let env = CfgEnv::default(); let output = run(&input.into(), gas, &env).unwrap(); assert_eq!(output.gas_used, gas); assert_eq!(output.bytes[..], expected_output); diff --git a/crates/precompile/src/lib.rs b/crates/precompile/src/lib.rs index 488983bcb1..14a605ef1d 100644 --- a/crates/precompile/src/lib.rs +++ b/crates/precompile/src/lib.rs @@ -294,10 +294,6 @@ impl PrecompileSpecId { CANCUN => Self::CANCUN, PRAGUE | PRAGUE_EOF => Self::PRAGUE, LATEST => Self::LATEST, - #[cfg(feature = "optimism")] - BEDROCK | REGOLITH | CANYON => Self::BERLIN, - #[cfg(feature = "optimism")] - ECOTONE | FJORD | GRANITE => Self::CANCUN, } } } diff --git a/crates/primitives/Cargo.toml b/crates/primitives/Cargo.toml index 1135cac208..9d07abb98f 100644 --- a/crates/primitives/Cargo.toml +++ b/crates/primitives/Cargo.toml @@ -83,11 +83,6 @@ arbitrary = [ asm-keccak = ["alloy-primitives/asm-keccak"] portable = ["c-kzg?/portable"] -optimism = [] -# Optimism default handler enabled Optimism handler register by default in EvmBuilder. -optimism-default-handler = ["optimism"] -negate-optimism-default-handler = [] - dev = [ "memory_limit", "optional_balance_check", diff --git a/crates/primitives/src/block.rs b/crates/primitives/src/block.rs new file mode 100644 index 0000000000..38056c110b --- /dev/null +++ b/crates/primitives/src/block.rs @@ -0,0 +1,64 @@ +use crate::{Address, BlobExcessGasAndPrice, B256, U256}; + +/// Trait for retrieving block information required for execution. +pub trait Block { + /// The number of ancestor blocks of this block (block height). + fn number(&self) -> &U256; + + /// Coinbase or miner or address that created and signed the block. + /// + /// This is the receiver address of all the gas spent in the block. + fn coinbase(&self) -> &Address; + + /// The timestamp of the block in seconds since the UNIX epoch. + fn timestamp(&self) -> &U256; + + /// The gas limit of the block. + fn gas_limit(&self) -> &U256; + + /// The base fee per gas, added in the London upgrade with [EIP-1559]. + /// + /// [EIP-1559]: https://eips.ethereum.org/EIPS/eip-1559 + fn basefee(&self) -> &U256; + + /// The difficulty of the block. + /// + /// Unused after the Paris (AKA the merge) upgrade, and replaced by `prevrandao`. + fn difficulty(&self) -> &U256; + + /// The output of the randomness beacon provided by the beacon chain. + /// + /// Replaces `difficulty` after the Paris (AKA the merge) upgrade with [EIP-4399]. + /// + /// NOTE: `prevrandao` can be found in a block in place of `mix_hash`. + /// + /// [EIP-4399]: https://eips.ethereum.org/EIPS/eip-4399 + fn prevrandao(&self) -> Option<&B256>; + + /// Excess blob gas and blob gasprice. + /// See also [`crate::calc_excess_blob_gas`] + /// and [`crate::calc_blob_gasprice`]. + /// + /// Incorporated as part of the Cancun upgrade via [EIP-4844]. + /// + /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 + fn blob_excess_gas_and_price(&self) -> Option<&BlobExcessGasAndPrice>; + + /// See [EIP-4844] and [`crate::calc_blob_gasprice`]. + /// + /// Returns `None` if `Cancun` is not enabled. This is enforced in [`crate::Env::validate_block_env`]. + /// + /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 + fn get_blob_gasprice(&self) -> Option<&u128> { + self.blob_excess_gas_and_price().map(|a| &a.blob_gasprice) + } + + /// Return `blob_excess_gas` header field. See [EIP-4844]. + /// + /// Returns `None` if `Cancun` is not enabled. This is enforced in [`crate::Env::validate_block_env`]. + /// + /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 + fn get_blob_excess_gas(&self) -> Option { + self.blob_excess_gas_and_price().map(|a| a.excess_blob_gas) + } +} diff --git a/crates/primitives/src/bytecode.rs b/crates/primitives/src/bytecode.rs index bae4161806..d3fbbd2868 100644 --- a/crates/primitives/src/bytecode.rs +++ b/crates/primitives/src/bytecode.rs @@ -235,8 +235,7 @@ impl From for BytecodeDecodeError { } } -#[cfg(feature = "std")] -impl std::error::Error for BytecodeDecodeError {} +impl core::error::Error for BytecodeDecodeError {} impl fmt::Display for BytecodeDecodeError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { diff --git a/crates/primitives/src/bytecode/eof.rs b/crates/primitives/src/bytecode/eof.rs index 8ed12abb86..d25f61f6d9 100644 --- a/crates/primitives/src/bytecode/eof.rs +++ b/crates/primitives/src/bytecode/eof.rs @@ -182,8 +182,7 @@ impl fmt::Display for EofDecodeError { } } -#[cfg(feature = "std")] -impl std::error::Error for EofDecodeError {} +impl core::error::Error for EofDecodeError {} #[cfg(test)] mod test { diff --git a/crates/primitives/src/db.rs b/crates/primitives/src/db.rs index d0dfc464af..0b01009831 100644 --- a/crates/primitives/src/db.rs +++ b/crates/primitives/src/db.rs @@ -2,9 +2,12 @@ use crate::{Account, AccountInfo, Address, Bytecode, HashMap, B256, U256}; use auto_impl::auto_impl; pub mod components; +pub mod emptydb; + pub use components::{ BlockHash, BlockHashRef, DatabaseComponentError, DatabaseComponents, State, StateRef, }; +pub use emptydb::{EmptyDB, EmptyDBTyped}; /// EVM database interface. #[auto_impl(&mut, Box)] diff --git a/crates/revm/src/db/emptydb.rs b/crates/primitives/src/db/emptydb.rs similarity index 97% rename from crates/revm/src/db/emptydb.rs rename to crates/primitives/src/db/emptydb.rs index 3d14ab23ae..8f9783e82a 100644 --- a/crates/revm/src/db/emptydb.rs +++ b/crates/primitives/src/db/emptydb.rs @@ -1,8 +1,8 @@ -use core::{convert::Infallible, fmt, marker::PhantomData}; -use revm_interpreter::primitives::{ +use crate::{ db::{Database, DatabaseRef}, keccak256, AccountInfo, Address, Bytecode, B256, U256, }; +use core::{convert::Infallible, fmt, marker::PhantomData}; use std::string::ToString; /// An empty database that always returns default values when queried. @@ -104,7 +104,7 @@ impl DatabaseRef for EmptyDBTyped { #[cfg(test)] mod tests { use super::*; - use crate::primitives::b256; + use crate::b256; #[test] fn conform_block_hash_calculation() { diff --git a/crates/primitives/src/eip7702/bytecode.rs b/crates/primitives/src/eip7702/bytecode.rs index 268f2c4aa6..89a8082389 100644 --- a/crates/primitives/src/eip7702/bytecode.rs +++ b/crates/primitives/src/eip7702/bytecode.rs @@ -93,8 +93,7 @@ impl fmt::Display for Eip7702DecodeError { } } -#[cfg(feature = "std")] -impl std::error::Error for Eip7702DecodeError {} +impl core::error::Error for Eip7702DecodeError {} #[cfg(test)] mod tests { diff --git a/crates/primitives/src/env.rs b/crates/primitives/src/env.rs index ed6bc1b141..7e48b175de 100644 --- a/crates/primitives/src/env.rs +++ b/crates/primitives/src/env.rs @@ -1,50 +1,47 @@ -pub mod handler_cfg; - -pub use handler_cfg::{CfgEnvWithHandlerCfg, EnvWithHandlerCfg, HandlerCfg}; - use crate::{ - calc_blob_gasprice, AccessListItem, Account, Address, AuthorizationList, Bytes, InvalidHeader, - InvalidTransaction, Spec, SpecId, B256, GAS_PER_BLOB, MAX_BLOB_NUMBER_PER_BLOCK, MAX_CODE_SIZE, - MAX_INITCODE_SIZE, U256, VERSIONED_HASH_VERSION_KZG, + calc_blob_gasprice, AccessListItem, Account, Address, AuthorizationList, Block, Bytes, + EvmWiring, InvalidHeader, InvalidTransaction, Spec, SpecId, Transaction, TransactionValidation, + B256, MAX_BLOB_NUMBER_PER_BLOCK, MAX_CODE_SIZE, MAX_INITCODE_SIZE, U256, + VERSIONED_HASH_VERSION_KZG, }; use alloy_primitives::TxKind; use core::cmp::{min, Ordering}; +use core::fmt::Debug; use core::hash::Hash; use std::boxed::Box; use std::vec::Vec; +/// Subtype +pub type EnvWiring = + Env<::Block, ::Transaction>; + +#[derive(Clone, Debug, Default)] /// EVM environment configuration. -#[derive(Clone, Debug, Default, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -pub struct Env { +pub struct Env { /// Configuration of the EVM itself. pub cfg: CfgEnv, /// Configuration of the block the transaction is in. - pub block: BlockEnv, + pub block: BlockT, /// Configuration of the transaction that is being executed. - pub tx: TxEnv, + pub tx: TxT, } -impl Env { - /// Resets environment to default values. - #[inline] - pub fn clear(&mut self) { - *self = Self::default(); - } - +impl Env { /// Create boxed [Env]. #[inline] - pub fn boxed(cfg: CfgEnv, block: BlockEnv, tx: TxEnv) -> Box { + pub fn boxed(cfg: CfgEnv, block: BlockT, tx: TxT) -> Box { Box::new(Self { cfg, block, tx }) } /// Calculates the effective gas price of the transaction. #[inline] pub fn effective_gas_price(&self) -> U256 { - if let Some(priority_fee) = self.tx.gas_priority_fee { - min(self.tx.gas_price, self.block.basefee + priority_fee) + let gas_price = self.tx.gas_price(); + if let Some(priority_fee) = self.tx.max_priority_fee_per_gas() { + min(*gas_price, self.block.basefee() + priority_fee) } else { - self.tx.gas_price + *gas_price } } @@ -56,7 +53,7 @@ impl Env { #[inline] pub fn calc_data_fee(&self) -> Option { self.block.get_blob_gasprice().map(|blob_gas_price| { - U256::from(blob_gas_price).saturating_mul(U256::from(self.tx.get_total_blob_gas())) + U256::from(*blob_gas_price).saturating_mul(U256::from(self.tx.get_total_blob_gas())) }) } @@ -68,7 +65,7 @@ impl Env { /// See EIP-4844: /// pub fn calc_max_data_fee(&self) -> Option { - self.tx.max_fee_per_blob_gas.map(|max_fee_per_blob_gas| { + self.tx.max_fee_per_blob_gas().map(|max_fee_per_blob_gas| { max_fee_per_blob_gas.saturating_mul(U256::from(self.tx.get_total_blob_gas())) }) } @@ -77,11 +74,11 @@ impl Env { #[inline] pub fn validate_block_env(&self) -> Result<(), InvalidHeader> { // `prevrandao` is required for the merge - if SPEC::enabled(SpecId::MERGE) && self.block.prevrandao.is_none() { + if SPEC::enabled(SpecId::MERGE) && self.block.prevrandao().is_none() { return Err(InvalidHeader::PrevrandaoNotSet); } // `excess_blob_gas` is required for Cancun - if SPEC::enabled(SpecId::CANCUN) && self.block.blob_excess_gas_and_price.is_none() { + if SPEC::enabled(SpecId::CANCUN) && self.block.blob_excess_gas_and_price().is_none() { return Err(InvalidHeader::ExcessBlobGasNotSet); } Ok(()) @@ -93,7 +90,7 @@ impl Env { #[inline] pub fn validate_tx(&self) -> Result<(), InvalidTransaction> { // Check if the transaction's chain id is correct - if let Some(tx_chain_id) = self.tx.chain_id { + if let Some(tx_chain_id) = self.tx.chain_id() { if tx_chain_id != self.cfg.chain_id { return Err(InvalidTransaction::InvalidChainId); } @@ -101,20 +98,20 @@ impl Env { // Check if gas_limit is more than block_gas_limit if !self.cfg.is_block_gas_limit_disabled() - && U256::from(self.tx.gas_limit) > self.block.gas_limit + && U256::from(self.tx.gas_limit()) > *self.block.gas_limit() { return Err(InvalidTransaction::CallerGasLimitMoreThanBlock); } // Check that access list is empty for transactions before BERLIN - if !SPEC::enabled(SpecId::BERLIN) && !self.tx.access_list.is_empty() { + if !SPEC::enabled(SpecId::BERLIN) && !self.tx.access_list().is_empty() { return Err(InvalidTransaction::AccessListNotSupported); } // BASEFEE tx check if SPEC::enabled(SpecId::LONDON) { - if let Some(priority_fee) = self.tx.gas_priority_fee { - if priority_fee > self.tx.gas_price { + if let Some(priority_fee) = self.tx.max_priority_fee_per_gas() { + if priority_fee > self.tx.gas_price() { // or gas_max_fee for eip1559 return Err(InvalidTransaction::PriorityFeeGreaterThanMaxFee); } @@ -122,41 +119,41 @@ impl Env { // check minimal cost against basefee if !self.cfg.is_base_fee_check_disabled() - && self.effective_gas_price() < self.block.basefee + && self.effective_gas_price() < *self.block.basefee() { return Err(InvalidTransaction::GasPriceLessThanBasefee); } } // EIP-3860: Limit and meter initcode - if SPEC::enabled(SpecId::SHANGHAI) && self.tx.transact_to.is_create() { + if SPEC::enabled(SpecId::SHANGHAI) && self.tx.kind().is_create() { let max_initcode_size = self .cfg .limit_contract_code_size .map(|limit| limit.saturating_mul(2)) .unwrap_or(MAX_INITCODE_SIZE); - if self.tx.data.len() > max_initcode_size { + if self.tx.data().len() > max_initcode_size { return Err(InvalidTransaction::CreateInitCodeSizeLimit); } } // - For before CANCUN, check that `blob_hashes` and `max_fee_per_blob_gas` are empty / not set if !SPEC::enabled(SpecId::CANCUN) - && (self.tx.max_fee_per_blob_gas.is_some() || !self.tx.blob_hashes.is_empty()) + && (self.tx.max_fee_per_blob_gas().is_some() || !self.tx.blob_hashes().is_empty()) { return Err(InvalidTransaction::BlobVersionedHashesNotSupported); } // Presence of max_fee_per_blob_gas means that this is blob transaction. - if let Some(max) = self.tx.max_fee_per_blob_gas { + if let Some(max) = self.tx.max_fee_per_blob_gas() { // ensure that the user was willing to at least pay the current blob gasprice let price = self.block.get_blob_gasprice().expect("already checked"); - if U256::from(price) > max { + if U256::from(*price) > *max { return Err(InvalidTransaction::BlobGasPriceGreaterThanMax); } // there must be at least one blob - if self.tx.blob_hashes.is_empty() { + if self.tx.blob_hashes().is_empty() { return Err(InvalidTransaction::EmptyBlobs); } @@ -164,12 +161,12 @@ impl Env { // that it MUST NOT be nil and therefore must always represent // a 20-byte address. This means that blob transactions cannot // have the form of a create transaction. - if self.tx.transact_to.is_create() { + if self.tx.kind().is_create() { return Err(InvalidTransaction::BlobCreateTransaction); } // all versioned blob hashes must start with VERSIONED_HASH_VERSION_KZG - for blob in self.tx.blob_hashes.iter() { + for blob in self.tx.blob_hashes() { if blob[0] != VERSIONED_HASH_VERSION_KZG { return Err(InvalidTransaction::BlobVersionNotSupported); } @@ -177,7 +174,7 @@ impl Env { // ensure the total blob gas spent is at most equal to the limit // assert blob_gas_used <= MAX_BLOB_GAS_PER_BLOCK - let num_blobs = self.tx.blob_hashes.len(); + let num_blobs = self.tx.blob_hashes().len(); if num_blobs > MAX_BLOB_NUMBER_PER_BLOCK as usize { return Err(InvalidTransaction::TooManyBlobs { have: num_blobs, @@ -186,17 +183,17 @@ impl Env { } } else { // if max_fee_per_blob_gas is not set, then blob_hashes must be empty - if !self.tx.blob_hashes.is_empty() { + if !self.tx.blob_hashes().is_empty() { return Err(InvalidTransaction::BlobVersionedHashesNotSupported); } } // check if EIP-7702 transaction is enabled. - if !SPEC::enabled(SpecId::PRAGUE) && self.tx.authorization_list.is_some() { + if !SPEC::enabled(SpecId::PRAGUE) && self.tx.authorization_list().is_some() { return Err(InvalidTransaction::AuthorizationListNotSupported); } - if let Some(auth_list) = &self.tx.authorization_list { + if let Some(auth_list) = &self.tx.authorization_list() { // The transaction is considered invalid if the length of authorization_list is zero. if auth_list.is_empty() { return Err(InvalidTransaction::EmptyAuthorizationList); @@ -206,7 +203,7 @@ impl Env { auth_list.is_valid(self.cfg.chain_id)?; // Check if other fields are unset. - if self.tx.max_fee_per_blob_gas.is_some() || !self.tx.blob_hashes.is_empty() { + if self.tx.max_fee_per_blob_gas().is_some() || !self.tx.blob_hashes().is_empty() { return Err(InvalidTransaction::AuthorizationListInvalidFields); } } @@ -237,7 +234,8 @@ impl Env { } // Check that the transaction's nonce is correct - if let Some(tx) = self.tx.nonce { + if !self.cfg.is_nonce_check_disabled() { + let tx = self.tx.nonce(); let state = account.info.nonce; match tx.cmp(&state) { Ordering::Greater => { @@ -250,9 +248,9 @@ impl Env { } } - let mut balance_check = U256::from(self.tx.gas_limit) - .checked_mul(self.tx.gas_price) - .and_then(|gas_cost| gas_cost.checked_add(self.tx.value)) + let mut balance_check = U256::from(self.tx.gas_limit()) + .checked_mul(*self.tx.gas_price()) + .and_then(|gas_cost| gas_cost.checked_add(*self.tx.value())) .ok_or(InvalidTransaction::OverflowPaymentInTransaction)?; if SPEC::enabled(SpecId::CANCUN) { @@ -281,6 +279,14 @@ impl Env { } } +impl Env { + /// Resets environment to default values. + #[inline] + pub fn clear(&mut self) { + *self = Self::default(); + } +} + /// EVM configuration. #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[derive(Clone, Debug, Eq, PartialEq)] @@ -301,6 +307,10 @@ pub struct CfgEnv { /// If some it will effects EIP-170: Contract code size limit. Useful to increase this because of tests. /// By default it is 0x6000 (~25kb). pub limit_contract_code_size: Option, + /// Skips the nonce validation against the account's nonce: + /// [`crate::InvalidTransaction::NonceTooHigh`] and + /// [`crate::InvalidTransaction::NonceTooLow`] + pub disable_nonce_check: bool, /// A hard memory limit in bytes beyond which [crate::result::OutOfGasError::Memory] cannot be resized. /// /// In cases where the gas limit may be extraordinarily high, it is recommended to set this to @@ -408,6 +418,10 @@ impl CfgEnv { pub fn is_beneficiary_reward_disabled(&self) -> bool { false } + + pub const fn is_nonce_check_disabled(&self) -> bool { + self.disable_nonce_check + } } impl Default for CfgEnv { @@ -416,6 +430,7 @@ impl Default for CfgEnv { chain_id: 1, perf_analyse_created_bytecodes: AnalysisKind::default(), limit_contract_code_size: None, + disable_nonce_check: false, #[cfg(any(feature = "c-kzg", feature = "kzg-rs"))] kzg_settings: crate::kzg::EnvKzgSettings::Default, #[cfg(feature = "memory_limit")] @@ -483,34 +498,47 @@ impl BlockEnv { pub fn set_blob_excess_gas_and_price(&mut self, excess_blob_gas: u64) { self.blob_excess_gas_and_price = Some(BlobExcessGasAndPrice::new(excess_blob_gas)); } - /// See [EIP-4844] and [`crate::calc_blob_gasprice`]. - /// - /// Returns `None` if `Cancun` is not enabled. This is enforced in [`Env::validate_block_env`]. - /// - /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 +} + +impl Block for BlockEnv { #[inline] - pub fn get_blob_gasprice(&self) -> Option { - self.blob_excess_gas_and_price - .as_ref() - .map(|a| a.blob_gasprice) + fn number(&self) -> &U256 { + &self.number } - /// Return `blob_excess_gas` header field. See [EIP-4844]. - /// - /// Returns `None` if `Cancun` is not enabled. This is enforced in [`Env::validate_block_env`]. - /// - /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 #[inline] - pub fn get_blob_excess_gas(&self) -> Option { - self.blob_excess_gas_and_price - .as_ref() - .map(|a| a.excess_blob_gas) + fn coinbase(&self) -> &Address { + &self.coinbase } - /// Clears environment and resets fields to default values. #[inline] - pub fn clear(&mut self) { - *self = Self::default(); + fn timestamp(&self) -> &U256 { + &self.timestamp + } + + #[inline] + fn gas_limit(&self) -> &U256 { + &self.gas_limit + } + + #[inline] + fn basefee(&self) -> &U256 { + &self.basefee + } + + #[inline] + fn difficulty(&self) -> &U256 { + &self.difficulty + } + + #[inline] + fn prevrandao(&self) -> Option<&B256> { + self.prevrandao.as_ref() + } + + #[inline] + fn blob_excess_gas_and_price(&self) -> Option<&BlobExcessGasAndPrice> { + self.blob_excess_gas_and_price.as_ref() } } @@ -547,9 +575,7 @@ pub struct TxEnv { pub data: Bytes, /// The nonce of the transaction. - /// - /// Caution: If set to `None`, then nonce validation against the account's nonce is skipped: [InvalidTransaction::NonceTooHigh] and [InvalidTransaction::NonceTooLow] - pub nonce: Option, + pub nonce: u64, /// The chain ID of the transaction. If set to `None`, no checks are performed. /// @@ -594,34 +620,84 @@ pub struct TxEnv { /// /// [EIP-Set EOA account code for one transaction](https://eips.ethereum.org/EIPS/eip-7702) pub authorization_list: Option, - - #[cfg_attr(feature = "serde", serde(flatten))] - #[cfg(feature = "optimism")] - /// Optimism fields. - pub optimism: OptimismFields, } -pub enum TxType { - Legacy, - Eip1559, - BlobTx, - EofCreate, -} +impl Transaction for TxEnv { + #[inline] + fn caller(&self) -> &Address { + &self.caller + } -impl TxEnv { - /// See [EIP-4844], [`Env::calc_data_fee`], and [`Env::calc_max_data_fee`]. - /// - /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 #[inline] - pub fn get_total_blob_gas(&self) -> u64 { - GAS_PER_BLOB * self.blob_hashes.len() as u64 + fn gas_limit(&self) -> u64 { + self.gas_limit } - /// Clears environment and resets fields to default values. #[inline] - pub fn clear(&mut self) { - *self = Self::default(); + fn gas_price(&self) -> &U256 { + &self.gas_price + } + + #[inline] + fn kind(&self) -> TxKind { + self.transact_to + } + + #[inline] + fn value(&self) -> &U256 { + &self.value } + + #[inline] + fn data(&self) -> &Bytes { + &self.data + } + + #[inline] + fn nonce(&self) -> u64 { + self.nonce + } + + #[inline] + fn chain_id(&self) -> Option { + self.chain_id + } + + #[inline] + fn access_list(&self) -> &[AccessListItem] { + &self.access_list + } + + #[inline] + fn max_priority_fee_per_gas(&self) -> Option<&U256> { + self.gas_priority_fee.as_ref() + } + + #[inline] + fn blob_hashes(&self) -> &[B256] { + &self.blob_hashes + } + + #[inline] + fn max_fee_per_blob_gas(&self) -> Option<&U256> { + self.max_fee_per_blob_gas.as_ref() + } + + #[inline] + fn authorization_list(&self) -> Option<&AuthorizationList> { + self.authorization_list.as_ref() + } +} + +impl TransactionValidation for TxEnv { + type ValidationError = InvalidTransaction; +} + +pub enum TxType { + Legacy, + Eip1559, + BlobTx, + EofCreate, } impl Default for TxEnv { @@ -635,13 +711,11 @@ impl Default for TxEnv { value: U256::ZERO, data: Bytes::new(), chain_id: None, - nonce: None, + nonce: 0, access_list: Vec::new(), blob_hashes: Vec::new(), max_fee_per_blob_gas: None, authorization_list: None, - #[cfg(feature = "optimism")] - optimism: OptimismFields::default(), } } } @@ -671,40 +745,6 @@ impl BlobExcessGasAndPrice { } } -/// Additional [TxEnv] fields for optimism. -#[cfg(feature = "optimism")] -#[derive(Clone, Debug, Default, PartialEq, Eq, Hash)] -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -pub struct OptimismFields { - /// The source hash is used to make sure that deposit transactions do - /// not have identical hashes. - /// - /// L1 originated deposit transaction source hashes are computed using - /// the hash of the l1 block hash and the l1 log index. - /// L1 attributes deposit source hashes are computed with the l1 block - /// hash and the sequence number = l2 block number - l2 epoch start - /// block number. - /// - /// These two deposit transaction sources specify a domain in the outer - /// hash so there are no collisions. - pub source_hash: Option, - /// The amount to increase the balance of the `from` account as part of - /// a deposit transaction. This is unconditional and is applied to the - /// `from` account even if the deposit transaction fails since - /// the deposit is pre-paid on L1. - pub mint: Option, - /// Whether or not the transaction is a system transaction. - pub is_system_transaction: Option, - /// An enveloped EIP-2718 typed transaction. This is used - /// to compute the L1 tx cost using the L1 block info, as - /// opposed to requiring downstream apps to compute the cost - /// externally. - /// This field is optional to allow the [TxEnv] to be constructed - /// for non-optimism chains when the `optimism` feature is enabled, - /// but the [CfgEnv] `optimism` field is set to false. - pub enveloped_tx: Option, -} - /// Transaction destination pub type TransactTo = TxKind; @@ -738,7 +778,7 @@ mod tests { #[test] fn test_validate_tx_chain_id() { - let mut env = Env::default(); + let mut env = Env::::default(); env.tx.chain_id = Some(1); env.cfg.chain_id = 2; assert_eq!( @@ -749,7 +789,7 @@ mod tests { #[test] fn test_validate_tx_access_list() { - let mut env = Env::default(); + let mut env = Env::::default(); env.tx.access_list = vec![AccessListItem { address: Address::ZERO, storage_keys: vec![], diff --git a/crates/primitives/src/env/handler_cfg.rs b/crates/primitives/src/env/handler_cfg.rs deleted file mode 100644 index 56560ae675..0000000000 --- a/crates/primitives/src/env/handler_cfg.rs +++ /dev/null @@ -1,159 +0,0 @@ -use super::{BlockEnv, CfgEnv, Env, SpecId, TxEnv}; -use core::ops::{Deref, DerefMut}; -use std::boxed::Box; - -/// Handler configuration fields. It is used to configure the handler. -/// It contains specification id and the Optimism related field if -/// optimism feature is enabled. -#[derive(Clone, Copy, Debug, Eq, PartialEq, Hash)] -pub struct HandlerCfg { - /// Specification identification. - pub spec_id: SpecId, - /// Optimism related field, it will append the Optimism handle register to the EVM. - #[cfg(feature = "optimism")] - pub is_optimism: bool, -} - -impl Default for HandlerCfg { - fn default() -> Self { - Self::new(SpecId::default()) - } -} - -impl HandlerCfg { - /// Creates new `HandlerCfg` instance. - pub fn new(spec_id: SpecId) -> Self { - cfg_if::cfg_if! { - if #[cfg(all(feature = "optimism-default-handler", - not(feature = "negate-optimism-default-handler")))] { - let is_optimism = true; - } else if #[cfg(feature = "optimism")] { - let is_optimism = false; - } - } - Self { - spec_id, - #[cfg(feature = "optimism")] - is_optimism, - } - } - - /// Creates new `HandlerCfg` instance with the optimism feature. - #[cfg(feature = "optimism")] - pub fn new_with_optimism(spec_id: SpecId, is_optimism: bool) -> Self { - Self { - spec_id, - is_optimism, - } - } - - /// Returns `true` if the optimism feature is enabled and flag is set to `true`. - pub fn is_optimism(&self) -> bool { - cfg_if::cfg_if! { - if #[cfg(feature = "optimism")] { - self.is_optimism - } else { - false - } - } - } -} - -/// Configuration environment with the chain spec id. -#[derive(Clone, Debug, Eq, PartialEq)] -pub struct CfgEnvWithHandlerCfg { - /// Configuration environment. - pub cfg_env: CfgEnv, - /// Handler configuration fields. - pub handler_cfg: HandlerCfg, -} - -impl CfgEnvWithHandlerCfg { - /// Returns new instance of `CfgEnvWithHandlerCfg` with the handler configuration. - pub fn new(cfg_env: CfgEnv, handler_cfg: HandlerCfg) -> Self { - Self { - cfg_env, - handler_cfg, - } - } - - /// Returns new `CfgEnvWithHandlerCfg` instance with the chain spec id. - /// - /// is_optimism will be set to default value depending on `optimism-default-handler` feature. - pub fn new_with_spec_id(cfg_env: CfgEnv, spec_id: SpecId) -> Self { - Self::new(cfg_env, HandlerCfg::new(spec_id)) - } - - /// Enables the optimism feature. - #[cfg(feature = "optimism")] - pub fn enable_optimism(&mut self) { - self.handler_cfg.is_optimism = true; - } -} - -impl DerefMut for CfgEnvWithHandlerCfg { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.cfg_env - } -} - -impl Deref for CfgEnvWithHandlerCfg { - type Target = CfgEnv; - - fn deref(&self) -> &Self::Target { - &self.cfg_env - } -} - -/// Evm environment with the chain spec id. -#[derive(Clone, Debug, Default, Eq, PartialEq)] -pub struct EnvWithHandlerCfg { - /// Evm environment. - pub env: Box, - /// Handler configuration fields. - pub handler_cfg: HandlerCfg, -} - -impl EnvWithHandlerCfg { - /// Returns new `EnvWithHandlerCfg` instance. - pub fn new(env: Box, handler_cfg: HandlerCfg) -> Self { - Self { env, handler_cfg } - } - - /// Returns new `EnvWithHandlerCfg` instance with the chain spec id. - /// - /// is_optimism will be set to default value depending on `optimism-default-handler` feature. - pub fn new_with_spec_id(env: Box, spec_id: SpecId) -> Self { - Self::new(env, HandlerCfg::new(spec_id)) - } - - /// Takes `CfgEnvWithHandlerCfg` and returns new `EnvWithHandlerCfg` instance. - pub fn new_with_cfg_env(cfg: CfgEnvWithHandlerCfg, block: BlockEnv, tx: TxEnv) -> Self { - Self::new(Env::boxed(cfg.cfg_env, block, tx), cfg.handler_cfg) - } - - /// Returns the specification id. - pub const fn spec_id(&self) -> SpecId { - self.handler_cfg.spec_id - } - - /// Enables the optimism handle register. - #[cfg(feature = "optimism")] - pub fn enable_optimism(&mut self) { - self.handler_cfg.is_optimism = true; - } -} - -impl DerefMut for EnvWithHandlerCfg { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.env - } -} - -impl Deref for EnvWithHandlerCfg { - type Target = Env; - - fn deref(&self) -> &Self::Target { - &self.env - } -} diff --git a/crates/primitives/src/evm_wiring.rs b/crates/primitives/src/evm_wiring.rs new file mode 100644 index 0000000000..12ae764301 --- /dev/null +++ b/crates/primitives/src/evm_wiring.rs @@ -0,0 +1,62 @@ +use crate::{db::Database, Block, SpecId, Transaction}; +use core::{fmt::Debug, hash::Hash}; + +/// The type that enumerates the chain's hardforks. +pub trait HardforkTrait: Clone + Copy + Default + PartialEq + Eq + Into {} + +impl HardforkTrait for HardforkT where + HardforkT: Clone + Copy + Default + PartialEq + Eq + Into +{ +} + +pub trait HaltReasonTrait: Clone + Debug + PartialEq + Eq + From {} + +impl HaltReasonTrait for HaltReasonT where + HaltReasonT: Clone + Debug + PartialEq + Eq + From +{ +} + +pub trait TransactionValidation { + /// An error that occurs when validating a transaction. + type ValidationError: Debug + core::error::Error; +} + +pub trait EvmWiring: Sized { + /// External context type + type ExternalContext: Sized; + + /// Chain context type. + type ChainContext: Sized + Default + Debug; + + /// Database type. + type Database: Database; + + /// The type that contains all block information. + type Block: Block; + + /// The type that contains all transaction information. + type Transaction: Transaction + TransactionValidation; + + /// The type that enumerates the chain's hardforks. + type Hardfork: HardforkTrait; + + /// Halt reason type. + type HaltReason: HaltReasonTrait; +} + +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct EthereumWiring { + phantom: core::marker::PhantomData<(DB, EXT)>, +} + +impl EvmWiring for EthereumWiring { + type Database = DB; + type ExternalContext = EXT; + type ChainContext = (); + type Block = crate::BlockEnv; + type Transaction = crate::TxEnv; + type Hardfork = SpecId; + type HaltReason = crate::HaltReason; +} + +pub type DefaultEthereumWiring = EthereumWiring; diff --git a/crates/primitives/src/lib.rs b/crates/primitives/src/lib.rs index 11131918b5..8255ffb9fb 100644 --- a/crates/primitives/src/lib.rs +++ b/crates/primitives/src/lib.rs @@ -7,18 +7,21 @@ #[cfg(not(feature = "std"))] extern crate alloc as std; -mod bytecode; -mod constants; +pub mod block; pub mod db; pub mod eip7702; pub mod env; +mod bytecode; +mod constants; +mod evm_wiring; #[cfg(any(feature = "c-kzg", feature = "kzg-rs"))] pub mod kzg; pub mod precompile; pub mod result; pub mod specification; pub mod state; +pub mod transaction; pub mod utilities; pub use alloy_eips::eip2930::{AccessList, AccessListItem}; pub use alloy_primitives::{ @@ -33,6 +36,7 @@ pub use eip7702::{ RecoveredAuthorization, Signature, SignedAuthorization, EIP7702_MAGIC, EIP7702_MAGIC_BYTES, }; pub use env::*; +pub use evm_wiring::*; cfg_if::cfg_if! { if #[cfg(all(not(feature = "hashbrown"), feature = "std"))] { @@ -43,12 +47,14 @@ cfg_if::cfg_if! { } } +pub use block::Block; #[cfg(any(feature = "c-kzg", feature = "kzg-rs"))] pub use kzg::{EnvKzgSettings, KzgSettings}; pub use precompile::*; pub use result::*; pub use specification::*; pub use state::*; +pub use transaction::Transaction; pub use utilities::*; #[cfg(all(feature = "c-kzg", feature = "kzg-rs"))] diff --git a/crates/primitives/src/precompile.rs b/crates/primitives/src/precompile.rs index 22a7839021..25938bb580 100644 --- a/crates/primitives/src/precompile.rs +++ b/crates/primitives/src/precompile.rs @@ -1,5 +1,5 @@ -use crate::{Bytes, Env}; -use core::fmt::{self}; +use crate::{Bytes, CfgEnv}; +use core::fmt; use dyn_clone::DynClone; use std::{boxed::Box, string::String, sync::Arc}; @@ -25,18 +25,18 @@ impl PrecompileOutput { } pub type StandardPrecompileFn = fn(&Bytes, u64) -> PrecompileResult; -pub type EnvPrecompileFn = fn(&Bytes, u64, env: &Env) -> PrecompileResult; +pub type EnvPrecompileFn = fn(&Bytes, u64, env: &CfgEnv) -> PrecompileResult; /// Stateful precompile trait. It is used to create /// a arc precompile Precompile::Stateful. pub trait StatefulPrecompile: Sync + Send { - fn call(&self, bytes: &Bytes, gas_limit: u64, env: &Env) -> PrecompileResult; + fn call(&self, bytes: &Bytes, gas_limit: u64, env: &CfgEnv) -> PrecompileResult; } /// Mutable stateful precompile trait. It is used to create /// a boxed precompile in Precompile::StatefulMut. pub trait StatefulPrecompileMut: DynClone + Send + Sync { - fn call_mut(&mut self, bytes: &Bytes, gas_limit: u64, env: &Env) -> PrecompileResult; + fn call_mut(&mut self, bytes: &Bytes, gas_limit: u64, env: &CfgEnv) -> PrecompileResult; } dyn_clone::clone_trait_object!(StatefulPrecompileMut); @@ -52,13 +52,13 @@ pub type StatefulPrecompileBox = Box; pub enum Precompile { /// Standard simple precompile that takes input and gas limit. Standard(StandardPrecompileFn), - /// Similar to Standard but takes reference to environment. + /// Similar to Standard but takes reference to [`CfgEnv`]. Env(EnvPrecompileFn), /// Stateful precompile that is Arc over [`StatefulPrecompile`] trait. - /// It takes a reference to input, gas limit and environment. + /// It takes a reference to input, gas limit and [`CfgEnv`]. Stateful(StatefulPrecompileArc), /// Mutable stateful precompile that is Box over [`StatefulPrecompileMut`] trait. - /// It takes a reference to input, gas limit and environment. + /// It takes a reference to input, gas limit and [`CfgEnv`]. StatefulMut(StatefulPrecompileBox), } @@ -109,7 +109,7 @@ impl Precompile { } /// Call the precompile with the given input and gas limit and return the result. - pub fn call(&mut self, bytes: &Bytes, gas_limit: u64, env: &Env) -> PrecompileResult { + pub fn call(&mut self, bytes: &Bytes, gas_limit: u64, env: &CfgEnv) -> PrecompileResult { match *self { Precompile::Standard(p) => p(bytes, gas_limit), Precompile::Env(p) => p(bytes, gas_limit, env), @@ -121,7 +121,7 @@ impl Precompile { /// Call the precompile with the given input and gas limit and return the result. /// /// Returns an error if the precompile is mutable. - pub fn call_ref(&self, bytes: &Bytes, gas_limit: u64, env: &Env) -> PrecompileResult { + pub fn call_ref(&self, bytes: &Bytes, gas_limit: u64, env: &CfgEnv) -> PrecompileResult { match *self { Precompile::Standard(p) => p(bytes, gas_limit), Precompile::Env(p) => p(bytes, gas_limit, env), @@ -140,8 +140,7 @@ pub enum PrecompileErrors { Fatal { msg: String }, } -#[cfg(feature = "std")] -impl std::error::Error for PrecompileErrors {} +impl core::error::Error for PrecompileErrors {} impl fmt::Display for PrecompileErrors { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -196,8 +195,7 @@ impl From for PrecompileErrors { } } -#[cfg(feature = "std")] -impl std::error::Error for PrecompileError {} +impl core::error::Error for PrecompileError {} impl fmt::Display for PrecompileError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -234,7 +232,7 @@ mod test { &mut self, _bytes: &Bytes, _gas_limit: u64, - _env: &Env, + _env: &CfgEnv, ) -> PrecompileResult { Err(PrecompileError::OutOfGas.into()) } @@ -243,7 +241,7 @@ mod test { let mut p = Precompile::new_stateful_mut(MyPrecompile::default()); match &mut p { Precompile::StatefulMut(p) => { - let _ = p.call_mut(&Bytes::new(), 0, &Env::default()); + let _ = p.call_mut(&Bytes::new(), 0, &CfgEnv::default()); } _ => panic!("not a state"), } diff --git a/crates/primitives/src/result.rs b/crates/primitives/src/result.rs index f33193fccc..7dee33d49d 100644 --- a/crates/primitives/src/result.rs +++ b/crates/primitives/src/result.rs @@ -1,28 +1,36 @@ use crate::{ - eip7702::authorization_list::InvalidAuthorization, Address, Bytes, EvmState, Log, U256, + db::Database, eip7702::authorization_list::InvalidAuthorization, Address, Bytes, EvmState, + EvmWiring, HaltReasonTrait, Log, TransactionValidation, U256, }; -use core::fmt; +use core::fmt::{self, Debug}; use std::{boxed::Box, string::String, vec::Vec}; /// Result of EVM execution. -pub type EVMResult = EVMResultGeneric; +pub type EVMResult = + EVMResultGeneric::HaltReason>, EvmWiringT>; /// Generic result of EVM execution. Used to represent error and generic output. -pub type EVMResultGeneric = core::result::Result>; +pub type EVMResultGeneric = core::result::Result>; + +/// EVM error type for a specific chain. +pub type EVMErrorForChain = EVMError< + <::Database as Database>::Error, + <::Transaction as TransactionValidation>::ValidationError, +>; #[derive(Debug, Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -pub struct ResultAndState { +pub struct ResultAndState { /// Status of execution - pub result: ExecutionResult, + pub result: ExecutionResult, /// State that got updated pub state: EvmState, } /// Result of a transaction execution. -#[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[derive(Clone, Debug, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -pub enum ExecutionResult { +pub enum ExecutionResult { /// Returned successfully Success { reason: SuccessReason, @@ -35,13 +43,13 @@ pub enum ExecutionResult { Revert { gas_used: u64, output: Bytes }, /// Reverted for various reasons and spend all gas. Halt { - reason: HaltReason, + reason: HaltReasonT, /// Halting will spend all the gas, and will be equal to gas_limit. gas_used: u64, }, } -impl ExecutionResult { +impl ExecutionResult { /// Returns if transaction execution is successful. /// 1 indicates success, 0 indicates revert. /// @@ -136,12 +144,17 @@ impl Output { } } +pub type EVMErrorWiring = EVMError< + <::Database as Database>::Error, + <::Transaction as TransactionValidation>::ValidationError, +>; + /// Main EVM error. -#[derive(Debug, Clone, PartialEq, Eq, Hash)] +#[derive(Debug, Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -pub enum EVMError { +pub enum EVMError { /// Transaction validation error. - Transaction(InvalidTransaction), + Transaction(TransactionValidationErrorT), /// Header validation error. Header(InvalidHeader), /// Database error. @@ -154,9 +167,9 @@ pub enum EVMError { Precompile(String), } -impl EVMError { +impl EVMError { /// Maps a `DBError` to a new error type using the provided closure, leaving other variants unchanged. - pub fn map_db_err(self, op: F) -> EVMError + pub fn map_db_err(self, op: F) -> EVMError where F: FnOnce(DBError) -> E, { @@ -171,7 +184,12 @@ impl EVMError { } #[cfg(feature = "std")] -impl std::error::Error for EVMError { +impl std::error::Error + for EVMError +where + DBError: std::error::Error + 'static, + TransactionValidationErrorT: std::error::Error + 'static, +{ fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { match self { Self::Transaction(e) => Some(e), @@ -182,7 +200,12 @@ impl std::error::Error for EVMError fmt::Display for EVMError { +impl fmt::Display + for EVMError +where + DBError: fmt::Display, + TransactionValidationErrorT: fmt::Display, +{ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { Self::Transaction(e) => write!(f, "transaction validation error: {e}"), @@ -193,57 +216,20 @@ impl fmt::Display for EVMError { } } -impl From for EVMError { +impl From for EVMError { fn from(value: InvalidTransaction) -> Self { Self::Transaction(value) } } -impl From for EVMError { +impl From + for EVMError +{ fn from(value: InvalidHeader) -> Self { Self::Header(value) } } -/// Transaction validation error for Optimism. -#[cfg(feature = "optimism")] -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -pub enum OptimismInvalidTransaction { - /// System transactions are not supported post-regolith hardfork. - /// - /// Before the Regolith hardfork, there was a special field in the `Deposit` transaction - /// type that differentiated between `system` and `user` deposit transactions. This field - /// was deprecated in the Regolith hardfork, and this error is thrown if a `Deposit` transaction - /// is found with this field set to `true` after the hardfork activation. - /// - /// In addition, this error is internal, and bubbles up into a [HaltReason::FailedDeposit] error - /// in the `revm` handler for the consumer to easily handle. This is due to a state transition - /// rule on OP Stack chains where, if for any reason a deposit transaction fails, the transaction - /// must still be included in the block, the sender nonce is bumped, the `mint` value persists, and - /// special gas accounting rules are applied. Normally on L1, [EVMError::Transaction] errors - /// are cause for non-inclusion, so a special [HaltReason] variant was introduced to handle this - /// case for failed deposit transactions. - #[cfg(feature = "optimism")] - DepositSystemTxPostRegolith, - /// Deposit transaction haults bubble up to the global main return handler, wiping state and - /// only increasing the nonce + persisting the mint value. - /// - /// This is a catch-all error for any deposit transaction that is results in a [HaltReason] error - /// post-regolith hardfork. This allows for a consumer to easily handle special cases where - /// a deposit transaction fails during validation, but must still be included in the block. - /// - /// In addition, this error is internal, and bubbles up into a [HaltReason::FailedDeposit] error - /// in the `revm` handler for the consumer to easily handle. This is due to a state transition - /// rule on OP Stack chains where, if for any reason a deposit transaction fails, the transaction - /// must still be included in the block, the sender nonce is bumped, the `mint` value persists, and - /// special gas accounting rules are applied. Normally on L1, [EVMError::Transaction] errors - /// are cause for non-inclusion, so a special [HaltReason] variant was introduced to handle this - /// case for failed deposit transactions. - #[cfg(feature = "optimism")] - HaltedDepositPostRegolith, -} - /// Transaction validation error. #[derive(Debug, Clone, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] @@ -317,9 +303,6 @@ pub enum InvalidTransaction { EmptyAuthorizationList, /// Invalid EIP-7702 Authorization List InvalidAuthorizationList(InvalidAuthorization), - /// Optimism-specific transaction validation error. - #[cfg(feature = "optimism")] - OptimismError(OptimismInvalidTransaction), } impl From for InvalidTransaction { @@ -328,24 +311,7 @@ impl From for InvalidTransaction { } } -#[cfg(feature = "std")] -impl std::error::Error for InvalidTransaction {} - -#[cfg(feature = "optimism")] -impl fmt::Display for OptimismInvalidTransaction { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - Self::DepositSystemTxPostRegolith => write!( - f, - "deposit system transactions post regolith hardfork are not supported" - ), - Self::HaltedDepositPostRegolith => write!( - f, - "deposit transaction halted post-regolith; error will be bubbled up to main return handler" - ), - } - } -} +impl core::error::Error for InvalidTransaction {} impl fmt::Display for InvalidTransaction { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -407,8 +373,6 @@ impl fmt::Display for InvalidTransaction { } Self::EmptyAuthorizationList => write!(f, "empty authorization list"), Self::InvalidAuthorizationList(i) => fmt::Display::fmt(i, f), - #[cfg(feature = "optimism")] - Self::OptimismError(op_error) => op_error.fmt(f), } } } @@ -423,8 +387,7 @@ pub enum InvalidHeader { ExcessBlobGasNotSet, } -#[cfg(feature = "std")] -impl std::error::Error for InvalidHeader {} +impl core::error::Error for InvalidHeader {} impl fmt::Display for InvalidHeader { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { @@ -483,10 +446,6 @@ pub enum HaltReason { EOFFunctionStackOverflow, /// Check for target address validity is only done inside subcall. InvalidEXTCALLTarget, - - /* Optimism errors */ - #[cfg(feature = "optimism")] - FailedDeposit, } #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)] diff --git a/crates/primitives/src/specification.rs b/crates/primitives/src/specification.rs index ac3c5a3ede..933bad621b 100644 --- a/crates/primitives/src/specification.rs +++ b/crates/primitives/src/specification.rs @@ -5,7 +5,6 @@ pub use SpecId::*; /// Specification IDs and their activation block. /// /// Information was obtained from the [Ethereum Execution Specifications](https://github.com/ethereum/execution-specs) -#[cfg(not(feature = "optimism"))] #[repr(u8)] #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, enumn::N)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] @@ -34,44 +33,6 @@ pub enum SpecId { LATEST = u8::MAX, } -/// Specification IDs and their activation block. -/// -/// Information was obtained from the [Ethereum Execution Specifications](https://github.com/ethereum/execution-specs) -#[cfg(feature = "optimism")] -#[repr(u8)] -#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash, enumn::N)] -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -pub enum SpecId { - FRONTIER = 0, - FRONTIER_THAWING = 1, - HOMESTEAD = 2, - DAO_FORK = 3, - TANGERINE = 4, - SPURIOUS_DRAGON = 5, - BYZANTIUM = 6, - CONSTANTINOPLE = 7, - PETERSBURG = 8, - ISTANBUL = 9, - MUIR_GLACIER = 10, - BERLIN = 11, - LONDON = 12, - ARROW_GLACIER = 13, - GRAY_GLACIER = 14, - MERGE = 15, - BEDROCK = 16, - REGOLITH = 17, - SHANGHAI = 18, - CANYON = 19, - CANCUN = 20, - ECOTONE = 21, - FJORD = 22, - GRANITE = 23, - PRAGUE = 24, - PRAGUE_EOF = 25, - #[default] - LATEST = u8::MAX, -} - impl SpecId { /// Returns the `SpecId` for the given `u8`. #[inline] @@ -92,37 +53,55 @@ impl SpecId { } } +/// String identifiers for hardforks. +pub mod id { + pub const FRONTIER: &str = "Frontier"; + pub const FRONTIER_THAWING: &str = "Frontier Thawing"; + pub const HOMESTEAD: &str = "Homestead"; + pub const DAO_FORK: &str = "DAO Fork"; + pub const TANGERINE: &str = "Tangerine"; + pub const SPURIOUS_DRAGON: &str = "Spurious"; + pub const BYZANTIUM: &str = "Byzantium"; + pub const CONSTANTINOPLE: &str = "Constantinople"; + pub const PETERSBURG: &str = "Petersburg"; + pub const ISTANBUL: &str = "Istanbul"; + pub const MUIR_GLACIER: &str = "MuirGlacier"; + pub const BERLIN: &str = "Berlin"; + pub const LONDON: &str = "London"; + pub const ARROW_GLACIER: &str = "Arrow Glacier"; + pub const GRAY_GLACIER: &str = "Gray Glacier"; + pub const MERGE: &str = "Merge"; + pub const SHANGHAI: &str = "Shanghai"; + pub const CANCUN: &str = "Cancun"; + pub const PRAGUE: &str = "Prague"; + pub const PRAGUE_EOF: &str = "PragueEOF"; + pub const LATEST: &str = "Latest"; +} + impl From<&str> for SpecId { fn from(name: &str) -> Self { match name { - "Frontier" => Self::FRONTIER, - "Homestead" => Self::HOMESTEAD, - "Tangerine" => Self::TANGERINE, - "Spurious" => Self::SPURIOUS_DRAGON, - "Byzantium" => Self::BYZANTIUM, - "Constantinople" => Self::CONSTANTINOPLE, - "Petersburg" => Self::PETERSBURG, - "Istanbul" => Self::ISTANBUL, - "MuirGlacier" => Self::MUIR_GLACIER, - "Berlin" => Self::BERLIN, - "London" => Self::LONDON, - "Merge" => Self::MERGE, - "Shanghai" => Self::SHANGHAI, - "Cancun" => Self::CANCUN, - "Prague" => Self::PRAGUE, - "PragueEOF" => Self::PRAGUE_EOF, - #[cfg(feature = "optimism")] - "Bedrock" => SpecId::BEDROCK, - #[cfg(feature = "optimism")] - "Regolith" => SpecId::REGOLITH, - #[cfg(feature = "optimism")] - "Canyon" => SpecId::CANYON, - #[cfg(feature = "optimism")] - "Ecotone" => SpecId::ECOTONE, - #[cfg(feature = "optimism")] - "Fjord" => SpecId::FJORD, - #[cfg(feature = "optimism")] - "Granite" => SpecId::GRANITE, + id::FRONTIER => Self::FRONTIER, + id::FRONTIER_THAWING => Self::FRONTIER_THAWING, + id::HOMESTEAD => Self::HOMESTEAD, + id::DAO_FORK => Self::DAO_FORK, + id::TANGERINE => Self::TANGERINE, + id::SPURIOUS_DRAGON => Self::SPURIOUS_DRAGON, + id::BYZANTIUM => Self::BYZANTIUM, + id::CONSTANTINOPLE => Self::CONSTANTINOPLE, + id::PETERSBURG => Self::PETERSBURG, + id::ISTANBUL => Self::ISTANBUL, + id::MUIR_GLACIER => Self::MUIR_GLACIER, + id::BERLIN => Self::BERLIN, + id::LONDON => Self::LONDON, + id::ARROW_GLACIER => Self::ARROW_GLACIER, + id::GRAY_GLACIER => Self::GRAY_GLACIER, + id::MERGE => Self::MERGE, + id::SHANGHAI => Self::SHANGHAI, + id::CANCUN => Self::CANCUN, + id::PRAGUE => Self::PRAGUE, + id::PRAGUE_EOF => Self::PRAGUE_EOF, + id::LATEST => Self::LATEST, _ => Self::LATEST, } } @@ -131,39 +110,27 @@ impl From<&str> for SpecId { impl From for &'static str { fn from(spec_id: SpecId) -> Self { match spec_id { - SpecId::FRONTIER => "Frontier", - SpecId::FRONTIER_THAWING => "Frontier Thawing", - SpecId::HOMESTEAD => "Homestead", - SpecId::DAO_FORK => "DAO Fork", - SpecId::TANGERINE => "Tangerine", - SpecId::SPURIOUS_DRAGON => "Spurious", - SpecId::BYZANTIUM => "Byzantium", - SpecId::CONSTANTINOPLE => "Constantinople", - SpecId::PETERSBURG => "Petersburg", - SpecId::ISTANBUL => "Istanbul", - SpecId::MUIR_GLACIER => "MuirGlacier", - SpecId::BERLIN => "Berlin", - SpecId::LONDON => "London", - SpecId::ARROW_GLACIER => "Arrow Glacier", - SpecId::GRAY_GLACIER => "Gray Glacier", - SpecId::MERGE => "Merge", - SpecId::SHANGHAI => "Shanghai", - SpecId::CANCUN => "Cancun", - SpecId::PRAGUE => "Prague", - SpecId::PRAGUE_EOF => "PragueEOF", - #[cfg(feature = "optimism")] - SpecId::BEDROCK => "Bedrock", - #[cfg(feature = "optimism")] - SpecId::REGOLITH => "Regolith", - #[cfg(feature = "optimism")] - SpecId::CANYON => "Canyon", - #[cfg(feature = "optimism")] - SpecId::ECOTONE => "Ecotone", - #[cfg(feature = "optimism")] - SpecId::FJORD => "Fjord", - #[cfg(feature = "optimism")] - SpecId::GRANITE => "Granite", - SpecId::LATEST => "Latest", + SpecId::FRONTIER => id::FRONTIER, + SpecId::FRONTIER_THAWING => id::FRONTIER_THAWING, + SpecId::HOMESTEAD => id::HOMESTEAD, + SpecId::DAO_FORK => id::DAO_FORK, + SpecId::TANGERINE => id::TANGERINE, + SpecId::SPURIOUS_DRAGON => id::SPURIOUS_DRAGON, + SpecId::BYZANTIUM => id::BYZANTIUM, + SpecId::CONSTANTINOPLE => id::CONSTANTINOPLE, + SpecId::PETERSBURG => id::PETERSBURG, + SpecId::ISTANBUL => id::ISTANBUL, + SpecId::MUIR_GLACIER => id::MUIR_GLACIER, + SpecId::BERLIN => id::BERLIN, + SpecId::LONDON => id::LONDON, + SpecId::ARROW_GLACIER => id::ARROW_GLACIER, + SpecId::GRAY_GLACIER => id::GRAY_GLACIER, + SpecId::MERGE => id::MERGE, + SpecId::SHANGHAI => id::SHANGHAI, + SpecId::CANCUN => id::CANCUN, + SpecId::PRAGUE => id::PRAGUE, + SpecId::PRAGUE_EOF => id::PRAGUE_EOF, + SpecId::LATEST => id::LATEST, } } } @@ -213,101 +180,15 @@ spec!(PRAGUE_EOF, PragueEofSpec); spec!(LATEST, LatestSpec); -// Optimism Hardforks -#[cfg(feature = "optimism")] -spec!(BEDROCK, BedrockSpec); -#[cfg(feature = "optimism")] -spec!(REGOLITH, RegolithSpec); -#[cfg(feature = "optimism")] -spec!(CANYON, CanyonSpec); -#[cfg(feature = "optimism")] -spec!(ECOTONE, EcotoneSpec); -#[cfg(feature = "optimism")] -spec!(FJORD, FjordSpec); -#[cfg(feature = "optimism")] -spec!(GRANITE, GraniteSpec); - -#[cfg(not(feature = "optimism"))] -#[macro_export] -macro_rules! spec_to_generic { - ($spec_id:expr, $e:expr) => {{ - match $spec_id { - $crate::SpecId::FRONTIER | SpecId::FRONTIER_THAWING => { - use $crate::FrontierSpec as SPEC; - $e - } - $crate::SpecId::HOMESTEAD | SpecId::DAO_FORK => { - use $crate::HomesteadSpec as SPEC; - $e - } - $crate::SpecId::TANGERINE => { - use $crate::TangerineSpec as SPEC; - $e - } - $crate::SpecId::SPURIOUS_DRAGON => { - use $crate::SpuriousDragonSpec as SPEC; - $e - } - $crate::SpecId::BYZANTIUM => { - use $crate::ByzantiumSpec as SPEC; - $e - } - $crate::SpecId::PETERSBURG | $crate::SpecId::CONSTANTINOPLE => { - use $crate::PetersburgSpec as SPEC; - $e - } - $crate::SpecId::ISTANBUL | $crate::SpecId::MUIR_GLACIER => { - use $crate::IstanbulSpec as SPEC; - $e - } - $crate::SpecId::BERLIN => { - use $crate::BerlinSpec as SPEC; - $e - } - $crate::SpecId::LONDON - | $crate::SpecId::ARROW_GLACIER - | $crate::SpecId::GRAY_GLACIER => { - use $crate::LondonSpec as SPEC; - $e - } - $crate::SpecId::MERGE => { - use $crate::MergeSpec as SPEC; - $e - } - $crate::SpecId::SHANGHAI => { - use $crate::ShanghaiSpec as SPEC; - $e - } - $crate::SpecId::CANCUN => { - use $crate::CancunSpec as SPEC; - $e - } - $crate::SpecId::LATEST => { - use $crate::LatestSpec as SPEC; - $e - } - $crate::SpecId::PRAGUE => { - use $crate::PragueSpec as SPEC; - $e - } - $crate::SpecId::PRAGUE_EOF => { - use $crate::PragueEofSpec as SPEC; - $e - } - } - }}; -} - -#[cfg(feature = "optimism")] #[macro_export] macro_rules! spec_to_generic { ($spec_id:expr, $e:expr) => {{ match $spec_id { - $crate::SpecId::FRONTIER | SpecId::FRONTIER_THAWING => { + $crate::SpecId::FRONTIER | $crate::SpecId::FRONTIER_THAWING => { use $crate::FrontierSpec as SPEC; $e } - $crate::SpecId::HOMESTEAD | SpecId::DAO_FORK => { + $crate::SpecId::HOMESTEAD | $crate::SpecId::DAO_FORK => { use $crate::HomesteadSpec as SPEC; $e } @@ -365,30 +246,6 @@ macro_rules! spec_to_generic { use $crate::PragueEofSpec as SPEC; $e } - $crate::SpecId::BEDROCK => { - use $crate::BedrockSpec as SPEC; - $e - } - $crate::SpecId::REGOLITH => { - use $crate::RegolithSpec as SPEC; - $e - } - $crate::SpecId::CANYON => { - use $crate::CanyonSpec as SPEC; - $e - } - $crate::SpecId::ECOTONE => { - use $crate::EcotoneSpec as SPEC; - $e - } - $crate::SpecId::FJORD => { - use $crate::FjordSpec as SPEC; - $e - } - $crate::SpecId::GRANITE => { - use $crate::GraniteSpec as SPEC; - $e - } } }}; } @@ -417,168 +274,9 @@ mod tests { spec_to_generic!(ARROW_GLACIER, assert_eq!(SPEC::SPEC_ID, LONDON)); spec_to_generic!(GRAY_GLACIER, assert_eq!(SPEC::SPEC_ID, LONDON)); spec_to_generic!(MERGE, assert_eq!(SPEC::SPEC_ID, MERGE)); - #[cfg(feature = "optimism")] - spec_to_generic!(BEDROCK, assert_eq!(SPEC::SPEC_ID, BEDROCK)); - #[cfg(feature = "optimism")] - spec_to_generic!(REGOLITH, assert_eq!(SPEC::SPEC_ID, REGOLITH)); - spec_to_generic!(SHANGHAI, assert_eq!(SPEC::SPEC_ID, SHANGHAI)); - #[cfg(feature = "optimism")] - spec_to_generic!(CANYON, assert_eq!(SPEC::SPEC_ID, CANYON)); spec_to_generic!(CANCUN, assert_eq!(SPEC::SPEC_ID, CANCUN)); - #[cfg(feature = "optimism")] - spec_to_generic!(ECOTONE, assert_eq!(SPEC::SPEC_ID, ECOTONE)); - #[cfg(feature = "optimism")] - spec_to_generic!(FJORD, assert_eq!(SPEC::SPEC_ID, FJORD)); - #[cfg(feature = "optimism")] - spec_to_generic!(GRANITE, assert_eq!(SPEC::SPEC_ID, GRANITE)); spec_to_generic!(PRAGUE, assert_eq!(SPEC::SPEC_ID, PRAGUE)); spec_to_generic!(PRAGUE_EOF, assert_eq!(SPEC::SPEC_ID, PRAGUE_EOF)); spec_to_generic!(LATEST, assert_eq!(SPEC::SPEC_ID, LATEST)); } } - -#[cfg(feature = "optimism")] -#[cfg(test)] -mod optimism_tests { - use super::*; - - #[test] - fn test_bedrock_post_merge_hardforks() { - assert!(BedrockSpec::enabled(SpecId::MERGE)); - assert!(!BedrockSpec::enabled(SpecId::SHANGHAI)); - assert!(!BedrockSpec::enabled(SpecId::CANCUN)); - assert!(!BedrockSpec::enabled(SpecId::LATEST)); - assert!(BedrockSpec::enabled(SpecId::BEDROCK)); - assert!(!BedrockSpec::enabled(SpecId::REGOLITH)); - } - - #[test] - fn test_regolith_post_merge_hardforks() { - assert!(RegolithSpec::enabled(SpecId::MERGE)); - assert!(!RegolithSpec::enabled(SpecId::SHANGHAI)); - assert!(!RegolithSpec::enabled(SpecId::CANCUN)); - assert!(!RegolithSpec::enabled(SpecId::LATEST)); - assert!(RegolithSpec::enabled(SpecId::BEDROCK)); - assert!(RegolithSpec::enabled(SpecId::REGOLITH)); - } - - #[test] - fn test_bedrock_post_merge_hardforks_spec_id() { - assert!(SpecId::enabled(SpecId::BEDROCK, SpecId::MERGE)); - assert!(!SpecId::enabled(SpecId::BEDROCK, SpecId::SHANGHAI)); - assert!(!SpecId::enabled(SpecId::BEDROCK, SpecId::CANCUN)); - assert!(!SpecId::enabled(SpecId::BEDROCK, SpecId::LATEST)); - assert!(SpecId::enabled(SpecId::BEDROCK, SpecId::BEDROCK)); - assert!(!SpecId::enabled(SpecId::BEDROCK, SpecId::REGOLITH)); - } - - #[test] - fn test_regolith_post_merge_hardforks_spec_id() { - assert!(SpecId::enabled(SpecId::REGOLITH, SpecId::MERGE)); - assert!(!SpecId::enabled(SpecId::REGOLITH, SpecId::SHANGHAI)); - assert!(!SpecId::enabled(SpecId::REGOLITH, SpecId::CANCUN)); - assert!(!SpecId::enabled(SpecId::REGOLITH, SpecId::LATEST)); - assert!(SpecId::enabled(SpecId::REGOLITH, SpecId::BEDROCK)); - assert!(SpecId::enabled(SpecId::REGOLITH, SpecId::REGOLITH)); - } - - #[test] - fn test_canyon_post_merge_hardforks() { - assert!(CanyonSpec::enabled(SpecId::MERGE)); - assert!(CanyonSpec::enabled(SpecId::SHANGHAI)); - assert!(!CanyonSpec::enabled(SpecId::CANCUN)); - assert!(!CanyonSpec::enabled(SpecId::LATEST)); - assert!(CanyonSpec::enabled(SpecId::BEDROCK)); - assert!(CanyonSpec::enabled(SpecId::REGOLITH)); - assert!(CanyonSpec::enabled(SpecId::CANYON)); - } - - #[test] - fn test_canyon_post_merge_hardforks_spec_id() { - assert!(SpecId::enabled(SpecId::CANYON, SpecId::MERGE)); - assert!(SpecId::enabled(SpecId::CANYON, SpecId::SHANGHAI)); - assert!(!SpecId::enabled(SpecId::CANYON, SpecId::CANCUN)); - assert!(!SpecId::enabled(SpecId::CANYON, SpecId::LATEST)); - assert!(SpecId::enabled(SpecId::CANYON, SpecId::BEDROCK)); - assert!(SpecId::enabled(SpecId::CANYON, SpecId::REGOLITH)); - assert!(SpecId::enabled(SpecId::CANYON, SpecId::CANYON)); - } - - #[test] - fn test_ecotone_post_merge_hardforks() { - assert!(EcotoneSpec::enabled(SpecId::MERGE)); - assert!(EcotoneSpec::enabled(SpecId::SHANGHAI)); - assert!(EcotoneSpec::enabled(SpecId::CANCUN)); - assert!(!EcotoneSpec::enabled(SpecId::LATEST)); - assert!(EcotoneSpec::enabled(SpecId::BEDROCK)); - assert!(EcotoneSpec::enabled(SpecId::REGOLITH)); - assert!(EcotoneSpec::enabled(SpecId::CANYON)); - assert!(EcotoneSpec::enabled(SpecId::ECOTONE)); - } - - #[test] - fn test_ecotone_post_merge_hardforks_spec_id() { - assert!(SpecId::enabled(SpecId::ECOTONE, SpecId::MERGE)); - assert!(SpecId::enabled(SpecId::ECOTONE, SpecId::SHANGHAI)); - assert!(SpecId::enabled(SpecId::ECOTONE, SpecId::CANCUN)); - assert!(!SpecId::enabled(SpecId::ECOTONE, SpecId::LATEST)); - assert!(SpecId::enabled(SpecId::ECOTONE, SpecId::BEDROCK)); - assert!(SpecId::enabled(SpecId::ECOTONE, SpecId::REGOLITH)); - assert!(SpecId::enabled(SpecId::ECOTONE, SpecId::CANYON)); - assert!(SpecId::enabled(SpecId::ECOTONE, SpecId::ECOTONE)); - } - - #[test] - fn test_fjord_post_merge_hardforks() { - assert!(FjordSpec::enabled(SpecId::MERGE)); - assert!(FjordSpec::enabled(SpecId::SHANGHAI)); - assert!(FjordSpec::enabled(SpecId::CANCUN)); - assert!(!FjordSpec::enabled(SpecId::LATEST)); - assert!(FjordSpec::enabled(SpecId::BEDROCK)); - assert!(FjordSpec::enabled(SpecId::REGOLITH)); - assert!(FjordSpec::enabled(SpecId::CANYON)); - assert!(FjordSpec::enabled(SpecId::ECOTONE)); - assert!(FjordSpec::enabled(SpecId::FJORD)); - } - - #[test] - fn test_fjord_post_merge_hardforks_spec_id() { - assert!(SpecId::enabled(SpecId::FJORD, SpecId::MERGE)); - assert!(SpecId::enabled(SpecId::FJORD, SpecId::SHANGHAI)); - assert!(SpecId::enabled(SpecId::FJORD, SpecId::CANCUN)); - assert!(!SpecId::enabled(SpecId::FJORD, SpecId::LATEST)); - assert!(SpecId::enabled(SpecId::FJORD, SpecId::BEDROCK)); - assert!(SpecId::enabled(SpecId::FJORD, SpecId::REGOLITH)); - assert!(SpecId::enabled(SpecId::FJORD, SpecId::CANYON)); - assert!(SpecId::enabled(SpecId::FJORD, SpecId::ECOTONE)); - assert!(SpecId::enabled(SpecId::FJORD, SpecId::FJORD)); - } - - #[test] - fn test_granite_post_merge_hardforks() { - assert!(GraniteSpec::enabled(SpecId::MERGE)); - assert!(GraniteSpec::enabled(SpecId::SHANGHAI)); - assert!(GraniteSpec::enabled(SpecId::CANCUN)); - assert!(!GraniteSpec::enabled(SpecId::LATEST)); - assert!(GraniteSpec::enabled(SpecId::BEDROCK)); - assert!(GraniteSpec::enabled(SpecId::REGOLITH)); - assert!(GraniteSpec::enabled(SpecId::CANYON)); - assert!(GraniteSpec::enabled(SpecId::ECOTONE)); - assert!(GraniteSpec::enabled(SpecId::FJORD)); - assert!(GraniteSpec::enabled(SpecId::GRANITE)); - } - - #[test] - fn test_granite_post_merge_hardforks_spec_id() { - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::MERGE)); - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::SHANGHAI)); - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::CANCUN)); - assert!(!SpecId::enabled(SpecId::GRANITE, SpecId::LATEST)); - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::BEDROCK)); - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::REGOLITH)); - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::CANYON)); - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::ECOTONE)); - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::FJORD)); - assert!(SpecId::enabled(SpecId::GRANITE, SpecId::GRANITE)); - } -} diff --git a/crates/primitives/src/transaction.rs b/crates/primitives/src/transaction.rs new file mode 100644 index 0000000000..f2a1577f70 --- /dev/null +++ b/crates/primitives/src/transaction.rs @@ -0,0 +1,64 @@ +use crate::{AccessListItem, Address, AuthorizationList, Bytes, TxKind, B256, GAS_PER_BLOB, U256}; + +/// Trait for retrieving transaction information required for execution. +pub trait Transaction { + /// Caller aka Author aka transaction signer. + fn caller(&self) -> &Address; + /// The maximum amount of gas the transaction can use. + fn gas_limit(&self) -> u64; + /// The gas price the sender is willing to pay. + fn gas_price(&self) -> &U256; + /// Returns what kind of transaction this is. + fn kind(&self) -> TxKind; + /// The value sent to the receiver of `TxKind::Call`. + fn value(&self) -> &U256; + /// Returns the input data of the transaction. + fn data(&self) -> &Bytes; + /// The nonce of the transaction. + fn nonce(&self) -> u64; + /// The chain ID of the transaction. If set to `None`, no checks are performed. + /// + /// Incorporated as part of the Spurious Dragon upgrade via [EIP-155]. + /// + /// [EIP-155]: https://eips.ethereum.org/EIPS/eip-155 + fn chain_id(&self) -> Option; + /// A list of addresses and storage keys that the transaction plans to access. + /// + /// Added in [EIP-2930]. + /// + /// [EIP-2930]: https://eips.ethereum.org/EIPS/eip-2930 + fn access_list(&self) -> &[AccessListItem]; + /// The maximum priority fee per gas the sender is willing to pay. + /// + /// Incorporated as part of the London upgrade via [EIP-1559]. + /// + /// [EIP-1559]: https://eips.ethereum.org/EIPS/eip-1559 + fn max_priority_fee_per_gas(&self) -> Option<&U256>; + /// The list of blob versioned hashes. Per EIP there should be at least + /// one blob present if [`Self::max_fee_per_blob_gas`] is `Some`. + /// + /// Incorporated as part of the Cancun upgrade via [EIP-4844]. + /// + /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 + fn blob_hashes(&self) -> &[B256]; + /// The maximum fee per blob gas the sender is willing to pay. + /// + /// Incorporated as part of the Cancun upgrade via [EIP-4844]. + /// + /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 + fn max_fee_per_blob_gas(&self) -> Option<&U256>; + /// List of authorizations, that contains the signature that authorizes this + /// caller to place the code to signer account. + /// + /// Set EOA account code for one transaction + /// + /// [EIP-Set EOA account code for one transaction](https://eips.ethereum.org/EIPS/eip-7702) + fn authorization_list(&self) -> Option<&AuthorizationList>; + + /// See [EIP-4844], [`crate::Env::calc_data_fee`], and [`crate::Env::calc_max_data_fee`]. + /// + /// [EIP-4844]: https://eips.ethereum.org/EIPS/eip-4844 + fn get_total_blob_gas(&self) -> u64 { + GAS_PER_BLOB * self.blob_hashes().len() as u64 + } +} diff --git a/crates/revm/Cargo.toml b/crates/revm/Cargo.toml index 559677f1dd..f5ddad0c4e 100644 --- a/crates/revm/Cargo.toml +++ b/crates/revm/Cargo.toml @@ -28,7 +28,7 @@ revm-precompile = { path = "../precompile", version = "11.0.1", default-features # misc auto_impl = { version = "1.2", default-features = false } -cfg-if = "1.0" +derive-where = { version = "1.2.7", default-features = false } dyn-clone = "1.0" # Optional @@ -84,18 +84,6 @@ portable = ["revm-precompile/portable", "revm-interpreter/portable"] test-utils = [] -optimism = ["revm-interpreter/optimism", "revm-precompile/optimism"] -# Optimism default handler enabled Optimism handler register by default in EvmBuilder. -optimism-default-handler = [ - "optimism", - "revm-precompile/optimism-default-handler", - "revm-interpreter/optimism-default-handler", -] -negate-optimism-default-handler = [ - "revm-precompile/negate-optimism-default-handler", - "revm-interpreter/negate-optimism-default-handler", -] - ethersdb = ["std", "dep:tokio", "dep:ethers-providers", "dep:ethers-core"] alloydb = [ diff --git a/crates/revm/benches/bench.rs b/crates/revm/benches/bench.rs index 59cc261c9f..fd8f7d193a 100644 --- a/crates/revm/benches/bench.rs +++ b/crates/revm/benches/bench.rs @@ -4,14 +4,14 @@ use criterion::{ use revm::{ db::BenchmarkDB, interpreter::{analysis::to_analysed, Contract, DummyHost, Interpreter}, - primitives::{address, bytes, hex, BerlinSpec, Bytecode, Bytes, TxKind, U256}, + primitives::{address, bytes, hex, BerlinSpec, Bytecode, Bytes, EthereumWiring, TxKind, U256}, Evm, }; use revm_interpreter::{opcode::make_instruction_table, SharedMemory, EMPTY_SHARED_MEMORY}; use std::time::Duration; fn analysis(c: &mut Criterion) { - let evm = Evm::builder() + let evm = Evm::>::builder() .modify_tx_env(|tx| { tx.caller = address!("0000000000000000000000000000000000000002"); tx.transact_to = TxKind::Call(address!("0000000000000000000000000000000000000000")); @@ -29,16 +29,13 @@ fn analysis(c: &mut Criterion) { .sample_size(10); let raw = Bytecode::new_raw(contract_data.clone()); - let mut evm = evm - .modify() - .reset_handler_with_db(BenchmarkDB::new_bytecode(raw)) - .build(); + let mut evm = evm.modify().with_db(BenchmarkDB::new_bytecode(raw)).build(); bench_transact(&mut g, &mut evm); let analysed = to_analysed(Bytecode::new_raw(contract_data)); let mut evm = evm .modify() - .reset_handler_with_db(BenchmarkDB::new_bytecode(analysed)) + .with_db(BenchmarkDB::new_bytecode(analysed)) .build(); bench_transact(&mut g, &mut evm); @@ -46,7 +43,7 @@ fn analysis(c: &mut Criterion) { } fn snailtracer(c: &mut Criterion) { - let mut evm = Evm::builder() + let mut evm = Evm::>::builder() .with_db(BenchmarkDB::new_bytecode(bytecode(SNAILTRACER))) .modify_tx_env(|tx| { tx.caller = address!("1000000000000000000000000000000000000000"); @@ -66,7 +63,7 @@ fn snailtracer(c: &mut Criterion) { } fn transfer(c: &mut Criterion) { - let mut evm = Evm::builder() + let mut evm = Evm::>::builder() .with_db(BenchmarkDB::new_bytecode(Bytecode::new())) .modify_tx_env(|tx| { tx.caller = address!("0000000000000000000000000000000000000001"); @@ -81,7 +78,10 @@ fn transfer(c: &mut Criterion) { g.finish(); } -fn bench_transact(g: &mut BenchmarkGroup<'_, WallTime>, evm: &mut Evm<'_, EXT, BenchmarkDB>) { +fn bench_transact( + g: &mut BenchmarkGroup<'_, WallTime>, + evm: &mut Evm<'_, EthereumWiring>, +) { let state = match evm.context.evm.db.0 { Bytecode::LegacyRaw(_) => "raw", Bytecode::LegacyAnalyzed(_) => "analysed", @@ -92,7 +92,10 @@ fn bench_transact(g: &mut BenchmarkGroup<'_, WallTime>, evm: &mut Evm<'_, E g.bench_function(id, |b| b.iter(|| evm.transact().unwrap())); } -fn bench_eval(g: &mut BenchmarkGroup<'_, WallTime>, evm: &mut Evm<'static, (), BenchmarkDB>) { +fn bench_eval( + g: &mut BenchmarkGroup<'_, WallTime>, + evm: &mut Evm<'static, EthereumWiring>, +) { g.bench_function("eval", |b| { let contract = Contract { input: evm.context.evm.env.tx.data.clone(), @@ -101,7 +104,8 @@ fn bench_eval(g: &mut BenchmarkGroup<'_, WallTime>, evm: &mut Evm<'static, (), B }; let mut shared_memory = SharedMemory::new(); let mut host = DummyHost::new(*evm.context.evm.env.clone()); - let instruction_table = make_instruction_table::(); + let instruction_table = + make_instruction_table::>, BerlinSpec>(); b.iter(move || { // replace memory with empty memory to use it inside interpreter. // Later return memory back. diff --git a/crates/revm/src/builder.rs b/crates/revm/src/builder.rs index 1ce88486ba..e3db22bed8 100644 --- a/crates/revm/src/builder.rs +++ b/crates/revm/src/builder.rs @@ -1,10 +1,8 @@ use crate::{ - db::{Database, DatabaseRef, EmptyDB, WrapDatabaseRef}, + db::EmptyDB, handler::register, - primitives::{ - BlockEnv, CfgEnv, CfgEnvWithHandlerCfg, Env, EnvWithHandlerCfg, HandlerCfg, SpecId, TxEnv, - }, - Context, ContextWithHandlerCfg, Evm, Handler, + primitives::{CfgEnv, EnvWiring, EthereumWiring, InvalidTransaction, TransactionValidation}, + Context, Evm, EvmContext, EvmWiring, Handler, }; use core::marker::PhantomData; use std::boxed::Box; @@ -12,10 +10,12 @@ use std::boxed::Box; /// Evm Builder allows building or modifying EVM. /// Note that some of the methods that changes underlying structures /// will reset the registered handler to default mainnet. -pub struct EvmBuilder<'a, BuilderStage, EXT, DB: Database> { - context: Context, +pub struct EvmBuilder<'a, BuilderStage, EvmWiringT: EvmWiring> { + database: Option, + external_context: Option, + env: Option>>, /// Handler that will be used by EVM. It contains handle registers - handler: Handler<'a, Context, EXT, DB>, + handler: Handler<'a, EvmWiringT, Context>, /// Phantom data to mark the stage of the builder. phantom: PhantomData, } @@ -28,281 +28,293 @@ pub struct SetGenericStage; /// Requires the database and external context to be set. pub struct HandlerStage; -impl<'a> Default for EvmBuilder<'a, SetGenericStage, (), EmptyDB> { +impl<'a> Default for EvmBuilder<'a, SetGenericStage, EthereumWiring> { fn default() -> Self { - cfg_if::cfg_if! { - if #[cfg(all(feature = "optimism-default-handler", - not(feature = "negate-optimism-default-handler")))] { - let mut handler_cfg = HandlerCfg::new(SpecId::LATEST); - // set is_optimism to true by default. - handler_cfg.is_optimism = true; - - } else { - let handler_cfg = HandlerCfg::new(SpecId::LATEST); - } - } - - Self { - context: Context::default(), - handler: EvmBuilder::<'a, SetGenericStage, (), EmptyDB>::handler(handler_cfg), - phantom: PhantomData, - } + Self::new() } } -impl<'a, EXT, DB: Database> EvmBuilder<'a, SetGenericStage, EXT, DB> { - /// Sets the [`EmptyDB`] as the [`Database`] that will be used by [`Evm`]. - pub fn with_empty_db(self) -> EvmBuilder<'a, SetGenericStage, EXT, EmptyDB> { - EvmBuilder { - context: Context::new( - self.context.evm.with_db(EmptyDB::default()), - self.context.external, - ), - handler: EvmBuilder::<'a, SetGenericStage, EXT, EmptyDB>::handler(self.handler.cfg()), - phantom: PhantomData, - } - } - /// Sets the [`Database`] that will be used by [`Evm`]. - pub fn with_db(self, db: ODB) -> EvmBuilder<'a, SetGenericStage, EXT, ODB> { - EvmBuilder { - context: Context::new(self.context.evm.with_db(db), self.context.external), - handler: EvmBuilder::<'a, SetGenericStage, EXT, ODB>::handler(self.handler.cfg()), - phantom: PhantomData, - } - } - /// Sets the [`DatabaseRef`] that will be used by [`Evm`]. - pub fn with_ref_db( - self, - db: ODB, - ) -> EvmBuilder<'a, SetGenericStage, EXT, WrapDatabaseRef> { - EvmBuilder { - context: Context::new( - self.context.evm.with_db(WrapDatabaseRef(db)), - self.context.external, - ), - handler: EvmBuilder::<'a, SetGenericStage, EXT, WrapDatabaseRef>::handler( - self.handler.cfg(), - ), - phantom: PhantomData, - } - } - - /// Sets the external context that will be used by [`Evm`]. - pub fn with_external_context( - self, - external: OEXT, - ) -> EvmBuilder<'a, SetGenericStage, OEXT, DB> { +impl<'a, EvmWiringT: EvmWiring> EvmBuilder<'a, SetGenericStage, EvmWiringT> +where + EvmWiringT::Transaction: Default, + EvmWiringT::Block: Default, +{ + /// Sets the [`EvmWiring`] that will be used by [`Evm`]. + pub fn new() -> EvmBuilder<'a, SetGenericStage, EvmWiringT> { EvmBuilder { - context: Context::new(self.context.evm, external), - handler: EvmBuilder::<'a, SetGenericStage, OEXT, DB>::handler(self.handler.cfg()), + database: None, + external_context: None, + env: Some(Box::new(EnvWiring::::default())), + handler: EvmWiringT::handler::<'a>(EvmWiringT::Hardfork::default()), phantom: PhantomData, } } +} - /// Sets Builder with [`EnvWithHandlerCfg`]. - pub fn with_env_with_handler_cfg( - mut self, - env_with_handler_cfg: EnvWithHandlerCfg, - ) -> EvmBuilder<'a, HandlerStage, EXT, DB> { - let EnvWithHandlerCfg { env, handler_cfg } = env_with_handler_cfg; - self.context.evm.env = env; +impl<'a, EvmWiringT: EvmWiring> EvmBuilder<'a, SetGenericStage, EvmWiringT> { + pub fn new_with( + database: EvmWiringT::Database, + external_context: EvmWiringT::ExternalContext, + env: Box>, + handler: Handler<'a, EvmWiringT, Context>, + ) -> EvmBuilder<'a, SetGenericStage, EvmWiringT> { EvmBuilder { - context: self.context, - handler: EvmBuilder::<'a, HandlerStage, EXT, DB>::handler(handler_cfg), + database: Some(database), + external_context: Some(external_context), + env: Some(env), + handler, phantom: PhantomData, } } - /// Sets Builder with [`ContextWithHandlerCfg`]. - pub fn with_context_with_handler_cfg( + pub fn with_wiring( self, - context_with_handler_cfg: ContextWithHandlerCfg, - ) -> EvmBuilder<'a, HandlerStage, OEXT, ODB> { - EvmBuilder { - context: context_with_handler_cfg.context, - handler: EvmBuilder::<'a, HandlerStage, OEXT, ODB>::handler( - context_with_handler_cfg.cfg, - ), - phantom: PhantomData, - } - } - - /// Sets Builder with [`CfgEnvWithHandlerCfg`]. - pub fn with_cfg_env_with_handler_cfg( - mut self, - cfg_env_and_spec_id: CfgEnvWithHandlerCfg, - ) -> EvmBuilder<'a, HandlerStage, EXT, DB> { - self.context.evm.env.cfg = cfg_env_and_spec_id.cfg_env; - + ) -> EvmBuilder<'a, SetGenericStage, NewEvmWiringT> + where + NewEvmWiringT::Transaction: Default, + NewEvmWiringT::Block: Default, + { EvmBuilder { - context: self.context, - handler: EvmBuilder::<'a, HandlerStage, EXT, DB>::handler( - cfg_env_and_spec_id.handler_cfg, - ), + database: None, + external_context: None, + env: Some(Box::new(EnvWiring::::default())), + handler: NewEvmWiringT::handler::<'a>(NewEvmWiringT::Hardfork::default()), phantom: PhantomData, } } - /// Sets Builder with [`HandlerCfg`] - pub fn with_handler_cfg( + pub fn reset_handler_with_external_context< + NewEvmWiringT: EvmWiring< + Database = EvmWiringT::Database, + Block = EvmWiringT::Block, + Transaction = EvmWiringT::Transaction, + Hardfork = EvmWiringT::Hardfork, + HaltReason = EvmWiringT::HaltReason, + >, + >( self, - handler_cfg: HandlerCfg, - ) -> EvmBuilder<'a, HandlerStage, EXT, DB> { + ) -> EvmBuilder<'a, SetGenericStage, NewEvmWiringT> { EvmBuilder { - context: self.context, - handler: EvmBuilder::<'a, HandlerStage, EXT, DB>::handler(handler_cfg), + database: self.database, + external_context: None, + env: self.env, + // Handler that will be used by EVM. It contains handle registers + handler: NewEvmWiringT::handler::<'a>(NewEvmWiringT::Hardfork::default()), phantom: PhantomData, } } - /// Sets the Optimism handler with latest spec. - /// - /// If `optimism-default-handler` feature is enabled this is not needed. - #[cfg(feature = "optimism")] - pub fn optimism(mut self) -> EvmBuilder<'a, HandlerStage, EXT, DB> { - self.handler = Handler::optimism_with_spec(self.handler.cfg.spec_id); - EvmBuilder { - context: self.context, - handler: self.handler, - phantom: PhantomData, - } - } - - /// Sets the mainnet handler with latest spec. - /// - /// Enabled only with `optimism-default-handler` feature. - #[cfg(feature = "optimism-default-handler")] - pub fn mainnet(mut self) -> EvmBuilder<'a, HandlerStage, EXT, DB> { - self.handler = Handler::mainnet_with_spec(self.handler.cfg.spec_id); + pub fn reset_new_database< + NewEvmWiringT: EvmWiring< + ExternalContext = EvmWiringT::ExternalContext, + Block = EvmWiringT::Block, + Transaction = EvmWiringT::Transaction, + Hardfork = EvmWiringT::Hardfork, + HaltReason = EvmWiringT::HaltReason, + >, + >( + self, + ) -> EvmBuilder<'a, SetGenericStage, NewEvmWiringT> { EvmBuilder { - context: self.context, - handler: self.handler, + database: None, + external_context: self.external_context, + env: self.env, + // Handler that will be used by EVM. It contains handle registers + handler: NewEvmWiringT::handler::<'a>(NewEvmWiringT::Hardfork::default()), phantom: PhantomData, } } } -impl<'a, EXT, DB: Database> EvmBuilder<'a, HandlerStage, EXT, DB> { - /// Creates new builder from Evm, Evm is consumed and all field are moved to Builder. - /// It will preserve set handler and context. - /// - /// Builder is in HandlerStage and both database and external are set. - pub fn new(evm: Evm<'a, EXT, DB>) -> Self { - Self { - context: evm.context, - handler: evm.handler, - phantom: PhantomData, - } - } - - /// Sets the [`EmptyDB`] and resets the [`Handler`] to default mainnet. - pub fn reset_handler_with_empty_db(self) -> EvmBuilder<'a, HandlerStage, EXT, EmptyDB> { - EvmBuilder { - context: Context::new( - self.context.evm.with_db(EmptyDB::default()), - self.context.external, - ), - handler: EvmBuilder::<'a, HandlerStage, EXT, EmptyDB>::handler(self.handler.cfg()), - phantom: PhantomData, - } +impl<'a, EvmWiringT> EvmBuilder<'a, SetGenericStage, EvmWiringT> +where + EvmWiringT: + EvmWiring>>, +{ + /// Creates the default [EvmWiring]::[crate::Database] that will be used by [`Evm`]. + pub fn with_default_db(mut self) -> EvmBuilder<'a, SetGenericStage, EvmWiringT> + where + EvmWiringT::Database: Default, + { + self.database = Some(EvmWiringT::Database::default()); + self } - /// Resets the [`Handler`] and sets base mainnet handler. - /// - /// Enabled only with `optimism-default-handler` feature. - #[cfg(feature = "optimism-default-handler")] - pub fn reset_handler_with_mainnet(mut self) -> EvmBuilder<'a, HandlerStage, EXT, DB> { - self.handler = Handler::mainnet_with_spec(self.handler.cfg.spec_id); - EvmBuilder { - context: self.context, - handler: self.handler, - phantom: PhantomData, - } + pub fn with_default_ext_ctx(mut self) -> EvmBuilder<'a, SetGenericStage, EvmWiringT> + where + EvmWiringT::ExternalContext: Default, + { + self.external_context = Some(EvmWiringT::ExternalContext::default()); + self } - /// Sets the [`Database`] that will be used by [`Evm`] - /// and resets the [`Handler`] to default mainnet. - pub fn reset_handler_with_db( - self, - db: ODB, - ) -> EvmBuilder<'a, SetGenericStage, EXT, ODB> { - EvmBuilder { - context: Context::new(self.context.evm.with_db(db), self.context.external), - handler: EvmBuilder::<'a, SetGenericStage, EXT, ODB>::handler(self.handler.cfg()), - phantom: PhantomData, - } + /// Sets the [`crate::Database`] that will be used by [`Evm`]. + pub fn with_db( + mut self, + db: EvmWiringT::Database, + ) -> EvmBuilder<'a, SetGenericStage, EvmWiringT> { + self.database = Some(db); + self } - /// Resets [`Handler`] and sets the [`DatabaseRef`] that will be used by [`Evm`] - /// and resets the [`Handler`] to default mainnet. - pub fn reset_handler_with_ref_db( - self, - db: ODB, - ) -> EvmBuilder<'a, SetGenericStage, EXT, WrapDatabaseRef> { - EvmBuilder { - context: Context::new( - self.context.evm.with_db(WrapDatabaseRef(db)), - self.context.external, - ), - handler: EvmBuilder::<'a, SetGenericStage, EXT, WrapDatabaseRef>::handler( - self.handler.cfg(), - ), - phantom: PhantomData, - } + /// Sets the external context that will be used by [`Evm`]. + pub fn with_external_context( + mut self, + external_context: EvmWiringT::ExternalContext, + ) -> EvmBuilder<'a, SetGenericStage, EvmWiringT> { + self.external_context = Some(external_context); + self } - /// Resets [`Handler`] and sets new `ExternalContext` type. - /// and resets the [`Handler`] to default mainnet. - pub fn reset_handler_with_external_context( - self, - external: OEXT, - ) -> EvmBuilder<'a, SetGenericStage, OEXT, DB> { - EvmBuilder { - context: Context::new(self.context.evm, external), - handler: EvmBuilder::<'a, SetGenericStage, OEXT, DB>::handler(self.handler.cfg()), - phantom: PhantomData, - } - } + // /// Sets Builder with [`EnvWithEvmWiring`]. + // pub fn with_env_with_handler_cfg( + // mut self, + // env_with_handler_cfg: EnvWithEvmWiring, + // ) -> EvmBuilder<'a, HandlerStage, EvmWiringT> { + // let EnvWithEvmWiring { env, spec_id } = env_with_handler_cfg; + // self.context.evm.env = env; + // EvmBuilder { + // context: self.context, + // handler: EvmWiringT::handler::<'a, EXT, DB>(spec_id), + // phantom: PhantomData, + // } + // } + + // /// Sets Builder with [`ContextWithEvmWiring`]. + // pub fn with_context_with_handler_cfg( + // self, + // context_with_handler_cfg: ContextWithEvmWiring, + // ) -> EvmBuilder<'a, HandlerStage, EvmWiringT, OEXT, ODB> { + // EvmBuilder { + // context: context_with_handler_cfg.context, + // handler: EvmWiringT::handler::<'a, OEXT, ODB>(context_with_handler_cfg.spec_id), + // phantom: PhantomData, + // } + // } + + // /// Sets Builder with [`CfgEnvWithEvmWiring`]. + // pub fn with_cfg_env_with_handler_cfg( + // mut self, + // cfg_env_and_spec_id: CfgEnvWithEvmWiring, + // ) -> EvmBuilder<'a, HandlerStage, EvmWiringT> { + // self.context.evm.env.cfg = cfg_env_and_spec_id.cfg_env; + + // EvmBuilder { + // context: self.context, + // handler: EvmWiringT::handler::<'a>(cfg_env_and_spec_id.spec_id), + // phantom: PhantomData, + // } + // } } -impl<'a, BuilderStage, EXT, DB: Database> EvmBuilder<'a, BuilderStage, EXT, DB> { - /// Creates the default handler. - /// - /// This is useful for adding optimism handle register. - fn handler(handler_cfg: HandlerCfg) -> Handler<'a, Context, EXT, DB> { - Handler::new(handler_cfg) - } +impl<'a, EvmWiringT: EvmWiring> EvmBuilder<'a, HandlerStage, EvmWiringT> { + // /// Creates new builder from Evm, Evm is consumed and all field are moved to Builder. + // /// It will preserve set handler and context. + // /// + // /// Builder is in HandlerStage and both database and external are set. + // pub fn new(evm: Evm<'a, EvmWiringT>) -> Self { + // Self { + // context: evm.context, + // handler: evm.handler, + // phantom: PhantomData, + // } + // } + // } + + // impl<'a, EvmWiringT: EvmWiring> EvmBuilder<'a, HandlerStage, EvmWiringT> + // where + // EvmWiringT: + // EvmWiring>>, + // { + // /// Sets the [`EmptyDB`] and resets the [`Handler`] to default mainnet. + // pub fn reset_handler_with_empty_db(self) -> EvmBuilder<'a, HandlerStage, EvmWiringT> { + // EvmBuilder { + // context: Context::new( + // self.context.evm.with_db(EmptyDB::default()), + // self.context.external, + // ), + // handler: EvmWiringT::handler::<'a>(self.handler.spec_id()), + // phantom: PhantomData, + // } + // } + + // /// Sets the [`Database`] that will be used by [`Evm`] + // /// and resets the [`Handler`] to default mainnet. + // pub fn reset_handler_with_db( + // self, + // db: ODB, + // ) -> EvmBuilder<'a, SetGenericStage, EvmWiringT, EXT, ODB> { + // EvmBuilder { + // context: Context::new(self.context.evm.with_db(db), self.context.external), + // handler: EvmWiringT::handler::<'a, EXT, ODB>(self.handler.spec_id()), + // phantom: PhantomData, + // } + // } + + // /// Resets [`Handler`] and sets the [`DatabaseRef`] that will be used by [`Evm`] + // /// and resets the [`Handler`] to default mainnet. + // pub fn reset_handler_with_ref_db( + // self, + // db: ODB, + // ) -> EvmBuilder<'a, SetGenericStage, EvmWiringT, EXT, WrapDatabaseRef> { + // EvmBuilder { + // context: Context::new( + // self.context.evm.with_db(WrapDatabaseRef(db)), + // self.context.external, + // ), + // handler: EvmWiringT::handler::<'a, EXT, WrapDatabaseRef>(self.handler.spec_id()), + // phantom: PhantomData, + // } + // } + + // /// Resets [`Handler`] and sets new `ExternalContext` type. + // /// and resets the [`Handler`] to default mainnet. + // pub fn reset_handler_with_external_context( + // self, + // external: OEXT, + // ) -> EvmBuilder<'a, SetGenericStage, EvmWiringT, OEXT, DB> { + // EvmBuilder { + // context: Context::new(self.context.evm, external), + // handler: EvmWiringT::handler::<'a, OEXT, DB>(self.handler.spec_id()), + // phantom: PhantomData, + // } + // } +} +impl<'a, BuilderStage, EvmWiringT: EvmWiring> EvmBuilder<'a, BuilderStage, EvmWiringT> { /// This modifies the [EvmBuilder] to make it easy to construct an [`Evm`] with a _specific_ /// handler. /// /// # Example /// ```rust - /// use revm::{EvmBuilder, Handler, primitives::{SpecId, HandlerCfg}}; + /// use revm::{EvmBuilder, EvmHandler, db::EmptyDB, primitives::{EthereumWiring, SpecId}}; /// use revm_interpreter::primitives::CancunSpec; - /// let builder = EvmBuilder::default(); + /// let builder = EvmBuilder::default().with_default_db().with_default_ext_ctx(); /// /// // get the desired handler - /// let mainnet = Handler::mainnet::(); + /// let mainnet = EvmHandler::<'_, EthereumWiring>::mainnet_with_spec(SpecId::CANCUN); /// let builder = builder.with_handler(mainnet); /// /// // build the EVM /// let evm = builder.build(); /// ``` pub fn with_handler( - self, - handler: Handler<'a, Context, EXT, DB>, - ) -> EvmBuilder<'a, BuilderStage, EXT, DB> { - EvmBuilder { - context: self.context, - handler, - phantom: PhantomData, - } + mut self, + handler: Handler<'a, EvmWiringT, Context>, + ) -> EvmBuilder<'a, BuilderStage, EvmWiringT> { + self.handler = handler; + self } /// Builds the [`Evm`]. - pub fn build(self) -> Evm<'a, EXT, DB> { - Evm::new(self.context, self.handler) + pub fn build(self) -> Evm<'a, EvmWiringT> { + Evm::new( + Context::new( + EvmContext::new_with_env(self.database.unwrap(), self.env.unwrap()), + self.external_context.unwrap(), + ), + self.handler, + ) } /// Register Handler that modifies the behavior of EVM. @@ -311,16 +323,11 @@ impl<'a, BuilderStage, EXT, DB: Database> EvmBuilder<'a, BuilderStage, EXT, DB> /// When called, EvmBuilder will transition from SetGenericStage to HandlerStage. pub fn append_handler_register( mut self, - handle_register: register::HandleRegister, - ) -> EvmBuilder<'a, HandlerStage, EXT, DB> { + handle_register: register::HandleRegister, + ) -> EvmBuilder<'a, BuilderStage, EvmWiringT> { self.handler .append_handler_register(register::HandleRegisters::Plain(handle_register)); - EvmBuilder { - context: self.context, - handler: self.handler, - - phantom: PhantomData, - } + self } /// Register Handler that modifies the behavior of EVM. @@ -329,128 +336,136 @@ impl<'a, BuilderStage, EXT, DB: Database> EvmBuilder<'a, BuilderStage, EXT, DB> /// When called, EvmBuilder will transition from SetGenericStage to HandlerStage. pub fn append_handler_register_box( mut self, - handle_register: register::HandleRegisterBox<'a, EXT, DB>, - ) -> EvmBuilder<'a, HandlerStage, EXT, DB> { + handle_register: register::HandleRegisterBox<'a, EvmWiringT>, + ) -> EvmBuilder<'a, BuilderStage, EvmWiringT> { self.handler .append_handler_register(register::HandleRegisters::Box(handle_register)); - EvmBuilder { - context: self.context, - handler: self.handler, - - phantom: PhantomData, - } - } - - /// Sets specification Id , that will mark the version of EVM. - /// It represent the hard fork of ethereum. - /// - /// # Note - /// - /// When changed it will reapply all handle registers, this can be - /// expensive operation depending on registers. - pub fn with_spec_id(mut self, spec_id: SpecId) -> Self { - self.handler.modify_spec_id(spec_id); - EvmBuilder { - context: self.context, - handler: self.handler, - - phantom: PhantomData, - } + self } /// Allows modification of Evm Database. - pub fn modify_db(mut self, f: impl FnOnce(&mut DB)) -> Self { - f(&mut self.context.evm.db); + pub fn modify_db(mut self, f: impl FnOnce(&mut EvmWiringT::Database)) -> Self { + f(self.database.as_mut().unwrap()); self } /// Allows modification of external context. - pub fn modify_external_context(mut self, f: impl FnOnce(&mut EXT)) -> Self { - f(&mut self.context.external); + pub fn modify_external_context( + mut self, + f: impl FnOnce(&mut EvmWiringT::ExternalContext), + ) -> Self { + f(self.external_context.as_mut().unwrap()); self } /// Allows modification of Evm Environment. - pub fn modify_env(mut self, f: impl FnOnce(&mut Box)) -> Self { - f(&mut self.context.evm.env); + pub fn modify_env(mut self, f: impl FnOnce(&mut Box>)) -> Self { + f(self.env.as_mut().unwrap()); self } /// Sets Evm Environment. - pub fn with_env(mut self, env: Box) -> Self { - self.context.evm.env = env; + pub fn with_env(mut self, env: Box>) -> Self { + self.env = Some(env); self } /// Allows modification of Evm's Transaction Environment. - pub fn modify_tx_env(mut self, f: impl FnOnce(&mut TxEnv)) -> Self { - f(&mut self.context.evm.env.tx); + pub fn modify_tx_env(mut self, f: impl FnOnce(&mut EvmWiringT::Transaction)) -> Self { + f(&mut self.env.as_mut().unwrap().tx); self } /// Sets Evm's Transaction Environment. - pub fn with_tx_env(mut self, tx_env: TxEnv) -> Self { - self.context.evm.env.tx = tx_env; + pub fn with_tx_env(mut self, tx_env: EvmWiringT::Transaction) -> Self { + self.env.as_mut().unwrap().tx = tx_env; self } /// Allows modification of Evm's Block Environment. - pub fn modify_block_env(mut self, f: impl FnOnce(&mut BlockEnv)) -> Self { - f(&mut self.context.evm.env.block); + pub fn modify_block_env(mut self, f: impl FnOnce(&mut EvmWiringT::Block)) -> Self { + f(&mut self.env.as_mut().unwrap().block); self } /// Sets Evm's Block Environment. - pub fn with_block_env(mut self, block_env: BlockEnv) -> Self { - self.context.evm.env.block = block_env; + pub fn with_block_env(mut self, block_env: EvmWiringT::Block) -> Self { + self.env.as_mut().unwrap().block = block_env; self } /// Allows modification of Evm's Config Environment. pub fn modify_cfg_env(mut self, f: impl FnOnce(&mut CfgEnv)) -> Self { - f(&mut self.context.evm.env.cfg); + f(&mut self.env.as_mut().unwrap().cfg); self } +} - /// Clears Environment of EVM. - pub fn with_clear_env(mut self) -> Self { - self.context.evm.env.clear(); +impl<'a, BuilderStage, EvmWiringT> EvmBuilder<'a, BuilderStage, EvmWiringT> +where + EvmWiringT: EvmWiring, +{ + /// Clears Block environment of EVM. + pub fn with_clear_block_env(mut self) -> Self { + self.env.as_mut().unwrap().block = EvmWiringT::Block::default(); self } +} +impl<'a, BuilderStage, EvmWiringT> EvmBuilder<'a, BuilderStage, EvmWiringT> +where + EvmWiringT: EvmWiring, +{ /// Clears Transaction environment of EVM. pub fn with_clear_tx_env(mut self) -> Self { - self.context.evm.env.tx.clear(); + self.env.as_mut().unwrap().tx = EvmWiringT::Transaction::default(); self } - /// Clears Block environment of EVM. - pub fn with_clear_block_env(mut self) -> Self { - self.context.evm.env.block.clear(); +} + +impl<'a, BuilderStage, EvmWiringT> EvmBuilder<'a, BuilderStage, EvmWiringT> +where + EvmWiringT: EvmWiring, +{ + /// Clears Environment of EVM. + pub fn with_clear_env(mut self) -> Self { + self.env.as_mut().unwrap().clear(); + self + } +} + +impl<'a, BuilderStage, EvmWiringT: EvmWiring> EvmBuilder<'a, BuilderStage, EvmWiringT> +where + EvmWiringT: + EvmWiring>>, +{ + /// Sets specification Id , that will mark the version of EVM. + /// It represent the hard fork of ethereum. + /// + /// # Note + /// + /// When changed it will reapply all handle registers, this can be + /// expensive operation depending on registers. + pub fn with_spec_id(mut self, spec_id: EvmWiringT::Hardfork) -> Self { + self.handler.modify_spec_id(spec_id); self } /// Resets [`Handler`] to default mainnet. pub fn reset_handler(mut self) -> Self { - self.handler = Self::handler(self.handler.cfg()); + self.handler = EvmWiringT::handler::<'a>(self.handler.spec_id()); self } } #[cfg(test)] mod test { - use super::SpecId; use crate::{ - db::EmptyDB, - inspector::inspector_handle_register, - inspectors::NoOpInspector, - primitives::{ - address, AccountInfo, Address, Bytecode, Bytes, PrecompileResult, TxKind, U256, - }, - Context, ContextPrecompile, ContextStatefulPrecompile, Evm, InMemoryDB, InnerEvmContext, + interpreter::Interpreter, + primitives::{address, AccountInfo, Bytecode, EthereumWiring, TxKind, U256}, + Context, Evm, InMemoryDB, }; - use revm_interpreter::{gas, Host, Interpreter}; - use revm_precompile::PrecompileOutput; - use std::{cell::RefCell, rc::Rc, sync::Arc}; + use std::{cell::RefCell, rc::Rc}; /// Custom evm context #[derive(Default, Clone, Debug)] @@ -469,25 +484,29 @@ mod test { assert_eq!(*custom_context.inner.borrow(), 0); let to_capture = custom_context.clone(); - let mut evm = Evm::builder() - .with_db(InMemoryDB::default()) + let mut evm = Evm::>::builder() + .with_default_db() + .with_default_ext_ctx() .modify_db(|db| { db.insert_account_info(to_addr, AccountInfo::new(U256::ZERO, 0, code_hash, code)) }) - .modify_tx_env(|tx| tx.transact_to = TxKind::Call(to_addr)) + .modify_tx_env(|tx| { + let transact_to = &mut tx.transact_to; + + *transact_to = TxKind::Call(to_addr) + }) // we need to use handle register box to capture the custom context in the handle // register .append_handler_register_box(Box::new(move |handler| { let custom_context = to_capture.clone(); // we need to use a box to capture the custom context in the instruction - let custom_instruction = Box::new( - move |_interp: &mut Interpreter, _host: &mut Context<(), InMemoryDB>| { + let custom_instruction = + Box::new(move |_interp: &mut Interpreter, _host: &mut Context<_>| { // modify the value let mut inner = custom_context.inner.borrow_mut(); *inner += 1; - }, - ); + }); // need to ensure the instruction table is a boxed instruction table so that we // can insert the custom instruction as a boxed instruction @@ -503,138 +522,163 @@ mod test { assert_eq!(*custom_context.inner.borrow(), 1); } - #[test] - fn simple_add_instruction() { - const CUSTOM_INSTRUCTION_COST: u64 = 133; - const INITIAL_TX_GAS: u64 = 21000; - const EXPECTED_RESULT_GAS: u64 = INITIAL_TX_GAS + CUSTOM_INSTRUCTION_COST; - - fn custom_instruction(interp: &mut Interpreter, _host: &mut impl Host) { - // just spend some gas - gas!(interp, CUSTOM_INSTRUCTION_COST); - } - - let code = Bytecode::new_raw([0xED, 0x00].into()); - let code_hash = code.hash_slow(); - let to_addr = address!("ffffffffffffffffffffffffffffffffffffffff"); - - let mut evm = Evm::builder() - .with_db(InMemoryDB::default()) - .modify_db(|db| { - db.insert_account_info(to_addr, AccountInfo::new(U256::ZERO, 0, code_hash, code)) - }) - .modify_tx_env(|tx| tx.transact_to = TxKind::Call(to_addr)) - .append_handler_register(|handler| { - handler.instruction_table.insert(0xED, custom_instruction) - }) - .build(); - - let result_and_state = evm.transact().unwrap(); - assert_eq!(result_and_state.result.gas_used(), EXPECTED_RESULT_GAS); - } - - #[test] - fn simple_build() { - // build without external with latest spec - Evm::builder().build(); - // build with empty db - Evm::builder().with_empty_db().build(); - // build with_db - Evm::builder().with_db(EmptyDB::default()).build(); - // build with empty external - Evm::builder().with_empty_db().build(); - // build with some external - Evm::builder() - .with_empty_db() - .with_external_context(()) - .build(); - // build with spec - Evm::builder() - .with_empty_db() - .with_spec_id(SpecId::HOMESTEAD) - .build(); - - // with with Env change in multiple places - Evm::builder() - .with_empty_db() - .modify_tx_env(|tx| tx.gas_limit = 10) - .build(); - Evm::builder().modify_tx_env(|tx| tx.gas_limit = 10).build(); - Evm::builder() - .with_empty_db() - .modify_tx_env(|tx| tx.gas_limit = 10) - .build(); - Evm::builder() - .with_empty_db() - .modify_tx_env(|tx| tx.gas_limit = 10) - .build(); - - // with inspector handle - Evm::builder() - .with_empty_db() - .with_external_context(NoOpInspector) - .append_handler_register(inspector_handle_register) - .build(); - - // create the builder - let evm = Evm::builder() - .with_db(EmptyDB::default()) - .with_external_context(NoOpInspector) - .append_handler_register(inspector_handle_register) - // this would not compile - // .with_db(..) - .build(); - - let Context { external: _, .. } = evm.into_context(); - } - - #[test] - fn build_modify_build() { - // build evm - let evm = Evm::builder() - .with_empty_db() - .with_spec_id(SpecId::HOMESTEAD) - .build(); - - // modify evm - let evm = evm.modify().with_spec_id(SpecId::FRONTIER).build(); - let _ = evm - .modify() - .modify_tx_env(|tx| tx.chain_id = Some(2)) - .build(); - } - - #[test] - fn build_custom_precompile() { - struct CustomPrecompile; - - impl ContextStatefulPrecompile for CustomPrecompile { - fn call( - &self, - _input: &Bytes, - _gas_limit: u64, - _context: &mut InnerEvmContext, - ) -> PrecompileResult { - Ok(PrecompileOutput::new(10, Bytes::new())) - } - } - - let mut evm = Evm::builder() - .with_empty_db() - .with_spec_id(SpecId::HOMESTEAD) - .append_handler_register(|handler| { - let precompiles = handler.pre_execution.load_precompiles(); - handler.pre_execution.load_precompiles = Arc::new(move || { - let mut precompiles = precompiles.clone(); - precompiles.extend([( - Address::ZERO, - ContextPrecompile::ContextStateful(Arc::new(CustomPrecompile)), - )]); - precompiles - }); - }) - .build(); - - evm.transact().unwrap(); - } + // #[test] + // fn simple_add_instruction() { + // const CUSTOM_INSTRUCTION_COST: u64 = 133; + // const INITIAL_TX_GAS: u64 = 21000; + // const EXPECTED_RESULT_GAS: u64 = INITIAL_TX_GAS + CUSTOM_INSTRUCTION_COST; + + // fn custom_instruction(interp: &mut Interpreter, _host: &mut impl Host) { + // // just spend some gas + // gas!(interp, CUSTOM_INSTRUCTION_COST); + // } + + // let code = Bytecode::new_raw([0xED, 0x00].into()); + // let code_hash = code.hash_slow(); + // let to_addr = address!("ffffffffffffffffffffffffffffffffffffffff"); + + // let mut evm = Evm::builder() + // .with_wiring::>() + // .with_db(InMemoryDB::default()) + // .modify_db(|db| { + // db.insert_account_info(to_addr, AccountInfo::new(U256::ZERO, 0, code_hash, code)) + // }) + // .modify_tx_env(|tx| { + // let transact_to = &mut tx.transact_to; + + // *transact_to = TxKind::Call(to_addr) + // }) + // .append_handler_register(|handler| { + // handler.instruction_table.insert(0xED, custom_instruction) + // }) + // .build(); + + // let result_and_state = evm.transact().unwrap(); + // assert_eq!(result_and_state.result.gas_used(), EXPECTED_RESULT_GAS); + // } + + // #[test] + // fn simple_build() { + // // build without external with latest spec + // Evm::builder().with_chain_spec::().build(); + // // build with empty db + // Evm::builder() + // .with_chain_spec::() + // .with_empty_db() + // .build(); + // // build with_db + // Evm::builder() + // .with_chain_spec::() + // .with_db(EmptyDB::default()) + // .build(); + // // build with empty external + // Evm::builder() + // .with_chain_spec::() + // .with_empty_db() + // .build(); + // // build with some external + // Evm::builder() + // .with_chain_spec::() + // .with_empty_db() + // .with_external_context(()) + // .build(); + // // build with spec + // Evm::builder() + // .with_empty_db() + // .with_spec_id(SpecId::HOMESTEAD) + // .build(); + + // // with with Env change in multiple places + // Evm::builder() + // .with_chain_spec::() + // .with_empty_db() + // .modify_tx_env(|tx| tx.gas_limit = 10) + // .build(); + // Evm::builder() + // .with_chain_spec::() + // .modify_tx_env(|tx| tx.gas_limit = 10) + // .build(); + // Evm::builder() + // .with_chain_spec::() + // .with_empty_db() + // .modify_tx_env(|tx| tx.gas_limit = 10) + // .build(); + // Evm::builder() + // .with_chain_spec::() + // .with_empty_db() + // .modify_tx_env(|tx| tx.gas_limit = 10) + // .build(); + + // // with inspector handle + // Evm::builder() + // .with_chain_spec::() + // .with_empty_db() + // .with_external_context(NoOpInspector) + // .append_handler_register(inspector_handle_register) + // .build(); + + // // create the builder + // let evm = Evm::builder() + // .with_db(EmptyDB::default()) + // .with_chain_spec::() + // .with_external_context(NoOpInspector) + // .append_handler_register(inspector_handle_register) + // // this would not compile + // // .with_db(..) + // .build(); + + // let Context { external: _, .. } = evm.into_context(); + // } + + // #[test] + // fn build_modify_build() { + // // build evm + // let evm = Evm::builder() + // .with_empty_db() + // .with_spec_id(SpecId::HOMESTEAD) + // .build(); + + // // modify evm + // let evm = evm.modify().with_spec_id(SpecId::FRONTIER).build(); + // let _ = evm + // .modify() + // .modify_tx_env(|tx| tx.chain_id = Some(2)) + // .build(); + // } + + // #[test] + // fn build_custom_precompile() { + // struct CustomPrecompile; + + // impl ContextStatefulPrecompile for CustomPrecompile { + // fn call( + // &self, + // _input: &Bytes, + // _gas_limit: u64, + // _context: &mut InnerEvmContext, + // ) -> PrecompileResult { + // Ok(PrecompileOutput::new(10, Bytes::new())) + // } + // } + + // let spec_id = crate::primitives::SpecId::HOMESTEAD; + + // let mut evm = Evm::builder() + // .with_chain_spec::() + // .with_spec_id(spec_id) + // .append_handler_register(|handler| { + // let precompiles = handler.pre_execution.load_precompiles(); + // handler.pre_execution.load_precompiles = Arc::new(move || { + // let mut precompiles = precompiles.clone(); + // precompiles.extend([( + // Address::ZERO, + // ContextPrecompile::ContextStateful(Arc::new(CustomPrecompile)), + // )]); + // precompiles + // }); + // }) + // .build(); + + // evm.transact().unwrap(); + // } } diff --git a/crates/revm/src/context.rs b/crates/revm/src/context.rs index 14d1b12d9d..c4fd5231a7 100644 --- a/crates/revm/src/context.rs +++ b/crates/revm/src/context.rs @@ -6,6 +6,7 @@ pub use context_precompiles::{ ContextPrecompile, ContextPrecompiles, ContextStatefulPrecompile, ContextStatefulPrecompileArc, ContextStatefulPrecompileBox, ContextStatefulPrecompileMut, }; +use derive_where::derive_where; pub use evm_context::EvmContext; pub use inner_evm_context::InnerEvmContext; use revm_interpreter::{as_u64_saturated, Eip7702CodeLoad, StateLoad}; @@ -13,39 +14,24 @@ use revm_interpreter::{as_u64_saturated, Eip7702CodeLoad, StateLoad}; use crate::{ db::{Database, EmptyDB}, interpreter::{AccountLoad, Host, SStoreResult, SelfDestructResult}, - primitives::{Address, Bytes, Env, HandlerCfg, Log, B256, BLOCK_HASH_HISTORY, U256}, + primitives::{ + Address, Block, Bytes, EnvWiring, EthereumWiring, Log, B256, BLOCK_HASH_HISTORY, U256, + }, + EvmWiring, }; use std::boxed::Box; /// Main Context structure that contains both EvmContext and External context. -pub struct Context { +#[derive_where(Clone; EvmWiringT::Block, EvmWiringT::ChainContext, EvmWiringT::Transaction, EvmWiringT::Database, ::Error, EvmWiringT::ExternalContext)] +pub struct Context { /// Evm Context (internal context). - pub evm: EvmContext, + pub evm: EvmContext, /// External contexts. - pub external: EXT, + pub external: EvmWiringT::ExternalContext, } -impl Clone for Context -where - DB::Error: Clone, -{ - fn clone(&self) -> Self { - Self { - evm: self.evm.clone(), - external: self.external.clone(), - } - } -} - -impl Default for Context<(), EmptyDB> { +impl Default for Context> { fn default() -> Self { - Self::new_empty() - } -} - -impl Context<(), EmptyDB> { - /// Creates empty context. This is useful for testing. - pub fn new_empty() -> Context<(), EmptyDB> { Context { evm: EvmContext::new(EmptyDB::new()), external: (), @@ -53,9 +39,13 @@ impl Context<(), EmptyDB> { } } -impl Context<(), DB> { +impl Context +where + EvmWiringT: + EvmWiring, +{ /// Creates new context with database. - pub fn new_with_db(db: DB) -> Context<(), DB> { + pub fn new_with_db(db: DB) -> Context { Context { evm: EvmContext::new_with_env(db, Box::default()), external: (), @@ -63,53 +53,47 @@ impl Context<(), DB> { } } -impl Context { +impl Context { /// Creates new context with external and database. - pub fn new(evm: EvmContext, external: EXT) -> Context { + pub fn new( + evm: EvmContext, + external: EvmWiringT::ExternalContext, + ) -> Context { Context { evm, external } } } /// Context with handler configuration. -pub struct ContextWithHandlerCfg { +#[derive_where(Clone; EvmWiringT::Block, EvmWiringT::ChainContext, EvmWiringT::Transaction,EvmWiringT::Database, ::Error, EvmWiringT::ExternalContext)] +pub struct ContextWithEvmWiring { /// Context of execution. - pub context: Context, + pub context: Context, /// Handler configuration. - pub cfg: HandlerCfg, + pub spec_id: EvmWiringT::Hardfork, } -impl ContextWithHandlerCfg { +impl ContextWithEvmWiring { /// Creates new context with handler configuration. - pub fn new(context: Context, cfg: HandlerCfg) -> Self { - Self { cfg, context } + pub fn new(context: Context, spec_id: EvmWiringT::Hardfork) -> Self { + Self { spec_id, context } } } -impl Clone for ContextWithHandlerCfg -where - DB::Error: Clone, -{ - fn clone(&self) -> Self { - Self { - context: self.context.clone(), - cfg: self.cfg, - } - } -} +impl Host for Context { + type EvmWiringT = EvmWiringT; -impl Host for Context { /// Returns reference to Environment. #[inline] - fn env(&self) -> &Env { + fn env(&self) -> &EnvWiring { &self.evm.env } - fn env_mut(&mut self) -> &mut Env { + fn env_mut(&mut self) -> &mut EnvWiring { &mut self.evm.env } fn block_hash(&mut self, requested_number: u64) -> Option { - let block_number = as_u64_saturated!(self.env().block.number); + let block_number = as_u64_saturated!(*self.env().block.number()); let Some(diff) = block_number.checked_sub(requested_number) else { return Some(B256::ZERO); diff --git a/crates/revm/src/context/context_precompiles.rs b/crates/revm/src/context/context_precompiles.rs index f3fa881a14..2b1c141214 100644 --- a/crates/revm/src/context/context_precompiles.rs +++ b/crates/revm/src/context/context_precompiles.rs @@ -1,63 +1,52 @@ use super::InnerEvmContext; use crate::{ precompile::{Precompile, PrecompileResult}, - primitives::{db::Database, Address, Bytes, HashMap, HashSet}, + primitives::{Address, Bytes, EvmWiring, HashMap, HashSet}, }; +use core::fmt::Debug; +use derive_where::derive_where; use dyn_clone::DynClone; use revm_precompile::{PrecompileSpecId, PrecompileWithAddress, Precompiles}; use std::{boxed::Box, sync::Arc}; /// A single precompile handler. -pub enum ContextPrecompile { +#[derive_where(Clone)] +pub enum ContextPrecompile { /// Ordinary precompiles Ordinary(Precompile), /// Stateful precompile that is Arc over [`ContextStatefulPrecompile`] trait. /// It takes a reference to input, gas limit and Context. - ContextStateful(ContextStatefulPrecompileArc), + ContextStateful(ContextStatefulPrecompileArc), /// Mutable stateful precompile that is Box over [`ContextStatefulPrecompileMut`] trait. /// It takes a reference to input, gas limit and context. - ContextStatefulMut(ContextStatefulPrecompileBox), + ContextStatefulMut(ContextStatefulPrecompileBox), } -impl Clone for ContextPrecompile { - fn clone(&self) -> Self { +impl Debug for ContextPrecompile { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { match self { - Self::Ordinary(p) => Self::Ordinary(p.clone()), - Self::ContextStateful(p) => Self::ContextStateful(p.clone()), - Self::ContextStatefulMut(p) => Self::ContextStatefulMut(p.clone()), + Self::Ordinary(p) => f.debug_tuple("Ordinary").field(p).finish(), + Self::ContextStateful(_) => f.debug_tuple("ContextStateful").finish(), + Self::ContextStatefulMut(_) => f.debug_tuple("ContextStatefulMut").finish(), } } } -enum PrecompilesCow { +#[derive_where(Clone, Debug)] +enum PrecompilesCow { /// Default precompiles, returned by `Precompiles::new`. Used to fast-path the default case. StaticRef(&'static Precompiles), - Owned(HashMap>), -} - -impl Clone for PrecompilesCow { - fn clone(&self) -> Self { - match *self { - PrecompilesCow::StaticRef(p) => PrecompilesCow::StaticRef(p), - PrecompilesCow::Owned(ref inner) => PrecompilesCow::Owned(inner.clone()), - } - } + Owned(HashMap>), } /// Precompiles context. -pub struct ContextPrecompiles { - inner: PrecompilesCow, -} -impl Clone for ContextPrecompiles { - fn clone(&self) -> Self { - Self { - inner: self.inner.clone(), - } - } +#[derive_where(Clone, Debug, Default)] +pub struct ContextPrecompiles { + inner: PrecompilesCow, } -impl ContextPrecompiles { +impl ContextPrecompiles { /// Creates a new precompiles context at the given spec ID. /// /// This is a cheap operation that does not allocate by reusing the global precompiles. @@ -79,7 +68,7 @@ impl ContextPrecompiles { /// Creates a new precompiles context from the given precompiles. #[inline] - pub fn from_precompiles(precompiles: HashMap>) -> Self { + pub fn from_precompiles(precompiles: HashMap>) -> Self { Self { inner: PrecompilesCow::Owned(precompiles), } @@ -95,7 +84,7 @@ impl ContextPrecompiles { /// Returns precompiles addresses. #[inline] - pub fn addresses<'a>(&'a self) -> Box + 'a> { + pub fn addresses(&self) -> Box + '_> { match self.inner { PrecompilesCow::StaticRef(inner) => Box::new(inner.addresses()), PrecompilesCow::Owned(ref inner) => Box::new(inner.keys()), @@ -120,12 +109,14 @@ impl ContextPrecompiles { address: &Address, bytes: &Bytes, gas_limit: u64, - evmctx: &mut InnerEvmContext, + evmctx: &mut InnerEvmContext, ) -> Option { Some(match self.inner { - PrecompilesCow::StaticRef(p) => p.get(address)?.call_ref(bytes, gas_limit, &evmctx.env), + PrecompilesCow::StaticRef(p) => { + p.get(address)?.call_ref(bytes, gas_limit, &evmctx.env.cfg) + } PrecompilesCow::Owned(ref mut owned) => match owned.get_mut(address)? { - ContextPrecompile::Ordinary(p) => p.call(bytes, gas_limit, &evmctx.env), + ContextPrecompile::Ordinary(p) => p.call(bytes, gas_limit, &evmctx.env.cfg), ContextPrecompile::ContextStateful(p) => p.call(bytes, gas_limit, evmctx), ContextPrecompile::ContextStatefulMut(p) => p.call_mut(bytes, gas_limit, evmctx), }, @@ -136,7 +127,7 @@ impl ContextPrecompiles { /// /// Clones the precompiles map if it is shared. #[inline] - pub fn to_mut(&mut self) -> &mut HashMap> { + pub fn to_mut(&mut self) -> &mut HashMap> { if let PrecompilesCow::StaticRef(_) = self.inner { self.mutate_into_owned(); } @@ -164,13 +155,18 @@ impl ContextPrecompiles { } } -impl Extend<(Address, ContextPrecompile)> for ContextPrecompiles { - fn extend)>>(&mut self, iter: T) { +impl Extend<(Address, ContextPrecompile)> + for ContextPrecompiles +{ + fn extend)>>( + &mut self, + iter: T, + ) { self.to_mut().extend(iter.into_iter().map(Into::into)) } } -impl Extend for ContextPrecompiles { +impl Extend for ContextPrecompiles { fn extend>(&mut self, iter: T) { self.to_mut().extend(iter.into_iter().map(|precompile| { let (address, precompile) = precompile.into(); @@ -179,15 +175,7 @@ impl Extend for ContextPrecompiles { } } -impl Default for ContextPrecompiles { - fn default() -> Self { - Self { - inner: Default::default(), - } - } -} - -impl Default for PrecompilesCow { +impl Default for PrecompilesCow { fn default() -> Self { Self::Owned(Default::default()) } @@ -195,35 +183,36 @@ impl Default for PrecompilesCow { /// Context aware stateful precompile trait. It is used to create /// a arc precompile in [`ContextPrecompile`]. -pub trait ContextStatefulPrecompile: Sync + Send { +pub trait ContextStatefulPrecompile: Sync + Send { fn call( &self, bytes: &Bytes, gas_limit: u64, - evmctx: &mut InnerEvmContext, + evmctx: &mut InnerEvmContext, ) -> PrecompileResult; } /// Context aware mutable stateful precompile trait. It is used to create /// a boxed precompile in [`ContextPrecompile`]. -pub trait ContextStatefulPrecompileMut: DynClone + Send + Sync { +pub trait ContextStatefulPrecompileMut: DynClone + Send + Sync { fn call_mut( &mut self, bytes: &Bytes, gas_limit: u64, - evmctx: &mut InnerEvmContext, + evmctx: &mut InnerEvmContext, ) -> PrecompileResult; } -dyn_clone::clone_trait_object!( ContextStatefulPrecompileMut); +dyn_clone::clone_trait_object!( ContextStatefulPrecompileMut); /// Arc over context stateful precompile. -pub type ContextStatefulPrecompileArc = Arc>; +pub type ContextStatefulPrecompileArc = Arc>; /// Box over context mutable stateful precompile -pub type ContextStatefulPrecompileBox = Box>; +pub type ContextStatefulPrecompileBox = + Box>; -impl From for ContextPrecompile { +impl From for ContextPrecompile { fn from(p: Precompile) -> Self { ContextPrecompile::Ordinary(p) } @@ -232,13 +221,14 @@ impl From for ContextPrecompile { #[cfg(test)] mod tests { use super::*; - use crate::db::EmptyDB; + use crate::primitives::DefaultEthereumWiring; #[test] fn test_precompiles_context() { let custom_address = Address::with_last_byte(0xff); - let mut precompiles = ContextPrecompiles::::new(PrecompileSpecId::HOMESTEAD); + let mut precompiles = + ContextPrecompiles::::new(PrecompileSpecId::HOMESTEAD); assert_eq!(precompiles.addresses().count(), 4); assert!(matches!(precompiles.inner, PrecompilesCow::StaticRef(_))); assert!(!precompiles.contains(&custom_address)); diff --git a/crates/revm/src/context/evm_context.rs b/crates/revm/src/context/evm_context.rs index 32a62ba6f1..bc7df8a67c 100644 --- a/crates/revm/src/context/evm_context.rs +++ b/crates/revm/src/context/evm_context.rs @@ -1,3 +1,4 @@ +use derive_where::derive_where; use revm_interpreter::CallValue; use revm_precompile::PrecompileErrors; @@ -9,77 +10,59 @@ use crate::{ EOFCreateKind, Gas, InstructionResult, Interpreter, InterpreterResult, }, primitives::{ - keccak256, Address, Bytecode, Bytes, CreateScheme, EVMError, Env, Eof, + keccak256, Address, Bytecode, Bytes, CreateScheme, EVMError, EVMResultGeneric, EnvWiring, + Eof, SpecId::{self, *}, - B256, EOF_MAGIC_BYTES, + Transaction, B256, EOF_MAGIC_BYTES, }, - ContextPrecompiles, FrameOrResult, CALL_STACK_LIMIT, -}; -use core::{ - fmt, - ops::{Deref, DerefMut}, + ContextPrecompiles, EvmWiring, FrameOrResult, CALL_STACK_LIMIT, }; +use core::ops::{Deref, DerefMut}; use std::{boxed::Box, sync::Arc}; /// EVM context that contains the inner EVM context and precompiles. -pub struct EvmContext { +#[derive_where(Clone, Debug; EvmWiringT::Block, EvmWiringT::ChainContext, EvmWiringT::Transaction, EvmWiringT::Database, ::Error)] +pub struct EvmContext { /// Inner EVM context. - pub inner: InnerEvmContext, + pub inner: InnerEvmContext, /// Precompiles that are available for evm. - pub precompiles: ContextPrecompiles, + pub precompiles: ContextPrecompiles, } -impl Clone for EvmContext -where - DB::Error: Clone, -{ - fn clone(&self) -> Self { - Self { - inner: self.inner.clone(), - precompiles: ContextPrecompiles::default(), - } - } -} - -impl fmt::Debug for EvmContext -where - DB: Database + fmt::Debug, - DB::Error: fmt::Debug, -{ - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - f.debug_struct("EvmContext") - .field("inner", &self.inner) - .field("precompiles", &self.inner) - .finish_non_exhaustive() - } -} - -impl Deref for EvmContext { - type Target = InnerEvmContext; +impl Deref for EvmContext { + type Target = InnerEvmContext; fn deref(&self) -> &Self::Target { &self.inner } } -impl DerefMut for EvmContext { +impl DerefMut for EvmContext { fn deref_mut(&mut self) -> &mut Self::Target { &mut self.inner } } -impl EvmContext { +impl EvmContext +where + EvmWiringT: EvmWiring, +{ /// Create new context with database. - pub fn new(db: DB) -> Self { + pub fn new(db: EvmWiringT::Database) -> Self { Self { inner: InnerEvmContext::new(db), precompiles: ContextPrecompiles::default(), } } +} +impl EvmContext +where + EvmWiringT: EvmWiring, +{ /// Creates a new context with the given environment and database. #[inline] - pub fn new_with_env(db: DB, env: Box) -> Self { + pub fn new_with_env(db: EvmWiringT::Database, env: Box>) -> Self { Self { inner: InnerEvmContext::new_with_env(db, env), precompiles: ContextPrecompiles::default(), @@ -90,7 +73,12 @@ impl EvmContext { /// /// Note that this will ignore the previous `error` if set. #[inline] - pub fn with_db(self, db: ODB) -> EvmContext { + pub fn with_db< + OEvmWiring: EvmWiring, + >( + self, + db: OEvmWiring::Database, + ) -> EvmContext { EvmContext { inner: self.inner.with_db(db), precompiles: ContextPrecompiles::default(), @@ -99,7 +87,7 @@ impl EvmContext { /// Sets precompiles #[inline] - pub fn set_precompiles(&mut self, precompiles: ContextPrecompiles) { + pub fn set_precompiles(&mut self, precompiles: ContextPrecompiles) { // set warm loaded addresses. self.journaled_state .warm_preloaded_addresses @@ -114,7 +102,7 @@ impl EvmContext { address: &Address, input_data: &Bytes, gas: Gas, - ) -> Result, EVMError> { + ) -> EVMResultGeneric, EvmWiringT> { let Some(outcome) = self.precompiles .call(address, input_data, gas.limit(), &mut self.inner) @@ -154,7 +142,7 @@ impl EvmContext { pub fn make_call_frame( &mut self, inputs: &CallInputs, - ) -> Result> { + ) -> EVMResultGeneric { let gas = Gas::new(inputs.gas_limit); let return_result = |instruction_result: InstructionResult| { @@ -177,7 +165,8 @@ impl EvmContext { let _ = self .inner .journaled_state - .load_account_delegated(inputs.bytecode_address, &mut self.inner.db)?; + .load_account_delegated(inputs.bytecode_address, &mut self.inner.db) + .map_err(EVMError::Database)?; // Create subroutine checkpoint let checkpoint = self.journaled_state.checkpoint(); @@ -186,18 +175,24 @@ impl EvmContext { match inputs.value { // if transfer value is zero, load account and force the touch. CallValue::Transfer(value) if value.is_zero() => { - self.load_account(inputs.target_address)?; + self.load_account(inputs.target_address) + .map_err(EVMError::Database)?; self.journaled_state.touch(&inputs.target_address); } CallValue::Transfer(value) => { // Transfer value from caller to called account. As value get transferred // target gets touched. - if let Some(result) = self.inner.journaled_state.transfer( - &inputs.caller, - &inputs.target_address, - value, - &mut self.inner.db, - )? { + if let Some(result) = self + .inner + .journaled_state + .transfer( + &inputs.caller, + &inputs.target_address, + value, + &mut self.inner.db, + ) + .map_err(EVMError::Database)? + { self.journaled_state.checkpoint_revert(checkpoint); return return_result(result); } @@ -219,7 +214,8 @@ impl EvmContext { let account = self .inner .journaled_state - .load_code(inputs.bytecode_address, &mut self.inner.db)?; + .load_code(inputs.bytecode_address, &mut self.inner.db) + .map_err(EVMError::Database)?; let code_hash = account.info.code_hash(); let mut bytecode = account.info.code.clone().unwrap_or_default(); @@ -240,7 +236,8 @@ impl EvmContext { bytecode = self .inner .journaled_state - .load_code(eip7702_bytecode.delegated_address, &mut self.inner.db)? + .load_code(eip7702_bytecode.delegated_address, &mut self.inner.db) + .map_err(EVMError::Database)? .info .code .clone() @@ -264,7 +261,7 @@ impl EvmContext { &mut self, spec_id: SpecId, inputs: &CreateInputs, - ) -> Result> { + ) -> Result::Error> { let return_error = |e| { Ok(FrameOrResult::new_create_result( InterpreterResult { @@ -358,7 +355,7 @@ impl EvmContext { &mut self, spec_id: SpecId, inputs: &EOFCreateInputs, - ) -> Result> { + ) -> Result::Error> { let return_error = |e| { Ok(FrameOrResult::new_eofcreate_result( InterpreterResult { @@ -390,15 +387,10 @@ impl EvmContext { return return_error(InstructionResult::InvalidEOFInitCode); } - // Use nonce from tx (if set) to calculate address. - // If not set, use the nonce from the account. - let nonce = self - .env - .tx - .nonce - .map(|nonce| self.env.tx.caller.create(nonce)); + // Use nonce from tx to calculate address. + let nonce = self.env.tx.nonce(); - (input, eof, nonce) + (input, eof, Some(self.env.tx.caller().create(nonce))) } }; @@ -501,11 +493,13 @@ pub(crate) mod test_utils { /// Creates an evm context with a cache db backend. /// Additionally loads the mock caller account into the db, /// and sets the balance to the provided U256 value. - pub fn create_cache_db_evm_context_with_balance( - env: Box, + pub fn create_cache_db_evm_context_with_balance< + EvmWiringT: EvmWiring>, + >( + env: Box>, mut db: CacheDB, balance: U256, - ) -> EvmContext> { + ) -> EvmContext { db.insert_account_info( test_utils::MOCK_CALLER, crate::primitives::AccountInfo { @@ -519,33 +513,34 @@ pub(crate) mod test_utils { } /// Creates a cached db evm context. - pub fn create_cache_db_evm_context( - env: Box, + pub fn create_cache_db_evm_context>>( + env: Box>, db: CacheDB, - ) -> EvmContext> { + ) -> EvmContext { EvmContext { inner: InnerEvmContext { env, journaled_state: JournaledState::new(SpecId::CANCUN, HashSet::new()), db, + chain: Default::default(), error: Ok(()), - #[cfg(feature = "optimism")] - l1_block_info: None, }, precompiles: ContextPrecompiles::default(), } } /// Returns a new `EvmContext` with an empty journaled state. - pub fn create_empty_evm_context(env: Box, db: EmptyDB) -> EvmContext { + pub fn create_empty_evm_context>( + env: Box>, + db: EmptyDB, + ) -> EvmContext { EvmContext { inner: InnerEvmContext { env, journaled_state: JournaledState::new(SpecId::CANCUN, HashSet::new()), db, + chain: Default::default(), error: Ok(()), - #[cfg(feature = "optimism")] - l1_block_info: None, }, precompiles: ContextPrecompiles::default(), } @@ -558,7 +553,7 @@ mod tests { use crate::primitives::U256; use crate::{ db::{CacheDB, EmptyDB}, - primitives::{address, Bytecode}, + primitives::{address, Bytecode, DefaultEthereumWiring, EthereumWiring}, Frame, JournalEntry, }; use std::boxed::Box; @@ -568,9 +563,10 @@ mod tests { // call stack is too deep. #[test] fn test_make_call_frame_stack_too_deep() { - let env = Env::default(); + let env = EnvWiring::::default(); let db = EmptyDB::default(); - let mut context = test_utils::create_empty_evm_context(Box::new(env), db); + let mut context = + test_utils::create_empty_evm_context::(Box::new(env), db); context.journaled_state.depth = CALL_STACK_LIMIT as usize + 1; let contract = address!("dead10000000000000000000000000000001dead"); let call_inputs = test_utils::create_mock_call_inputs(contract); @@ -589,9 +585,10 @@ mod tests { // checkpointed on the journaled state correctly. #[test] fn test_make_call_frame_transfer_revert() { - let env = Env::default(); + let env = EnvWiring::::default(); let db = EmptyDB::default(); - let mut evm_context = test_utils::create_empty_evm_context(Box::new(env), db); + let mut evm_context = + test_utils::create_empty_evm_context::(Box::new(env), db); let contract = address!("dead10000000000000000000000000000001dead"); let mut call_inputs = test_utils::create_mock_call_inputs(contract); call_inputs.value = CallValue::Transfer(U256::from(1)); @@ -610,10 +607,12 @@ mod tests { #[test] fn test_make_call_frame_missing_code_context() { - let env = Env::default(); + type CacheEthWiring = EthereumWiring, ()>; + let env = EnvWiring::::default(); let cdb = CacheDB::new(EmptyDB::default()); let bal = U256::from(3_000_000_000_u128); - let mut context = create_cache_db_evm_context_with_balance(Box::new(env), cdb, bal); + let mut context = + create_cache_db_evm_context_with_balance::(Box::new(env), cdb, bal); let contract = address!("dead10000000000000000000000000000001dead"); let call_inputs = test_utils::create_mock_call_inputs(contract); let res = context.make_call_frame(&call_inputs); @@ -625,7 +624,8 @@ mod tests { #[test] fn test_make_call_frame_succeeds() { - let env = Env::default(); + type CacheEthWiring = EthereumWiring, ()>; + let env = EnvWiring::::default(); let mut cdb = CacheDB::new(EmptyDB::default()); let bal = U256::from(3_000_000_000_u128); let by = Bytecode::new_raw(Bytes::from(vec![0x60, 0x00, 0x60, 0x00])); @@ -639,7 +639,8 @@ mod tests { code: Some(by), }, ); - let mut evm_context = create_cache_db_evm_context_with_balance(Box::new(env), cdb, bal); + let mut evm_context = + create_cache_db_evm_context_with_balance::(Box::new(env), cdb, bal); let call_inputs = test_utils::create_mock_call_inputs(contract); let res = evm_context.make_call_frame(&call_inputs); let Ok(FrameOrResult::Frame(Frame::Call(call_frame))) = res else { diff --git a/crates/revm/src/context/inner_evm_context.rs b/crates/revm/src/context/inner_evm_context.rs index 0d6797cf84..8ce88ef030 100644 --- a/crates/revm/src/context/inner_evm_context.rs +++ b/crates/revm/src/context/inner_evm_context.rs @@ -1,3 +1,5 @@ +use derive_where::derive_where; + use crate::{ db::Database, interpreter::{ @@ -6,70 +8,56 @@ use crate::{ }, journaled_state::JournaledState, primitives::{ - AccessListItem, Account, Address, AnalysisKind, Bytecode, Bytes, CfgEnv, EVMError, Env, - Eof, HashSet, Spec, + AccessListItem, Account, Address, AnalysisKind, Bytecode, Bytes, CfgEnv, EnvWiring, Eof, + EvmWiring, HashSet, Spec, SpecId::{self, *}, - B256, EOF_MAGIC_BYTES, EOF_MAGIC_HASH, U256, + Transaction, B256, EOF_MAGIC_BYTES, EOF_MAGIC_HASH, U256, }, JournalCheckpoint, }; use std::{boxed::Box, sync::Arc}; /// EVM contexts contains data that EVM needs for execution. -#[derive(Debug)] -pub struct InnerEvmContext { +#[derive_where(Clone, Debug; EvmWiringT::Block, EvmWiringT::ChainContext, EvmWiringT::Transaction, EvmWiringT::Database, ::Error)] +pub struct InnerEvmContext { /// EVM Environment contains all the information about config, block and transaction that /// evm needs. - pub env: Box, + pub env: Box>, /// EVM State with journaling support. pub journaled_state: JournaledState, /// Database to load data from. - pub db: DB, + pub db: EvmWiringT::Database, + /// Inner context. + pub chain: EvmWiringT::ChainContext, /// Error that happened during execution. - pub error: Result<(), EVMError>, - /// Used as temporary value holder to store L1 block info. - #[cfg(feature = "optimism")] - pub l1_block_info: Option, + pub error: Result<(), ::Error>, } -impl Clone for InnerEvmContext +impl InnerEvmContext where - DB::Error: Clone, + EvmWiringT: EvmWiring, { - fn clone(&self) -> Self { - Self { - env: self.env.clone(), - journaled_state: self.journaled_state.clone(), - db: self.db.clone(), - error: self.error.clone(), - #[cfg(feature = "optimism")] - l1_block_info: self.l1_block_info.clone(), - } - } -} - -impl InnerEvmContext { - pub fn new(db: DB) -> Self { + pub fn new(db: EvmWiringT::Database) -> Self { Self { env: Box::default(), journaled_state: JournaledState::new(SpecId::LATEST, HashSet::new()), db, + chain: Default::default(), error: Ok(()), - #[cfg(feature = "optimism")] - l1_block_info: None, } } +} +impl InnerEvmContext { /// Creates a new context with the given environment and database. #[inline] - pub fn new_with_env(db: DB, env: Box) -> Self { + pub fn new_with_env(db: EvmWiringT::Database, env: Box>) -> Self { Self { env, journaled_state: JournaledState::new(SpecId::LATEST, HashSet::new()), db, + chain: Default::default(), error: Ok(()), - #[cfg(feature = "optimism")] - l1_block_info: None, } } @@ -77,14 +65,18 @@ impl InnerEvmContext { /// /// Note that this will ignore the previous `error` if set. #[inline] - pub fn with_db(self, db: ODB) -> InnerEvmContext { + pub fn with_db< + OWiring: EvmWiring, + >( + self, + db: OWiring::Database, + ) -> InnerEvmContext { InnerEvmContext { env: self.env, journaled_state: self.journaled_state, db, + chain: Default::default(), error: Ok(()), - #[cfg(feature = "optimism")] - l1_block_info: self.l1_block_info, } } @@ -98,11 +90,11 @@ impl InnerEvmContext { /// /// Loading of accounts/storages is needed to make them warm. #[inline] - pub fn load_access_list(&mut self) -> Result<(), EVMError> { + pub fn load_access_list(&mut self) -> Result<(), ::Error> { for AccessListItem { address, storage_keys, - } in self.env.tx.access_list.iter() + } in self.env.tx.access_list() { self.journaled_state.initial_account_load( *address, @@ -115,7 +107,7 @@ impl InnerEvmContext { /// Return environment. #[inline] - pub fn env(&mut self) -> &mut Env { + pub fn env(&mut self) -> &mut EnvWiring { &mut self.env } @@ -126,14 +118,17 @@ impl InnerEvmContext { /// Returns the error by replacing it with `Ok(())`, if any. #[inline] - pub fn take_error(&mut self) -> Result<(), EVMError> { + pub fn take_error(&mut self) -> Result<(), ::Error> { core::mem::replace(&mut self.error, Ok(())) } /// Fetch block hash from database. #[inline] - pub fn block_hash(&mut self, number: u64) -> Result> { - self.db.block_hash(number).map_err(EVMError::Database) + pub fn block_hash( + &mut self, + number: u64, + ) -> Result::Error> { + self.db.block_hash(number) } /// Mark account as touched as only touched accounts will be added to state. @@ -147,7 +142,7 @@ impl InnerEvmContext { pub fn load_account( &mut self, address: Address, - ) -> Result, EVMError> { + ) -> Result, ::Error> { self.journaled_state.load_account(address, &mut self.db) } @@ -158,14 +153,17 @@ impl InnerEvmContext { pub fn load_account_delegated( &mut self, address: Address, - ) -> Result> { + ) -> Result::Error> { self.journaled_state .load_account_delegated(address, &mut self.db) } /// Return account balance and is_cold flag. #[inline] - pub fn balance(&mut self, address: Address) -> Result, EVMError> { + pub fn balance( + &mut self, + address: Address, + ) -> Result, ::Error> { self.journaled_state .load_account(address, &mut self.db) .map(|acc| acc.map(|a| a.info.balance)) @@ -178,7 +176,7 @@ impl InnerEvmContext { pub fn code( &mut self, address: Address, - ) -> Result, EVMError> { + ) -> Result, ::Error> { let a = self.journaled_state.load_code(address, &mut self.db)?; // SAFETY: safe to unwrap as load_code will insert code if it is empty. let code = a.info.code.as_ref().unwrap(); @@ -224,7 +222,7 @@ impl InnerEvmContext { pub fn code_hash( &mut self, address: Address, - ) -> Result, EVMError> { + ) -> Result, ::Error> { let acc = self.journaled_state.load_code(address, &mut self.db)?; if acc.is_empty() { return Ok(Eip7702CodeLoad::new_not_delegated(B256::ZERO, acc.is_cold)); @@ -268,7 +266,7 @@ impl InnerEvmContext { &mut self, address: Address, index: U256, - ) -> Result, EVMError> { + ) -> Result, ::Error> { // account is always warm. reference on that statement https://eips.ethereum.org/EIPS/eip-2929 see `Note 2:` self.journaled_state.sload(address, index, &mut self.db) } @@ -280,7 +278,7 @@ impl InnerEvmContext { address: Address, index: U256, value: U256, - ) -> Result, EVMError> { + ) -> Result, ::Error> { self.journaled_state .sstore(address, index, value, &mut self.db) } @@ -303,7 +301,7 @@ impl InnerEvmContext { &mut self, address: Address, target: Address, - ) -> Result, EVMError> { + ) -> Result, ::Error> { self.journaled_state .selfdestruct(address, target, &mut self.db) } diff --git a/crates/revm/src/db.rs b/crates/revm/src/db.rs index febad10c08..5ec08ede12 100644 --- a/crates/revm/src/db.rs +++ b/crates/revm/src/db.rs @@ -5,16 +5,15 @@ mod utils; #[cfg(feature = "alloydb")] mod alloydb; -pub mod emptydb; #[cfg(feature = "ethersdb")] mod ethersdb; pub mod in_memory_db; pub mod states; pub use crate::primitives::db::*; +pub use crate::primitives::db::{EmptyDB, EmptyDBTyped}; #[cfg(feature = "alloydb")] pub use alloydb::AlloyDB; -pub use emptydb::{EmptyDB, EmptyDBTyped}; #[cfg(feature = "ethersdb")] pub use ethersdb::EthersDB; pub use in_memory_db::*; diff --git a/crates/revm/src/db/in_memory_db.rs b/crates/revm/src/db/in_memory_db.rs index 58ab9ba1ba..c77efefa57 100644 --- a/crates/revm/src/db/in_memory_db.rs +++ b/crates/revm/src/db/in_memory_db.rs @@ -1,7 +1,7 @@ use super::{DatabaseCommit, DatabaseRef, EmptyDB}; use crate::primitives::{ - hash_map::Entry, Account, AccountInfo, Address, Bytecode, HashMap, Log, B256, KECCAK_EMPTY, - U256, + hash_map::Entry, Account, AccountInfo, Address, Bytecode, EthereumWiring, HashMap, Log, B256, + KECCAK_EMPTY, U256, }; use crate::Database; use core::convert::Infallible; @@ -356,6 +356,9 @@ impl AccountState { } } +/// Ethereum benchmark wiring +pub type EthereumBenchmarkWiring = EthereumWiring; + /// Custom benchmarking DB that only has account info for the zero address. /// /// Any other address will return an empty account. diff --git a/crates/revm/src/evm.rs b/crates/revm/src/evm.rs index ab34469ce4..f674018f73 100644 --- a/crates/revm/src/evm.rs +++ b/crates/revm/src/evm.rs @@ -1,17 +1,18 @@ +use revm_interpreter::Host as _; + use crate::{ - builder::{EvmBuilder, HandlerStage, SetGenericStage}, - db::{Database, DatabaseCommit, EmptyDB}, + builder::{EvmBuilder, SetGenericStage}, + db::{Database, DatabaseCommit}, handler::Handler, - interpreter::{ - CallInputs, CreateInputs, EOFCreateInputs, Host, InterpreterAction, SharedMemory, - }, + interpreter::{CallInputs, CreateInputs, EOFCreateInputs, InterpreterAction, SharedMemory}, primitives::{ - specification::SpecId, BlockEnv, CfgEnv, EVMError, EVMResult, EnvWithHandlerCfg, - ExecutionResult, HandlerCfg, ResultAndState, TxEnv, TxKind, EOF_MAGIC_BYTES, + CfgEnv, EVMError, EVMResult, EVMResultGeneric, EnvWiring, ExecutionResult, ResultAndState, + SpecId, Transaction, TxKind, EOF_MAGIC_BYTES, }, - Context, ContextWithHandlerCfg, Frame, FrameOrResult, FrameResult, + Context, ContextWithEvmWiring, EvmContext, EvmWiring, Frame, FrameOrResult, FrameResult, + InnerEvmContext, }; -use core::fmt; +use core::fmt::{self, Debug}; use std::{boxed::Box, vec::Vec}; /// EVM call stack limit. @@ -19,19 +20,19 @@ pub const CALL_STACK_LIMIT: u64 = 1024; /// EVM instance containing both internal EVM context and external context /// and the handler that dictates the logic of EVM (or hardfork specification). -pub struct Evm<'a, EXT, DB: Database> { +pub struct Evm<'a, EvmWiringT: EvmWiring> { /// Context of execution, containing both EVM and external context. - pub context: Context, + pub context: Context, /// Handler is a component of the of EVM that contains all the logic. Handler contains specification id /// and it different depending on the specified fork. - pub handler: Handler<'a, Context, EXT, DB>, + pub handler: Handler<'a, EvmWiringT, Context>, } -impl fmt::Debug for Evm<'_, EXT, DB> +impl Debug for Evm<'_, EvmWiringT> where - EXT: fmt::Debug, - DB: Database + fmt::Debug, - DB::Error: fmt::Debug, + EvmWiringT: + EvmWiring, + ::Error: Debug, { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Evm") @@ -40,41 +41,65 @@ where } } -impl Evm<'_, EXT, DB> { +impl> Evm<'_, EvmWiringT> { /// Commit the changes to the database. - pub fn transact_commit(&mut self) -> Result> { + pub fn transact_commit( + &mut self, + ) -> EVMResultGeneric, EvmWiringT> { let ResultAndState { result, state } = self.transact()?; self.context.evm.db.commit(state); Ok(result) } } -impl<'a> Evm<'a, (), EmptyDB> { - /// Returns evm builder with empty database and empty external context. - pub fn builder() -> EvmBuilder<'a, SetGenericStage, (), EmptyDB> { - EvmBuilder::default() +impl<'a, EvmWiringT: EvmWiring> Evm<'a, EvmWiringT> +where + EvmWiringT::Transaction: Default, + EvmWiringT::Block: Default, +{ + /// Returns evm builder with the mainnet chain spec, empty database, and empty external context. + pub fn builder() -> EvmBuilder<'a, SetGenericStage, EvmWiringT> { + EvmBuilder::new() } } -impl<'a, EXT, DB: Database> Evm<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring> Evm<'a, EvmWiringT> { /// Create new EVM. pub fn new( - mut context: Context, - handler: Handler<'a, Context, EXT, DB>, - ) -> Evm<'a, EXT, DB> { - context.evm.journaled_state.set_spec_id(handler.cfg.spec_id); + mut context: Context, + handler: Handler<'a, EvmWiringT, Context>, + ) -> Evm<'a, EvmWiringT> { + context + .evm + .journaled_state + .set_spec_id(handler.spec_id.into()); Evm { context, handler } } /// Allow for evm setting to be modified by feeding current evm /// into the builder for modifications. - pub fn modify(self) -> EvmBuilder<'a, HandlerStage, EXT, DB> { - EvmBuilder::new(self) + pub fn modify(self) -> EvmBuilder<'a, SetGenericStage, EvmWiringT> { + let Evm { + context: + Context { + evm: + EvmContext { + inner: InnerEvmContext { db, env, .. }, + .. + }, + external, + }, + handler, + } = self; + EvmBuilder::<'a>::new_with(db, external, env, handler) } /// Runs main call loop. #[inline] - pub fn run_the_loop(&mut self, first_frame: Frame) -> Result> { + pub fn run_the_loop( + &mut self, + first_frame: Frame, + ) -> EVMResultGeneric { let mut call_stack: Vec = Vec::with_capacity(1025); call_stack.push(first_frame); @@ -97,7 +122,7 @@ impl<'a, EXT, DB: Database> Evm<'a, EXT, DB> { // Take error and break the loop, if any. // This error can be set in the Interpreter when it interacts with the context. - self.context.evm.take_error()?; + self.context.evm.take_error().map_err(EVMError::Database)?; let exec = &mut self.handler.execution; let frame_or_result = match next_action { @@ -168,18 +193,18 @@ impl<'a, EXT, DB: Database> Evm<'a, EXT, DB> { } } -impl Evm<'_, EXT, DB> { +impl Evm<'_, EvmWiringT> { /// Returns specification (hardfork) that the EVM is instanced with. /// /// SpecId depends on the handler. - pub fn spec_id(&self) -> SpecId { - self.handler.cfg.spec_id + pub fn spec_id(&self) -> EvmWiringT::Hardfork { + self.handler.spec_id } /// Pre verify transaction by checking Environment, initial gas spend and if caller /// has enough balance to pay for the gas. #[inline] - pub fn preverify_transaction(&mut self) -> Result<(), EVMError> { + pub fn preverify_transaction(&mut self) -> EVMResultGeneric<(), EvmWiringT> { let output = self.preverify_transaction_inner().map(|_| ()); self.clear(); output @@ -194,12 +219,14 @@ impl Evm<'_, EXT, DB> { /// /// This function will not validate the transaction. #[inline] - pub fn transact_preverified(&mut self) -> EVMResult { + pub fn transact_preverified(&mut self) -> EVMResult { let initial_gas_spend = self .handler .validation() .initial_tx_gas(&self.context.evm.env) - .inspect_err(|_e| self.clear())?; + .inspect_err(|_| { + self.clear(); + })?; let output = self.transact_preverified_inner(initial_gas_spend); let output = self.handler.post_execution().end(&mut self.context, output); self.clear(); @@ -208,7 +235,7 @@ impl Evm<'_, EXT, DB> { /// Pre verify transaction inner. #[inline] - fn preverify_transaction_inner(&mut self) -> Result> { + fn preverify_transaction_inner(&mut self) -> EVMResultGeneric { self.handler.validation().env(&self.context.evm.env)?; let initial_gas_spend = self .handler @@ -224,10 +251,10 @@ impl Evm<'_, EXT, DB> { /// /// This function will validate the transaction. #[inline] - pub fn transact(&mut self) -> EVMResult { - let initial_gas_spend = self - .preverify_transaction_inner() - .inspect_err(|_e| self.clear())?; + pub fn transact(&mut self) -> EVMResult { + let initial_gas_spend = self.preverify_transaction_inner().inspect_err(|_| { + self.clear(); + })?; let output = self.transact_preverified_inner(initial_gas_spend); let output = self.handler.post_execution().end(&mut self.context, output); @@ -235,12 +262,6 @@ impl Evm<'_, EXT, DB> { output } - /// Returns the reference of handler configuration - #[inline] - pub fn handler_cfg(&self) -> &HandlerCfg { - &self.handler.cfg - } - /// Returns the reference of Env configuration #[inline] pub fn cfg(&self) -> &CfgEnv { @@ -255,71 +276,76 @@ impl Evm<'_, EXT, DB> { /// Returns the reference of transaction #[inline] - pub fn tx(&self) -> &TxEnv { + pub fn tx(&self) -> &EvmWiringT::Transaction { &self.context.evm.env.tx } /// Returns the mutable reference of transaction #[inline] - pub fn tx_mut(&mut self) -> &mut TxEnv { + pub fn tx_mut(&mut self) -> &mut EvmWiringT::Transaction { &mut self.context.evm.env.tx } /// Returns the reference of database #[inline] - pub fn db(&self) -> &DB { + pub fn db(&self) -> &EvmWiringT::Database { &self.context.evm.db } /// Returns the mutable reference of database #[inline] - pub fn db_mut(&mut self) -> &mut DB { + pub fn db_mut(&mut self) -> &mut EvmWiringT::Database { &mut self.context.evm.db } /// Returns the reference of block #[inline] - pub fn block(&self) -> &BlockEnv { + pub fn block(&self) -> &EvmWiringT::Block { &self.context.evm.env.block } /// Returns the mutable reference of block #[inline] - pub fn block_mut(&mut self) -> &mut BlockEnv { + pub fn block_mut(&mut self) -> &mut EvmWiringT::Block { &mut self.context.evm.env.block } /// Modify spec id, this will create new EVM that matches this spec id. - pub fn modify_spec_id(&mut self, spec_id: SpecId) { + pub fn modify_spec_id(&mut self, spec_id: EvmWiringT::Hardfork) { + self.context.evm.journaled_state.set_spec_id(spec_id.into()); self.handler.modify_spec_id(spec_id); } /// Returns internal database and external struct. #[inline] - pub fn into_context(self) -> Context { + pub fn into_context(self) -> Context { self.context } - /// Returns database and [`EnvWithHandlerCfg`]. + /// Returns database, [`EnvWiring`] and Hardfork. #[inline] - pub fn into_db_and_env_with_handler_cfg(self) -> (DB, EnvWithHandlerCfg) { + pub fn into_db_and_env_with_handler_cfg( + self, + ) -> ( + EvmWiringT::Database, + Box>, + EvmWiringT::Hardfork, + ) { ( self.context.evm.inner.db, - EnvWithHandlerCfg { - env: self.context.evm.inner.env, - handler_cfg: self.handler.cfg, - }, + self.context.evm.inner.env, + self.handler.spec_id, ) } - /// Returns [Context] and [HandlerCfg]. + /// Returns [Context] and hardfork. #[inline] - pub fn into_context_with_handler_cfg(self) -> ContextWithHandlerCfg { - ContextWithHandlerCfg::new(self.context, self.handler.cfg) + pub fn into_context_with_spec_id(self) -> ContextWithEvmWiring { + ContextWithEvmWiring::new(self.context, self.handler.spec_id) } /// Transact pre-verified transaction. - fn transact_preverified_inner(&mut self, initial_gas_spend: u64) -> EVMResult { + fn transact_preverified_inner(&mut self, initial_gas_spend: u64) -> EVMResult { let spec_id = self.spec_id(); let ctx = &mut self.context; let pre_exec = self.handler.pre_execution(); @@ -334,26 +360,29 @@ impl Evm<'_, EXT, DB> { // deduce caller balance with its limit. pre_exec.deduct_caller(ctx)?; - let gas_limit = ctx.evm.env.tx.gas_limit - initial_gas_spend; + let gas_limit = ctx.evm.env.tx.gas_limit() - initial_gas_spend; // apply EIP-7702 auth list. let eip7702_gas_refund = pre_exec.apply_eip7702_auth_list(ctx)? as i64; let exec = self.handler.execution(); // call inner handling of call/create - let first_frame_or_result = match ctx.evm.env.tx.transact_to { + let first_frame_or_result = match ctx.evm.env.tx.kind() { TxKind::Call(_) => exec.call( ctx, CallInputs::new_boxed(&ctx.evm.env.tx, gas_limit).unwrap(), )?, TxKind::Create => { // if first byte of data is magic 0xEF00, then it is EOFCreate. - if spec_id.is_enabled_in(SpecId::PRAGUE_EOF) - && ctx.env().tx.data.starts_with(&EOF_MAGIC_BYTES) + if Into::::into(spec_id).is_enabled_in(SpecId::PRAGUE_EOF) + && ctx.env().tx.data().starts_with(&EOF_MAGIC_BYTES) { exec.eofcreate( ctx, - Box::new(EOFCreateInputs::new_tx(&ctx.evm.env.tx, gas_limit)), + Box::new(EOFCreateInputs::new_tx::( + &ctx.evm.env.tx, + gas_limit, + )), )? } else { // Safe to unwrap because we are sure that it is create tx. @@ -397,7 +426,10 @@ mod tests { use crate::{ db::BenchmarkDB, interpreter::opcode::{PUSH1, SSTORE}, - primitives::{address, Authorization, Bytecode, RecoveredAuthorization, Signature, U256}, + primitives::{ + address, Authorization, Bytecode, EthereumWiring, RecoveredAuthorization, Signature, + U256, + }, }; #[test] @@ -408,9 +440,10 @@ mod tests { let bytecode = Bytecode::new_legacy([PUSH1, 0x01, PUSH1, 0x01, SSTORE].into()); - let mut evm = Evm::builder() + let mut evm = Evm::>::builder() .with_spec_id(SpecId::PRAGUE) .with_db(BenchmarkDB::new_bytecode(bytecode)) + .with_default_ext_ctx() .modify_tx_env(|tx| { tx.authorization_list = Some( vec![RecoveredAuthorization::new_unchecked( diff --git a/crates/revm/src/evm_wiring.rs b/crates/revm/src/evm_wiring.rs new file mode 100644 index 0000000000..437dc71f40 --- /dev/null +++ b/crates/revm/src/evm_wiring.rs @@ -0,0 +1,33 @@ +use crate::{ + handler::{ExecutionHandler, PostExecutionHandler, PreExecutionHandler, ValidationHandler}, + interpreter::opcode::InstructionTables, + primitives::{db::Database, spec_to_generic, EthereumWiring, EvmWiring as PrimitiveEvmWiring}, + EvmHandler, +}; +use std::fmt::Debug; +use std::vec::Vec; + +pub trait EvmWiring: PrimitiveEvmWiring { + /// Creates a new handler with the given hardfork. + fn handler<'evm>(hardfork: Self::Hardfork) -> EvmHandler<'evm, Self>; +} + +impl EvmWiring for EthereumWiring { + fn handler<'evm>(hardfork: Self::Hardfork) -> EvmHandler<'evm, Self> + where + DB: Database, + { + spec_to_generic!( + hardfork, + EvmHandler { + spec_id: hardfork, + instruction_table: InstructionTables::new_plain::(), + registers: Vec::new(), + validation: ValidationHandler::new::(), + pre_execution: PreExecutionHandler::new::(), + post_execution: PostExecutionHandler::mainnet::(), + execution: ExecutionHandler::new::(), + } + ) + } +} diff --git a/crates/revm/src/handler.rs b/crates/revm/src/handler.rs index ed31917bbe..042c3e6108 100644 --- a/crates/revm/src/handler.rs +++ b/crates/revm/src/handler.rs @@ -9,8 +9,8 @@ pub use handle_types::*; // Includes. use crate::{ interpreter::{opcode::InstructionTables, Host, InterpreterAction, SharedMemory}, - primitives::{db::Database, spec_to_generic, EVMError, HandlerCfg, Spec, SpecId}, - Context, Frame, + primitives::{spec_to_generic, EVMResultGeneric, InvalidTransaction, TransactionValidation}, + Context, EvmWiring, Frame, }; use core::mem; use register::{EvmHandler, HandleRegisters}; @@ -21,91 +21,49 @@ use self::register::{HandleRegister, HandleRegisterBox}; /// Handler acts as a proxy and allow to define different behavior for different /// sections of the code. This allows nice integration of different chains or /// to disable some mainnet behavior. -pub struct Handler<'a, H: Host + 'a, EXT, DB: Database> { - /// Handler configuration. - pub cfg: HandlerCfg, +pub struct Handler<'a, EvmWiringT: EvmWiring, H: Host + 'a> { + /// Handler hardfork + pub spec_id: EvmWiringT::Hardfork, /// Instruction table type. pub instruction_table: InstructionTables<'a, H>, /// Registers that will be called on initialization. - pub registers: Vec>, + pub registers: Vec>, /// Validity handles. - pub validation: ValidationHandler<'a, EXT, DB>, + pub validation: ValidationHandler<'a, EvmWiringT>, /// Pre execution handle. - pub pre_execution: PreExecutionHandler<'a, EXT, DB>, + pub pre_execution: PreExecutionHandler<'a, EvmWiringT>, /// Post Execution handle. - pub post_execution: PostExecutionHandler<'a, EXT, DB>, + pub post_execution: PostExecutionHandler<'a, EvmWiringT>, /// Execution loop that handles frames. - pub execution: ExecutionHandler<'a, EXT, DB>, + pub execution: ExecutionHandler<'a, EvmWiringT>, } -impl<'a, EXT, DB: Database> EvmHandler<'a, EXT, DB> { - /// Created new Handler with given configuration. - /// - /// Internally it calls `mainnet_with_spec` with the given spec id. - /// Or `optimism_with_spec` if the optimism feature is enabled and `cfg.is_optimism` is set. - pub fn new(cfg: HandlerCfg) -> Self { - cfg_if::cfg_if! { - if #[cfg(feature = "optimism")] { - if cfg.is_optimism { - Handler::optimism_with_spec(cfg.spec_id) - } else { - Handler::mainnet_with_spec(cfg.spec_id) - } - } else { - Handler::mainnet_with_spec(cfg.spec_id) +impl<'a, EvmWiringT> EvmHandler<'a, EvmWiringT> +where + EvmWiringT: + EvmWiring>>, +{ + /// Creates a base/vanilla Ethereum handler with the provided spec id. + pub fn mainnet_with_spec(spec_id: EvmWiringT::Hardfork) -> Self { + spec_to_generic!( + spec_id.into(), + Self { + spec_id, + instruction_table: InstructionTables::new_plain::(), + registers: Vec::new(), + validation: ValidationHandler::new::(), + pre_execution: PreExecutionHandler::new::(), + post_execution: PostExecutionHandler::mainnet::(), + execution: ExecutionHandler::new::(), } - } - } - - /// Default handler for Ethereum mainnet. - pub fn mainnet() -> Self { - Self { - cfg: HandlerCfg::new(SPEC::SPEC_ID), - instruction_table: InstructionTables::new_plain::(), - registers: Vec::new(), - validation: ValidationHandler::new::(), - pre_execution: PreExecutionHandler::new::(), - post_execution: PostExecutionHandler::new::(), - execution: ExecutionHandler::new::(), - } - } - - /// Returns `true` if the optimism feature is enabled and flag is set to `true`. - pub fn is_optimism(&self) -> bool { - self.cfg.is_optimism() - } - - /// Handler for optimism - #[cfg(feature = "optimism")] - pub fn optimism() -> Self { - let mut handler = Self::mainnet::(); - handler.cfg.is_optimism = true; - handler.append_handler_register(HandleRegisters::Plain( - crate::optimism::optimism_handle_register::, - )); - handler - } - - /// Optimism with spec. Similar to [`Self::mainnet_with_spec`]. - #[cfg(feature = "optimism")] - pub fn optimism_with_spec(spec_id: SpecId) -> Self { - spec_to_generic!(spec_id, Self::optimism::()) - } - - /// Creates handler with variable spec id, inside it will call `mainnet::` for - /// appropriate spec. - pub fn mainnet_with_spec(spec_id: SpecId) -> Self { - spec_to_generic!(spec_id, Self::mainnet::()) - } - - /// Specification ID. - pub fn cfg(&self) -> HandlerCfg { - self.cfg + ) } +} - /// Returns specification ID. - pub fn spec_id(&self) -> SpecId { - self.cfg.spec_id +impl<'a, EvmWiringT: EvmWiring> EvmHandler<'a, EvmWiringT> { + /// Returns the specification ID. + pub fn spec_id(&self) -> EvmWiringT::Hardfork { + self.spec_id } /// Executes call frame. @@ -113,70 +71,72 @@ impl<'a, EXT, DB: Database> EvmHandler<'a, EXT, DB> { &self, frame: &mut Frame, shared_memory: &mut SharedMemory, - context: &mut Context, - ) -> Result> { + context: &mut Context, + ) -> EVMResultGeneric { self.execution .execute_frame(frame, shared_memory, &self.instruction_table, context) } /// Take instruction table. - pub fn take_instruction_table(&mut self) -> InstructionTables<'a, Context> { + pub fn take_instruction_table(&mut self) -> InstructionTables<'a, Context> { let spec_id = self.spec_id(); mem::replace( &mut self.instruction_table, - spec_to_generic!(spec_id, InstructionTables::new_plain::()), + spec_to_generic!(spec_id.into(), InstructionTables::new_plain::()), ) } /// Set instruction table. - pub fn set_instruction_table(&mut self, table: InstructionTables<'a, Context>) { + pub fn set_instruction_table(&mut self, table: InstructionTables<'a, Context>) { self.instruction_table = table; } /// Returns reference to pre execution handler. - pub fn pre_execution(&self) -> &PreExecutionHandler<'a, EXT, DB> { + pub fn pre_execution(&self) -> &PreExecutionHandler<'a, EvmWiringT> { &self.pre_execution } /// Returns reference to pre execution handler. - pub fn post_execution(&self) -> &PostExecutionHandler<'a, EXT, DB> { + pub fn post_execution(&self) -> &PostExecutionHandler<'a, EvmWiringT> { &self.post_execution } /// Returns reference to frame handler. - pub fn execution(&self) -> &ExecutionHandler<'a, EXT, DB> { + pub fn execution(&self) -> &ExecutionHandler<'a, EvmWiringT> { &self.execution } /// Returns reference to validation handler. - pub fn validation(&self) -> &ValidationHandler<'a, EXT, DB> { + pub fn validation(&self) -> &ValidationHandler<'a, EvmWiringT> { &self.validation } /// Append handle register. - pub fn append_handler_register(&mut self, register: HandleRegisters<'a, EXT, DB>) { + pub fn append_handler_register(&mut self, register: HandleRegisters<'a, EvmWiringT>) { register.register(self); self.registers.push(register); } /// Append plain handle register. - pub fn append_handler_register_plain(&mut self, register: HandleRegister) { + pub fn append_handler_register_plain(&mut self, register: HandleRegister) { register(self); self.registers.push(HandleRegisters::Plain(register)); } /// Append boxed handle register. - pub fn append_handler_register_box(&mut self, register: HandleRegisterBox<'a, EXT, DB>) { + pub fn append_handler_register_box(&mut self, register: HandleRegisterBox<'a, EvmWiringT>) { register(self); self.registers.push(HandleRegisters::Box(register)); } +} +impl<'a, EvmWiringT: EvmWiring> EvmHandler<'a, EvmWiringT> { /// Pop last handle register and reapply all registers that are left. - pub fn pop_handle_register(&mut self) -> Option> { + pub fn pop_handle_register(&mut self) -> Option> { let out = self.registers.pop(); if out.is_some() { let registers = core::mem::take(&mut self.registers); - let mut base_handler = Handler::mainnet_with_spec(self.cfg.spec_id); + let mut base_handler = EvmWiringT::handler::<'a>(self.spec_id); // apply all registers to default handler and raw mainnet instruction table. for register in registers { base_handler.append_handler_register(register) @@ -186,32 +146,20 @@ impl<'a, EXT, DB: Database> EvmHandler<'a, EXT, DB> { out } - /// Creates the Handler with Generic Spec. - pub fn create_handle_generic(&mut self) -> EvmHandler<'a, EXT, DB> { - let registers = core::mem::take(&mut self.registers); - let mut base_handler = Handler::mainnet::(); - // apply all registers to default handler and raw mainnet instruction table. - for register in registers { - base_handler.append_handler_register(register) - } - base_handler - } - /// Creates the Handler with variable SpecId, inside it will call function with Generic Spec. - pub fn modify_spec_id(&mut self, spec_id: SpecId) { - if self.cfg.spec_id == spec_id { + pub fn modify_spec_id(&mut self, spec_id: EvmWiringT::Hardfork) { + if self.spec_id == spec_id { return; } let registers = core::mem::take(&mut self.registers); // register for optimism is added as a register, so we need to create mainnet handler here. - let mut handler = Handler::mainnet_with_spec(spec_id); + let mut handler = EvmWiringT::handler::<'a>(spec_id); // apply all registers to default handler and raw mainnet instruction table. for register in registers { handler.append_handler_register(register) } - handler.cfg = self.cfg(); - handler.cfg.spec_id = spec_id; + handler.spec_id = spec_id; *self = handler; } } @@ -220,22 +168,29 @@ impl<'a, EXT, DB: Database> EvmHandler<'a, EXT, DB> { mod test { use core::cell::RefCell; - use crate::{db::EmptyDB, primitives::EVMError}; + use crate::{ + db::EmptyDB, + primitives::{self, EVMError}, + }; use std::{rc::Rc, sync::Arc}; use super::*; + type TestEvmWiring = primitives::EthereumWiring; + #[test] fn test_handler_register_pop() { - let register = |inner: &Rc>| -> HandleRegisterBox<'_, (), EmptyDB> { + let register = |inner: &Rc>| -> HandleRegisterBox<'_, TestEvmWiring> { let inner = inner.clone(); Box::new(move |h| { *inner.borrow_mut() += 1; - h.post_execution.output = Arc::new(|_, _| Err(EVMError::Custom("test".to_string()))) + h.post_execution.output = Arc::new(|_, _| Err(EVMError::Custom("test".into()))) }) }; - let mut handler = EvmHandler::<(), EmptyDB>::new(HandlerCfg::new(SpecId::LATEST)); + let mut handler = EvmHandler::<'_, TestEvmWiring>::mainnet_with_spec( + ::Hardfork::default(), + ); let test = Rc::new(RefCell::new(0)); handler.append_handler_register_box(register(&test)); diff --git a/crates/revm/src/handler/handle_types/execution.rs b/crates/revm/src/handler/handle_types/execution.rs index 27d31eb118..d5d3fbc86c 100644 --- a/crates/revm/src/handler/handle_types/execution.rs +++ b/crates/revm/src/handler/handle_types/execution.rs @@ -2,8 +2,8 @@ use crate::{ frame::EOFCreateFrame, handler::mainnet, interpreter::{CallInputs, CreateInputs, SharedMemory}, - primitives::{db::Database, EVMError, Spec}, - CallFrame, Context, CreateFrame, Frame, FrameOrResult, FrameResult, + primitives::{EVMResultGeneric, Spec}, + CallFrame, Context, CreateFrame, EvmWiring, Frame, FrameOrResult, FrameResult, }; use revm_interpreter::{ opcode::InstructionTables, CallOutcome, CreateOutcome, EOFCreateInputs, InterpreterAction, @@ -12,166 +12,154 @@ use revm_interpreter::{ use std::{boxed::Box, sync::Arc}; /// Handles first frame return handle. -pub type LastFrameReturnHandle<'a, EXT, DB> = Arc< - dyn Fn(&mut Context, &mut FrameResult) -> Result<(), EVMError<::Error>> - + 'a, +pub type LastFrameReturnHandle<'a, EvmWiringT> = Arc< + dyn Fn(&mut Context, &mut FrameResult) -> EVMResultGeneric<(), EvmWiringT> + 'a, >; /// Executes a single frame. Errors can be returned in the EVM context. -pub type ExecuteFrameHandle<'a, EXT, DB> = Arc< +pub type ExecuteFrameHandle<'a, EvmWiringT> = Arc< dyn Fn( &mut Frame, &mut SharedMemory, - &InstructionTables<'_, Context>, - &mut Context, - ) -> Result::Error>> + &InstructionTables<'_, Context>, + &mut Context, + ) -> EVMResultGeneric + 'a, >; /// Handle sub call. -pub type FrameCallHandle<'a, EXT, DB> = Arc< - dyn Fn( - &mut Context, - Box, - ) -> Result::Error>> +pub type FrameCallHandle<'a, EvmWiringT> = Arc< + dyn Fn(&mut Context, Box) -> EVMResultGeneric + 'a, >; /// Handle call return -pub type FrameCallReturnHandle<'a, EXT, DB> = Arc< +pub type FrameCallReturnHandle<'a, EvmWiringT> = Arc< dyn Fn( - &mut Context, + &mut Context, Box, InterpreterResult, - ) -> Result::Error>> + ) -> EVMResultGeneric + 'a, >; /// Insert call outcome to the parent -pub type InsertCallOutcomeHandle<'a, EXT, DB> = Arc< +pub type InsertCallOutcomeHandle<'a, EvmWiringT> = Arc< dyn Fn( - &mut Context, + &mut Context, &mut Frame, &mut SharedMemory, CallOutcome, - ) -> Result<(), EVMError<::Error>> + ) -> EVMResultGeneric<(), EvmWiringT> + 'a, >; /// Handle sub create. -pub type FrameCreateHandle<'a, EXT, DB> = Arc< +pub type FrameCreateHandle<'a, EvmWiringT> = Arc< dyn Fn( - &mut Context, + &mut Context, Box, - ) -> Result::Error>> + ) -> EVMResultGeneric + 'a, >; /// Handle create return -pub type FrameCreateReturnHandle<'a, EXT, DB> = Arc< +pub type FrameCreateReturnHandle<'a, EvmWiringT> = Arc< dyn Fn( - &mut Context, + &mut Context, Box, InterpreterResult, - ) -> Result::Error>> + ) -> EVMResultGeneric + 'a, >; /// Insert call outcome to the parent -pub type InsertCreateOutcomeHandle<'a, EXT, DB> = Arc< - dyn Fn( - &mut Context, - &mut Frame, - CreateOutcome, - ) -> Result<(), EVMError<::Error>> +pub type InsertCreateOutcomeHandle<'a, EvmWiringT> = Arc< + dyn Fn(&mut Context, &mut Frame, CreateOutcome) -> EVMResultGeneric<(), EvmWiringT> + 'a, >; /// Handle EOF sub create. -pub type FrameEOFCreateHandle<'a, EXT, DB> = Arc< +pub type FrameEOFCreateHandle<'a, EvmWiringT> = Arc< dyn Fn( - &mut Context, + &mut Context, Box, - ) -> Result::Error>> + ) -> EVMResultGeneric + 'a, >; /// Handle EOF create return -pub type FrameEOFCreateReturnHandle<'a, EXT, DB> = Arc< +pub type FrameEOFCreateReturnHandle<'a, EvmWiringT> = Arc< dyn Fn( - &mut Context, + &mut Context, Box, InterpreterResult, - ) -> Result::Error>> + ) -> EVMResultGeneric + 'a, >; /// Insert EOF crate outcome to the parent -pub type InsertEOFCreateOutcomeHandle<'a, EXT, DB> = Arc< - dyn Fn( - &mut Context, - &mut Frame, - CreateOutcome, - ) -> Result<(), EVMError<::Error>> +pub type InsertEOFCreateOutcomeHandle<'a, EvmWiringT> = Arc< + dyn Fn(&mut Context, &mut Frame, CreateOutcome) -> EVMResultGeneric<(), EvmWiringT> + 'a, >; /// Handles related to stack frames. -pub struct ExecutionHandler<'a, EXT, DB: Database> { +pub struct ExecutionHandler<'a, EvmWiringT: EvmWiring> { /// Handles last frame return, modified gas for refund and /// sets tx gas limit. - pub last_frame_return: LastFrameReturnHandle<'a, EXT, DB>, + pub last_frame_return: LastFrameReturnHandle<'a, EvmWiringT>, /// Executes a single frame. - pub execute_frame: ExecuteFrameHandle<'a, EXT, DB>, + pub execute_frame: ExecuteFrameHandle<'a, EvmWiringT>, /// Frame call - pub call: FrameCallHandle<'a, EXT, DB>, + pub call: FrameCallHandle<'a, EvmWiringT>, /// Call return - pub call_return: FrameCallReturnHandle<'a, EXT, DB>, + pub call_return: FrameCallReturnHandle<'a, EvmWiringT>, /// Insert call outcome - pub insert_call_outcome: InsertCallOutcomeHandle<'a, EXT, DB>, + pub insert_call_outcome: InsertCallOutcomeHandle<'a, EvmWiringT>, /// Frame crate - pub create: FrameCreateHandle<'a, EXT, DB>, + pub create: FrameCreateHandle<'a, EvmWiringT>, /// Crate return - pub create_return: FrameCreateReturnHandle<'a, EXT, DB>, + pub create_return: FrameCreateReturnHandle<'a, EvmWiringT>, /// Insert create outcome. - pub insert_create_outcome: InsertCreateOutcomeHandle<'a, EXT, DB>, + pub insert_create_outcome: InsertCreateOutcomeHandle<'a, EvmWiringT>, /// Frame EOFCreate - pub eofcreate: FrameEOFCreateHandle<'a, EXT, DB>, + pub eofcreate: FrameEOFCreateHandle<'a, EvmWiringT>, /// EOFCreate return - pub eofcreate_return: FrameEOFCreateReturnHandle<'a, EXT, DB>, + pub eofcreate_return: FrameEOFCreateReturnHandle<'a, EvmWiringT>, /// Insert EOFCreate outcome. - pub insert_eofcreate_outcome: InsertEOFCreateOutcomeHandle<'a, EXT, DB>, + pub insert_eofcreate_outcome: InsertEOFCreateOutcomeHandle<'a, EvmWiringT>, } -impl<'a, EXT: 'a, DB: Database + 'a> ExecutionHandler<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring + 'a> ExecutionHandler<'a, EvmWiringT> { /// Creates mainnet ExecutionHandler. pub fn new() -> Self { Self { - last_frame_return: Arc::new(mainnet::last_frame_return::), - execute_frame: Arc::new(mainnet::execute_frame::), - call: Arc::new(mainnet::call::), - call_return: Arc::new(mainnet::call_return::), + last_frame_return: Arc::new(mainnet::last_frame_return::), + execute_frame: Arc::new(mainnet::execute_frame::), + call: Arc::new(mainnet::call::), + call_return: Arc::new(mainnet::call_return::), insert_call_outcome: Arc::new(mainnet::insert_call_outcome), - create: Arc::new(mainnet::create::), - create_return: Arc::new(mainnet::create_return::), + create: Arc::new(mainnet::create::), + create_return: Arc::new(mainnet::create_return::), insert_create_outcome: Arc::new(mainnet::insert_create_outcome), - eofcreate: Arc::new(mainnet::eofcreate::), - eofcreate_return: Arc::new(mainnet::eofcreate_return::), + eofcreate: Arc::new(mainnet::eofcreate::), + eofcreate_return: Arc::new(mainnet::eofcreate_return::), insert_eofcreate_outcome: Arc::new(mainnet::insert_eofcreate_outcome), } } } -impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring> ExecutionHandler<'a, EvmWiringT> { /// Executes single frame. #[inline] pub fn execute_frame( &self, frame: &mut Frame, shared_memory: &mut SharedMemory, - instruction_tables: &InstructionTables<'_, Context>, - context: &mut Context, - ) -> Result> { + instruction_tables: &InstructionTables<'_, Context>, + context: &mut Context, + ) -> EVMResultGeneric { (self.execute_frame)(frame, shared_memory, instruction_tables, context) } @@ -179,9 +167,9 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn last_frame_return( &self, - context: &mut Context, + context: &mut Context, frame_result: &mut FrameResult, - ) -> Result<(), EVMError> { + ) -> EVMResultGeneric<(), EvmWiringT> { (self.last_frame_return)(context, frame_result) } @@ -189,9 +177,9 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn call( &self, - context: &mut Context, + context: &mut Context, inputs: Box, - ) -> Result> { + ) -> EVMResultGeneric { (self.call)(context, inputs) } @@ -199,10 +187,10 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn call_return( &self, - context: &mut Context, + context: &mut Context, frame: Box, interpreter_result: InterpreterResult, - ) -> Result> { + ) -> EVMResultGeneric { (self.call_return)(context, frame, interpreter_result) } @@ -210,11 +198,11 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn insert_call_outcome( &self, - context: &mut Context, + context: &mut Context, frame: &mut Frame, shared_memory: &mut SharedMemory, outcome: CallOutcome, - ) -> Result<(), EVMError> { + ) -> EVMResultGeneric<(), EvmWiringT> { (self.insert_call_outcome)(context, frame, shared_memory, outcome) } @@ -222,9 +210,9 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn create( &self, - context: &mut Context, + context: &mut Context, inputs: Box, - ) -> Result> { + ) -> EVMResultGeneric { (self.create)(context, inputs) } @@ -232,10 +220,10 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn create_return( &self, - context: &mut Context, + context: &mut Context, frame: Box, interpreter_result: InterpreterResult, - ) -> Result> { + ) -> EVMResultGeneric { (self.create_return)(context, frame, interpreter_result) } @@ -243,10 +231,10 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn insert_create_outcome( &self, - context: &mut Context, + context: &mut Context, frame: &mut Frame, outcome: CreateOutcome, - ) -> Result<(), EVMError> { + ) -> EVMResultGeneric<(), EvmWiringT> { (self.insert_create_outcome)(context, frame, outcome) } @@ -254,9 +242,9 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn eofcreate( &self, - context: &mut Context, + context: &mut Context, inputs: Box, - ) -> Result> { + ) -> EVMResultGeneric { (self.eofcreate)(context, inputs) } @@ -264,10 +252,10 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn eofcreate_return( &self, - context: &mut Context, + context: &mut Context, frame: Box, interpreter_result: InterpreterResult, - ) -> Result> { + ) -> EVMResultGeneric { (self.eofcreate_return)(context, frame, interpreter_result) } @@ -275,10 +263,10 @@ impl<'a, EXT, DB: Database> ExecutionHandler<'a, EXT, DB> { #[inline] pub fn insert_eofcreate_outcome( &self, - context: &mut Context, + context: &mut Context, frame: &mut Frame, outcome: CreateOutcome, - ) -> Result<(), EVMError> { + ) -> EVMResultGeneric<(), EvmWiringT> { (self.insert_eofcreate_outcome)(context, frame, outcome) } } diff --git a/crates/revm/src/handler/handle_types/generic.rs b/crates/revm/src/handler/handle_types/generic.rs index e9d239311c..52ec25651f 100644 --- a/crates/revm/src/handler/handle_types/generic.rs +++ b/crates/revm/src/handler/handle_types/generic.rs @@ -1,12 +1,9 @@ -use crate::{ - primitives::{db::Database, EVMResultGeneric}, - Context, -}; +use crate::{primitives::EVMResultGeneric, Context}; use std::sync::Arc; /// Generic Handle that takes a mutable reference to the context and returns a result. -pub type GenericContextHandle<'a, EXT, DB> = GenericContextHandleRet<'a, EXT, DB, ()>; +pub type GenericContextHandle<'a, EvmWiring> = GenericContextHandleRet<'a, EvmWiring, ()>; /// Generic handle that takes a mutable reference to the context and returns a result. -pub type GenericContextHandleRet<'a, EXT, DB, ReturnT> = - Arc) -> EVMResultGeneric::Error> + 'a>; +pub type GenericContextHandleRet<'a, EvmWiringT, ReturnT> = + Arc) -> EVMResultGeneric + 'a>; diff --git a/crates/revm/src/handler/handle_types/post_execution.rs b/crates/revm/src/handler/handle_types/post_execution.rs index b6899bbfba..56380b9fad 100644 --- a/crates/revm/src/handler/handle_types/post_execution.rs +++ b/crates/revm/src/handler/handle_types/post_execution.rs @@ -2,121 +2,111 @@ use crate::{ handler::mainnet, interpreter::Gas, - primitives::{db::Database, EVMError, EVMResultGeneric, ResultAndState, Spec}, - Context, FrameResult, + primitives::{EVMResult, EVMResultGeneric, ResultAndState, Spec}, + Context, EvmWiring, FrameResult, }; use std::sync::Arc; /// Reimburse the caller with ethereum it didn't spent. -pub type ReimburseCallerHandle<'a, EXT, DB> = - Arc, &Gas) -> EVMResultGeneric<(), ::Error> + 'a>; +pub type ReimburseCallerHandle<'a, EvmWiringT> = + Arc, &Gas) -> EVMResultGeneric<(), EvmWiringT> + 'a>; /// Reward beneficiary with transaction rewards. -pub type RewardBeneficiaryHandle<'a, EXT, DB> = ReimburseCallerHandle<'a, EXT, DB>; +pub type RewardBeneficiaryHandle<'a, EvmWiringT> = ReimburseCallerHandle<'a, EvmWiringT>; /// Main return handle, takes state from journal and transforms internal result to external. -pub type OutputHandle<'a, EXT, DB> = Arc< - dyn Fn( - &mut Context, - FrameResult, - ) -> Result::Error>> - + 'a, ->; +pub type OutputHandle<'a, EvmWiringT> = + Arc, FrameResult) -> EVMResult + 'a>; /// End handle, takes result and state and returns final result. /// This will be called after all the other handlers. /// /// It is useful for catching errors and returning them in a different way. -pub type EndHandle<'a, EXT, DB> = Arc< - dyn Fn( - &mut Context, - Result::Error>>, - ) -> Result::Error>> - + 'a, ->; +pub type EndHandle<'a, EvmWiringT> = + Arc, EVMResult) -> EVMResult + 'a>; /// Clear handle, doesn't have output, its purpose is to clear the /// context. It will always be called even on failed validation. -pub type ClearHandle<'a, EXT, DB> = Arc) + 'a>; +pub type ClearHandle<'a, EvmWiringT> = Arc) + 'a>; /// Refund handle, calculates the final refund. -pub type RefundHandle<'a, EXT, DB> = Arc, &mut Gas, i64) + 'a>; +pub type RefundHandle<'a, EvmWiringT> = Arc, &mut Gas, i64) + 'a>; /// Handles related to post execution after the stack loop is finished. -pub struct PostExecutionHandler<'a, EXT, DB: Database> { +pub struct PostExecutionHandler<'a, EvmWiringT: EvmWiring> { /// Calculate final refund - pub refund: RefundHandle<'a, EXT, DB>, + pub refund: RefundHandle<'a, EvmWiringT>, /// Reimburse the caller with ethereum it didn't spend. - pub reimburse_caller: ReimburseCallerHandle<'a, EXT, DB>, + pub reimburse_caller: ReimburseCallerHandle<'a, EvmWiringT>, /// Reward the beneficiary with caller fee. - pub reward_beneficiary: RewardBeneficiaryHandle<'a, EXT, DB>, + pub reward_beneficiary: RewardBeneficiaryHandle<'a, EvmWiringT>, /// Main return handle, returns the output of the transact. - pub output: OutputHandle<'a, EXT, DB>, + pub output: OutputHandle<'a, EvmWiringT>, /// Called when execution ends. /// End handle in comparison to output handle will be called every time after execution. /// Output in case of error will not be called. - pub end: EndHandle<'a, EXT, DB>, + pub end: EndHandle<'a, EvmWiringT>, /// Clear handle will be called always. In comparison to end that /// is called only on execution end, clear handle is called even if validation fails. - pub clear: ClearHandle<'a, EXT, DB>, + pub clear: ClearHandle<'a, EvmWiringT>, } -impl<'a, EXT: 'a, DB: Database + 'a> PostExecutionHandler<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring + 'a> PostExecutionHandler<'a, EvmWiringT> { /// Creates mainnet MainHandles. - pub fn new() -> Self { + pub fn mainnet() -> Self { Self { - refund: Arc::new(mainnet::refund::), - reimburse_caller: Arc::new(mainnet::reimburse_caller::), - reward_beneficiary: Arc::new(mainnet::reward_beneficiary::), - output: Arc::new(mainnet::output::), - end: Arc::new(mainnet::end::), - clear: Arc::new(mainnet::clear::), + refund: Arc::new(mainnet::refund::), + reimburse_caller: Arc::new(mainnet::reimburse_caller::), + reward_beneficiary: Arc::new(mainnet::reward_beneficiary::), + output: Arc::new(mainnet::output::), + end: Arc::new(mainnet::end::), + clear: Arc::new(mainnet::clear::), } } } -impl<'a, EXT, DB: Database> PostExecutionHandler<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring> PostExecutionHandler<'a, EvmWiringT> { /// Calculate final refund - pub fn refund(&self, context: &mut Context, gas: &mut Gas, eip7702_refund: i64) { + pub fn refund(&self, context: &mut Context, gas: &mut Gas, eip7702_refund: i64) { (self.refund)(context, gas, eip7702_refund) } /// Reimburse the caller with gas that were not spend. pub fn reimburse_caller( &self, - context: &mut Context, + context: &mut Context, gas: &Gas, - ) -> Result<(), EVMError> { + ) -> EVMResultGeneric<(), EvmWiringT> { (self.reimburse_caller)(context, gas) } /// Reward beneficiary pub fn reward_beneficiary( &self, - context: &mut Context, + context: &mut Context, gas: &Gas, - ) -> Result<(), EVMError> { + ) -> EVMResultGeneric<(), EvmWiringT> { (self.reward_beneficiary)(context, gas) } /// Returns the output of transaction. pub fn output( &self, - context: &mut Context, + context: &mut Context, result: FrameResult, - ) -> Result> { + ) -> EVMResult { (self.output)(context, result) } /// End handler. pub fn end( &self, - context: &mut Context, - end_output: Result>, - ) -> Result> { + context: &mut Context, + end_output: EVMResultGeneric, EvmWiringT>, + ) -> EVMResult { (self.end)(context, end_output) } /// Clean handler. - pub fn clear(&self, context: &mut Context) { + pub fn clear(&self, context: &mut Context) { (self.clear)(context) } } diff --git a/crates/revm/src/handler/handle_types/pre_execution.rs b/crates/revm/src/handler/handle_types/pre_execution.rs index 2645b03a19..7a4f3a2474 100644 --- a/crates/revm/src/handler/handle_types/pre_execution.rs +++ b/crates/revm/src/handler/handle_types/pre_execution.rs @@ -2,70 +2,77 @@ use super::{GenericContextHandle, GenericContextHandleRet}; use crate::{ handler::mainnet, - primitives::{db::Database, EVMError, Spec}, - Context, ContextPrecompiles, + primitives::{EVMResultGeneric, Spec}, + Context, ContextPrecompiles, EvmWiring, }; use std::sync::Arc; /// Loads precompiles into Evm -pub type LoadPrecompilesHandle<'a, DB> = Arc ContextPrecompiles + 'a>; +pub type LoadPrecompilesHandle<'a, EvmWiringT> = + Arc ContextPrecompiles + 'a>; /// Load access list accounts and beneficiary. /// There is no need to load Caller as it is assumed that /// it will be loaded in DeductCallerHandle. -pub type LoadAccountsHandle<'a, EXT, DB> = GenericContextHandle<'a, EXT, DB>; +pub type LoadAccountsHandle<'a, EvmWiringT> = GenericContextHandle<'a, EvmWiringT>; /// Deduct the caller to its limit. -pub type DeductCallerHandle<'a, EXT, DB> = GenericContextHandle<'a, EXT, DB>; +pub type DeductCallerHandle<'a, EvmWiringT> = GenericContextHandle<'a, EvmWiringT>; /// Load Auth list for EIP-7702, and returns number of created accounts. -pub type ApplyEIP7702AuthListHandle<'a, EXT, DB> = GenericContextHandleRet<'a, EXT, DB, u64>; +pub type ApplyEIP7702AuthListHandle<'a, EvmWiringT> = GenericContextHandleRet<'a, EvmWiringT, u64>; /// Handles related to pre execution before the stack loop is started. -pub struct PreExecutionHandler<'a, EXT, DB: Database> { +pub struct PreExecutionHandler<'a, EvmWiringT: EvmWiring> { /// Load precompiles - pub load_precompiles: LoadPrecompilesHandle<'a, DB>, + pub load_precompiles: LoadPrecompilesHandle<'a, EvmWiringT>, /// Main load handle - pub load_accounts: LoadAccountsHandle<'a, EXT, DB>, + pub load_accounts: LoadAccountsHandle<'a, EvmWiringT>, /// Deduct max value from the caller. - pub deduct_caller: DeductCallerHandle<'a, EXT, DB>, + pub deduct_caller: DeductCallerHandle<'a, EvmWiringT>, /// Apply EIP-7702 auth list - pub apply_eip7702_auth_list: ApplyEIP7702AuthListHandle<'a, EXT, DB>, + pub apply_eip7702_auth_list: ApplyEIP7702AuthListHandle<'a, EvmWiringT>, } -impl<'a, EXT: 'a, DB: Database + 'a> PreExecutionHandler<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring + 'a> PreExecutionHandler<'a, EvmWiringT> { /// Creates mainnet MainHandles. pub fn new() -> Self { Self { - load_precompiles: Arc::new(mainnet::load_precompiles::), - load_accounts: Arc::new(mainnet::load_accounts::), - deduct_caller: Arc::new(mainnet::deduct_caller::), - apply_eip7702_auth_list: Arc::new(mainnet::apply_eip7702_auth_list::), + load_precompiles: Arc::new(mainnet::load_precompiles::), + load_accounts: Arc::new(mainnet::load_accounts::), + deduct_caller: Arc::new(mainnet::deduct_caller::), + apply_eip7702_auth_list: Arc::new(mainnet::apply_eip7702_auth_list::), } } } -impl<'a, EXT, DB: Database> PreExecutionHandler<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring> PreExecutionHandler<'a, EvmWiringT> { /// Deduct caller to its limit. - pub fn deduct_caller(&self, context: &mut Context) -> Result<(), EVMError> { + pub fn deduct_caller( + &self, + context: &mut Context, + ) -> EVMResultGeneric<(), EvmWiringT> { (self.deduct_caller)(context) } /// Main load - pub fn load_accounts(&self, context: &mut Context) -> Result<(), EVMError> { + pub fn load_accounts( + &self, + context: &mut Context, + ) -> EVMResultGeneric<(), EvmWiringT> { (self.load_accounts)(context) } /// Apply EIP-7702 auth list and return gas refund on account that were already present. pub fn apply_eip7702_auth_list( &self, - context: &mut Context, - ) -> Result> { + context: &mut Context, + ) -> EVMResultGeneric { (self.apply_eip7702_auth_list)(context) } /// Load precompiles - pub fn load_precompiles(&self) -> ContextPrecompiles { + pub fn load_precompiles(&self) -> ContextPrecompiles { (self.load_precompiles)() } } diff --git a/crates/revm/src/handler/handle_types/validation.rs b/crates/revm/src/handler/handle_types/validation.rs index 8aa55c28c2..c5f7309622 100644 --- a/crates/revm/src/handler/handle_types/validation.rs +++ b/crates/revm/src/handler/handle_types/validation.rs @@ -1,60 +1,63 @@ use crate::{ handler::mainnet, - primitives::{db::Database, EVMError, Env, Spec}, - Context, + primitives::{EVMResultGeneric, EnvWiring, InvalidTransaction, Spec, TransactionValidation}, + Context, EvmWiring, }; use std::sync::Arc; /// Handle that validates env. -pub type ValidateEnvHandle<'a, DB> = - Arc Result<(), EVMError<::Error>> + 'a>; +pub type ValidateEnvHandle<'a, EvmWiringT> = + Arc) -> EVMResultGeneric<(), EvmWiringT> + 'a>; /// Handle that validates transaction environment against the state. /// Second parametar is initial gas. -pub type ValidateTxEnvAgainstState<'a, EXT, DB> = - Arc) -> Result<(), EVMError<::Error>> + 'a>; +pub type ValidateTxEnvAgainstState<'a, EvmWiringT> = + Arc) -> EVMResultGeneric<(), EvmWiringT> + 'a>; /// Initial gas calculation handle -pub type ValidateInitialTxGasHandle<'a, DB> = - Arc Result::Error>> + 'a>; +pub type ValidateInitialTxGasHandle<'a, EvmWiringT> = + Arc) -> EVMResultGeneric + 'a>; /// Handles related to validation. -pub struct ValidationHandler<'a, EXT, DB: Database> { +pub struct ValidationHandler<'a, EvmWiringT: EvmWiring> { /// Validate and calculate initial transaction gas. - pub initial_tx_gas: ValidateInitialTxGasHandle<'a, DB>, + pub initial_tx_gas: ValidateInitialTxGasHandle<'a, EvmWiringT>, /// Validate transactions against state data. - pub tx_against_state: ValidateTxEnvAgainstState<'a, EXT, DB>, + pub tx_against_state: ValidateTxEnvAgainstState<'a, EvmWiringT>, /// Validate Env. - pub env: ValidateEnvHandle<'a, DB>, + pub env: ValidateEnvHandle<'a, EvmWiringT>, } -impl<'a, EXT: 'a, DB: Database + 'a> ValidationHandler<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring + 'a> ValidationHandler<'a, EvmWiringT> +where + ::ValidationError: From, +{ /// Create new ValidationHandles pub fn new() -> Self { Self { - initial_tx_gas: Arc::new(mainnet::validate_initial_tx_gas::), - env: Arc::new(mainnet::validate_env::), - tx_against_state: Arc::new(mainnet::validate_tx_against_state::), + initial_tx_gas: Arc::new(mainnet::validate_initial_tx_gas::), + env: Arc::new(mainnet::validate_env::), + tx_against_state: Arc::new(mainnet::validate_tx_against_state::), } } } -impl<'a, EXT, DB: Database> ValidationHandler<'a, EXT, DB> { +impl<'a, EvmWiringT: EvmWiring> ValidationHandler<'a, EvmWiringT> { /// Validate env. - pub fn env(&self, env: &Env) -> Result<(), EVMError> { + pub fn env(&self, env: &EnvWiring) -> EVMResultGeneric<(), EvmWiringT> { (self.env)(env) } /// Initial gas - pub fn initial_tx_gas(&self, env: &Env) -> Result> { + pub fn initial_tx_gas(&self, env: &EnvWiring) -> EVMResultGeneric { (self.initial_tx_gas)(env) } /// Validate ttansaction against the state. pub fn tx_against_state( &self, - context: &mut Context, - ) -> Result<(), EVMError> { + context: &mut Context, + ) -> EVMResultGeneric<(), EvmWiringT> { (self.tx_against_state)(context) } } diff --git a/crates/revm/src/handler/mainnet/execution.rs b/crates/revm/src/handler/mainnet/execution.rs index f39cbf0ac5..0c5bb0ecf0 100644 --- a/crates/revm/src/handler/mainnet/execution.rs +++ b/crates/revm/src/handler/mainnet/execution.rs @@ -1,12 +1,11 @@ use crate::{ - db::Database, frame::EOFCreateFrame, interpreter::{ return_ok, return_revert, CallInputs, CreateInputs, CreateOutcome, Gas, InstructionResult, SharedMemory, }, - primitives::{EVMError, Spec}, - CallFrame, Context, CreateFrame, Frame, FrameOrResult, FrameResult, + primitives::{EVMError, EVMResultGeneric, Spec, Transaction}, + CallFrame, Context, CreateFrame, EvmWiring, Frame, FrameOrResult, FrameResult, }; use core::mem; use revm_interpreter::{ @@ -17,12 +16,12 @@ use std::boxed::Box; /// Execute frame #[inline] -pub fn execute_frame( +pub fn execute_frame( frame: &mut Frame, shared_memory: &mut SharedMemory, - instruction_tables: &InstructionTables<'_, Context>, - context: &mut Context, -) -> Result> { + instruction_tables: &InstructionTables<'_, Context>, + context: &mut Context, +) -> EVMResultGeneric { let interpreter = frame.interpreter_mut(); let memory = mem::replace(shared_memory, EMPTY_SHARED_MEMORY); let next_action = match instruction_tables { @@ -37,17 +36,17 @@ pub fn execute_frame( /// Handle output of the transaction #[inline] -pub fn last_frame_return( - context: &mut Context, +pub fn last_frame_return( + context: &mut Context, frame_result: &mut FrameResult, -) -> Result<(), EVMError> { +) -> EVMResultGeneric<(), EvmWiringT> { let instruction_result = frame_result.interpreter_result().result; let gas = frame_result.gas_mut(); let remaining = gas.remaining(); let refunded = gas.refunded(); // Spend the gas limit. Gas is reimbursed when the tx returns successfully. - *gas = Gas::new_spent(context.evm.env.tx.gas_limit); + *gas = Gas::new_spent(context.evm.env.tx.gas_limit()); match instruction_result { return_ok!() => { @@ -64,19 +63,19 @@ pub fn last_frame_return( /// Handle frame sub call. #[inline] -pub fn call( - context: &mut Context, +pub fn call( + context: &mut Context, inputs: Box, -) -> Result> { +) -> EVMResultGeneric { context.evm.make_call_frame(&inputs) } #[inline] -pub fn call_return( - context: &mut Context, +pub fn call_return( + context: &mut Context, frame: Box, interpreter_result: InterpreterResult, -) -> Result> { +) -> EVMResultGeneric { context .evm .call_return(&interpreter_result, frame.frame_data.checkpoint); @@ -87,13 +86,14 @@ pub fn call_return( } #[inline] -pub fn insert_call_outcome( - context: &mut Context, +pub fn insert_call_outcome( + context: &mut Context, frame: &mut Frame, shared_memory: &mut SharedMemory, outcome: CallOutcome, -) -> Result<(), EVMError> { - context.evm.take_error()?; +) -> EVMResultGeneric<(), EvmWiringT> { + context.evm.take_error().map_err(EVMError::Database)?; + frame .frame_data_mut() .interpreter @@ -103,19 +103,22 @@ pub fn insert_call_outcome( /// Handle frame sub create. #[inline] -pub fn create( - context: &mut Context, +pub fn create( + context: &mut Context, inputs: Box, -) -> Result> { - context.evm.make_create_frame(SPEC::SPEC_ID, &inputs) +) -> EVMResultGeneric { + context + .evm + .make_create_frame(SPEC::SPEC_ID, &inputs) + .map_err(EVMError::Database) } #[inline] -pub fn create_return( - context: &mut Context, +pub fn create_return( + context: &mut Context, frame: Box, mut interpreter_result: InterpreterResult, -) -> Result> { +) -> EVMResultGeneric { context.evm.create_return::( &mut interpreter_result, frame.created_address, @@ -128,12 +131,13 @@ pub fn create_return( } #[inline] -pub fn insert_create_outcome( - context: &mut Context, +pub fn insert_create_outcome( + context: &mut Context, frame: &mut Frame, outcome: CreateOutcome, -) -> Result<(), EVMError> { - context.evm.take_error()?; +) -> EVMResultGeneric<(), EvmWiringT> { + context.evm.take_error().map_err(EVMError::Database)?; + frame .frame_data_mut() .interpreter @@ -143,19 +147,22 @@ pub fn insert_create_outcome( /// Handle frame sub create. #[inline] -pub fn eofcreate( - context: &mut Context, +pub fn eofcreate( + context: &mut Context, inputs: Box, -) -> Result> { - context.evm.make_eofcreate_frame(SPEC::SPEC_ID, &inputs) +) -> EVMResultGeneric { + context + .evm + .make_eofcreate_frame(SPEC::SPEC_ID, &inputs) + .map_err(EVMError::Database) } #[inline] -pub fn eofcreate_return( - context: &mut Context, +pub fn eofcreate_return( + context: &mut Context, frame: Box, mut interpreter_result: InterpreterResult, -) -> Result> { +) -> EVMResultGeneric { context.evm.eofcreate_return::( &mut interpreter_result, frame.created_address, @@ -168,12 +175,13 @@ pub fn eofcreate_return( } #[inline] -pub fn insert_eofcreate_outcome( - context: &mut Context, +pub fn insert_eofcreate_outcome( + context: &mut Context, frame: &mut Frame, outcome: CreateOutcome, -) -> Result<(), EVMError> { - core::mem::replace(&mut context.evm.error, Ok(()))?; +) -> EVMResultGeneric<(), EvmWiringT> { + context.evm.take_error().map_err(EVMError::Database)?; + frame .frame_data_mut() .interpreter @@ -185,15 +193,15 @@ pub fn insert_eofcreate_outcome( mod tests { use super::*; use crate::handler::mainnet::refund; - use crate::primitives::{CancunSpec, Env}; + use crate::primitives::{CancunSpec, DefaultEthereumWiring, EnvWiring}; use revm_precompile::Bytes; /// Creates frame result. fn call_last_frame_return(instruction_result: InstructionResult, gas: Gas) -> Gas { - let mut env = Env::default(); + let mut env = EnvWiring::::default(); env.tx.gas_limit = 100; - let mut ctx = Context::new_empty(); + let mut ctx = Context::default(); ctx.evm.inner.env = Box::new(env); let mut first_frame = FrameResult::Call(CallOutcome::new( InterpreterResult { @@ -203,8 +211,8 @@ mod tests { }, 0..0, )); - last_frame_return::(&mut ctx, &mut first_frame).unwrap(); - refund::(&mut ctx, first_frame.gas_mut(), 0); + last_frame_return::(&mut ctx, &mut first_frame).unwrap(); + refund::(&mut ctx, first_frame.gas_mut(), 0); *first_frame.gas() } diff --git a/crates/revm/src/handler/mainnet/post_execution.rs b/crates/revm/src/handler/mainnet/post_execution.rs index 3e2f520e3e..784ab53540 100644 --- a/crates/revm/src/handler/mainnet/post_execution.rs +++ b/crates/revm/src/handler/mainnet/post_execution.rs @@ -1,23 +1,24 @@ use crate::{ interpreter::{Gas, SuccessOrHalt}, primitives::{ - db::Database, EVMError, ExecutionResult, ResultAndState, Spec, SpecId, SpecId::LONDON, U256, + Block, EVMError, EVMResult, EVMResultGeneric, ExecutionResult, ResultAndState, Spec, + SpecId, SpecId::LONDON, Transaction, U256, }, - Context, FrameResult, + Context, EvmWiring, FrameResult, }; /// Mainnet end handle does not change the output. #[inline] -pub fn end( - _context: &mut Context, - evm_output: Result>, -) -> Result> { +pub fn end( + _context: &mut Context, + evm_output: EVMResult, +) -> EVMResult { evm_output } /// Clear handle clears error and journal state. #[inline] -pub fn clear(context: &mut Context) { +pub fn clear(context: &mut Context) { // clear error and journaled state. let _ = context.evm.take_error(); context.evm.inner.journaled_state.clear(); @@ -25,17 +26,17 @@ pub fn clear(context: &mut Context) { /// Reward beneficiary with gas fee. #[inline] -pub fn reward_beneficiary( - context: &mut Context, +pub fn reward_beneficiary( + context: &mut Context, gas: &Gas, -) -> Result<(), EVMError> { - let beneficiary = context.evm.env.block.coinbase; +) -> EVMResultGeneric<(), EvmWiringT> { + let beneficiary = *context.evm.env.block.coinbase(); let effective_gas_price = context.evm.env.effective_gas_price(); // transfer fee to coinbase/beneficiary. // EIP-1559 discard basefee for coinbase transfer. Basefee amount of gas is discarded. let coinbase_gas_price = if SPEC::enabled(LONDON) { - effective_gas_price.saturating_sub(context.evm.env.block.basefee) + effective_gas_price.saturating_sub(*context.evm.env.block.basefee()) } else { effective_gas_price }; @@ -44,7 +45,8 @@ pub fn reward_beneficiary( .evm .inner .journaled_state - .load_account(beneficiary, &mut context.evm.inner.db)?; + .load_account(beneficiary, &mut context.evm.inner.db) + .map_err(EVMError::Database)?; coinbase_account.data.mark_touch(); coinbase_account.data.info.balance = coinbase_account @@ -56,8 +58,8 @@ pub fn reward_beneficiary( Ok(()) } -pub fn refund( - _context: &mut Context, +pub fn refund( + _context: &mut Context, gas: &mut Gas, eip7702_refund: i64, ) { @@ -70,11 +72,11 @@ pub fn refund( } #[inline] -pub fn reimburse_caller( - context: &mut Context, +pub fn reimburse_caller( + context: &mut Context, gas: &Gas, -) -> Result<(), EVMError> { - let caller = context.evm.env.tx.caller; +) -> EVMResultGeneric<(), EvmWiringT> { + let caller = *context.evm.env.tx.caller(); let effective_gas_price = context.evm.env.effective_gas_price(); // return balance of not spend gas. @@ -82,7 +84,8 @@ pub fn reimburse_caller( .evm .inner .journaled_state - .load_account(caller, &mut context.evm.inner.db)?; + .load_account(caller, &mut context.evm.inner.db) + .map_err(EVMError::Database)?; caller_account.data.info.balance = caller_account.data.info.balance.saturating_add( @@ -94,11 +97,12 @@ pub fn reimburse_caller( /// Main return handle, returns the output of the transaction. #[inline] -pub fn output( - context: &mut Context, +pub fn output( + context: &mut Context, result: FrameResult, -) -> Result> { - context.evm.take_error()?; +) -> EVMResult { + context.evm.take_error().map_err(EVMError::Database)?; + // used gas with refund calculated. let gas_refunded = result.gas().refunded() as u64; let final_gas_used = result.gas().spent() - gas_refunded; @@ -108,7 +112,7 @@ pub fn output( // reset journal and return present state. let (state, logs) = context.evm.journaled_state.finalize(); - let result = match instruction_result.result.into() { + let result = match SuccessOrHalt::::from(instruction_result.result) { SuccessOrHalt::Success(reason) => ExecutionResult::Success { reason, gas_used: final_gas_used, diff --git a/crates/revm/src/handler/mainnet/pre_execution.rs b/crates/revm/src/handler/mainnet/pre_execution.rs index 60933ef44f..2cebe246f6 100644 --- a/crates/revm/src/handler/mainnet/pre_execution.rs +++ b/crates/revm/src/handler/mainnet/pre_execution.rs @@ -5,32 +5,30 @@ use crate::{ precompile::PrecompileSpecId, primitives::{ - db::Database, - eip7702, Account, Bytecode, EVMError, Env, Spec, - SpecId::{CANCUN, PRAGUE, SHANGHAI}, - TxKind, BLOCKHASH_STORAGE_ADDRESS, U256, + eip7702, Account, Block, Bytecode, EVMError, EVMResultGeneric, EnvWiring, Spec, SpecId, + Transaction, BLOCKHASH_STORAGE_ADDRESS, PRAGUE, U256, }, - Context, ContextPrecompiles, + Context, ContextPrecompiles, EvmWiring, }; /// Main precompile load #[inline] -pub fn load_precompiles() -> ContextPrecompiles { +pub fn load_precompiles() -> ContextPrecompiles { ContextPrecompiles::new(PrecompileSpecId::from_spec_id(SPEC::SPEC_ID)) } /// Main load handle #[inline] -pub fn load_accounts( - context: &mut Context, -) -> Result<(), EVMError> { +pub fn load_accounts( + context: &mut Context, +) -> EVMResultGeneric<(), EvmWiringT> { // set journaling state flag. context.evm.journaled_state.set_spec_id(SPEC::SPEC_ID); // load coinbase // EIP-3651: Warm COINBASE. Starts the `COINBASE` address warm - if SPEC::enabled(SHANGHAI) { - let coinbase = context.evm.inner.env.block.coinbase; + if SPEC::enabled(SpecId::SHANGHAI) { + let coinbase = *context.evm.inner.env.block.coinbase(); context .evm .journaled_state @@ -40,7 +38,7 @@ pub fn load_accounts( // Load blockhash storage address // EIP-2935: Serve historical block hashes from state - if SPEC::enabled(PRAGUE) { + if SPEC::enabled(SpecId::PRAGUE) { context .evm .journaled_state @@ -49,19 +47,22 @@ pub fn load_accounts( } // Load access list - context.evm.load_access_list()?; + context.evm.load_access_list().map_err(EVMError::Database)?; Ok(()) } /// Helper function that deducts the caller balance. #[inline] -pub fn deduct_caller_inner(caller_account: &mut Account, env: &Env) { +pub fn deduct_caller_inner( + caller_account: &mut Account, + env: &EnvWiring, +) { // Subtract gas costs from the caller's account. // We need to saturate the gas cost to prevent underflow in case that `disable_balance_check` is enabled. - let mut gas_cost = U256::from(env.tx.gas_limit).saturating_mul(env.effective_gas_price()); + let mut gas_cost = U256::from(env.tx.gas_limit()).saturating_mul(env.effective_gas_price()); // EIP-4844 - if SPEC::enabled(CANCUN) { + if SPEC::enabled(SpecId::CANCUN) { let data_fee = env.calc_data_fee().expect("already checked"); gas_cost = gas_cost.saturating_add(data_fee); } @@ -70,7 +71,7 @@ pub fn deduct_caller_inner(caller_account: &mut Account, env: &Env) caller_account.info.balance = caller_account.info.balance.saturating_sub(gas_cost); // bump the nonce for calls. Nonce for CREATE will be bumped in `handle_create`. - if matches!(env.tx.transact_to, TxKind::Call(_)) { + if env.tx.kind().is_call() { // Nonce is already checked caller_account.info.nonce = caller_account.info.nonce.saturating_add(1); } @@ -81,34 +82,38 @@ pub fn deduct_caller_inner(caller_account: &mut Account, env: &Env) /// Deducts the caller balance to the transaction limit. #[inline] -pub fn deduct_caller( - context: &mut Context, -) -> Result<(), EVMError> { +pub fn deduct_caller( + context: &mut Context, +) -> EVMResultGeneric<(), EvmWiringT> { // load caller's account. let caller_account = context .evm .inner .journaled_state - .load_account(context.evm.inner.env.tx.caller, &mut context.evm.inner.db)?; + .load_account( + *context.evm.inner.env.tx.caller(), + &mut context.evm.inner.db, + ) + .map_err(EVMError::Database)?; // deduct gas cost from caller's account. - deduct_caller_inner::(caller_account.data, &context.evm.inner.env); + deduct_caller_inner::(caller_account.data, &context.evm.inner.env); Ok(()) } /// Apply EIP-7702 auth list and return number gas refund on already created accounts. #[inline] -pub fn apply_eip7702_auth_list( - context: &mut Context, -) -> Result> { +pub fn apply_eip7702_auth_list( + context: &mut Context, +) -> EVMResultGeneric { // EIP-7702. Load bytecode to authorized accounts. if !SPEC::enabled(PRAGUE) { return Ok(0); } // return if there is no auth list. - let Some(authorization_list) = context.evm.inner.env.tx.authorization_list.as_ref() else { + let Some(authorization_list) = context.evm.inner.env.tx.authorization_list() else { return Ok(0); }; @@ -133,7 +138,8 @@ pub fn apply_eip7702_auth_list( .evm .inner .journaled_state - .load_code(authority, &mut context.evm.inner.db)?; + .load_code(authority, &mut context.evm.inner.db) + .map_err(EVMError::Database)?; // 4. Verify the code of authority is either empty or already delegated. if let Some(bytecode) = &authority_acc.info.code { diff --git a/crates/revm/src/handler/mainnet/validation.rs b/crates/revm/src/handler/mainnet/validation.rs index 18d6241224..4fd11a25c2 100644 --- a/crates/revm/src/handler/mainnet/validation.rs +++ b/crates/revm/src/handler/mainnet/validation.rs @@ -1,50 +1,66 @@ use revm_interpreter::gas; use crate::{ - primitives::{db::Database, EVMError, Env, InvalidTransaction, Spec}, - Context, + primitives::{ + EVMError, EVMResultGeneric, EnvWiring, InvalidTransaction, Spec, Transaction, + TransactionValidation, + }, + Context, EvmWiring, }; /// Validate environment for the mainnet. -pub fn validate_env(env: &Env) -> Result<(), EVMError> { +pub fn validate_env( + env: &EnvWiring, +) -> EVMResultGeneric<(), EvmWiringT> +where + ::ValidationError: From, +{ // Important: validate block before tx. env.validate_block_env::()?; - env.validate_tx::()?; + env.validate_tx::() + .map_err(|error| EVMError::Transaction(error.into()))?; Ok(()) } /// Validates transaction against the state. -pub fn validate_tx_against_state( - context: &mut Context, -) -> Result<(), EVMError> { +pub fn validate_tx_against_state( + context: &mut Context, +) -> EVMResultGeneric<(), EvmWiringT> +where + ::ValidationError: From, +{ // load acc - let tx_caller = context.evm.env.tx.caller; + let tx_caller = *context.evm.env.tx.caller(); let caller_account = context .evm .inner .journaled_state - .load_code(tx_caller, &mut context.evm.inner.db)?; + .load_code(tx_caller, &mut context.evm.inner.db) + .map_err(EVMError::Database)?; context .evm .inner .env .validate_tx_against_state::(caller_account.data) - .map_err(EVMError::Transaction)?; + .map_err(|e| EVMError::Transaction(e.into()))?; Ok(()) } /// Validate initial transaction gas. -pub fn validate_initial_tx_gas( - env: &Env, -) -> Result> { - let input = &env.tx.data; - let is_create = env.tx.transact_to.is_create(); - let access_list = &env.tx.access_list; +pub fn validate_initial_tx_gas( + env: &EnvWiring, +) -> EVMResultGeneric +where + ::ValidationError: From, +{ + let input = &env.tx.data(); + let is_create = env.tx.kind().is_create(); + let access_list = env.tx.access_list(); let authorization_list_num = env .tx - .authorization_list + .authorization_list() .as_ref() .map(|l| l.len() as u64) .unwrap_or_default(); @@ -58,8 +74,10 @@ pub fn validate_initial_tx_gas( ); // Additional check to see if limit is big enough to cover initial gas. - if initial_gas_spend > env.tx.gas_limit { - return Err(InvalidTransaction::CallGasCostMoreThanGasLimit.into()); + if initial_gas_spend > env.tx.gas_limit() { + return Err(EVMError::Transaction( + InvalidTransaction::CallGasCostMoreThanGasLimit.into(), + )); } Ok(initial_gas_spend) } diff --git a/crates/revm/src/handler/register.rs b/crates/revm/src/handler/register.rs index e05225c17c..f71d9b24f6 100644 --- a/crates/revm/src/handler/register.rs +++ b/crates/revm/src/handler/register.rs @@ -1,25 +1,26 @@ -use crate::{db::Database, handler::Handler, Context}; +use crate::{handler::Handler, Context, EvmWiring}; use std::boxed::Box; /// EVM Handler -pub type EvmHandler<'a, EXT, DB> = Handler<'a, Context, EXT, DB>; +pub type EvmHandler<'a, EvmWiringT> = Handler<'a, EvmWiringT, Context>; // Handle register -pub type HandleRegister = for<'a> fn(&mut EvmHandler<'a, EXT, DB>); +pub type HandleRegister = for<'a> fn(&mut EvmHandler<'a, EvmWiringT>); // Boxed handle register -pub type HandleRegisterBox<'a, EXT, DB> = Box Fn(&mut EvmHandler<'e, EXT, DB>) + 'a>; +pub type HandleRegisterBox<'a, EvmWiringT> = + Box Fn(&mut EvmHandler<'e, EvmWiringT>) + 'a>; -pub enum HandleRegisters<'a, EXT, DB: Database> { +pub enum HandleRegisters<'a, EvmWiringT: EvmWiring> { /// Plain function register - Plain(HandleRegister), + Plain(HandleRegister), /// Boxed function register. - Box(HandleRegisterBox<'a, EXT, DB>), + Box(HandleRegisterBox<'a, EvmWiringT>), } -impl<'register, EXT, DB: Database> HandleRegisters<'register, EXT, DB> { +impl<'register, EvmWiringT: EvmWiring> HandleRegisters<'register, EvmWiringT> { /// Call register function to modify EvmHandler. - pub fn register<'evm>(&self, handler: &mut EvmHandler<'evm, EXT, DB>) + pub fn register<'evm>(&self, handler: &mut EvmHandler<'evm, EvmWiringT>) where 'evm: 'register, { diff --git a/crates/revm/src/inspector.rs b/crates/revm/src/inspector.rs index 046ec50761..b84c85b43c 100644 --- a/crates/revm/src/inspector.rs +++ b/crates/revm/src/inspector.rs @@ -12,8 +12,8 @@ use crate::{ interpreter::{ CallInputs, CallOutcome, CreateInputs, CreateOutcome, EOFCreateInputs, Interpreter, }, - primitives::{db::Database, Address, Log, U256}, - EvmContext, + primitives::{Address, Log, U256}, + EvmContext, EvmWiring, }; use auto_impl::auto_impl; @@ -29,13 +29,17 @@ pub mod inspectors { /// EVM [Interpreter] callbacks. #[auto_impl(&mut, Box)] -pub trait Inspector { +pub trait Inspector { /// Called before the interpreter is initialized. /// /// If `interp.instruction_result` is set to anything other than [crate::interpreter::InstructionResult::Continue] then the execution of the interpreter /// is skipped. #[inline] - fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn initialize_interp( + &mut self, + interp: &mut Interpreter, + context: &mut EvmContext, + ) { let _ = interp; let _ = context; } @@ -49,7 +53,7 @@ pub trait Inspector { /// /// To get the current opcode, use `interp.current_opcode()`. #[inline] - fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { let _ = interp; let _ = context; } @@ -59,14 +63,14 @@ pub trait Inspector { /// Setting `interp.instruction_result` to anything other than [crate::interpreter::InstructionResult::Continue] alters the execution /// of the interpreter. #[inline] - fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { let _ = interp; let _ = context; } /// Called when a log is emitted. #[inline] - fn log(&mut self, interp: &mut Interpreter, context: &mut EvmContext, log: &Log) { + fn log(&mut self, interp: &mut Interpreter, context: &mut EvmContext, log: &Log) { let _ = interp; let _ = context; let _ = log; @@ -78,7 +82,7 @@ pub trait Inspector { #[inline] fn call( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &mut CallInputs, ) -> Option { let _ = context; @@ -94,7 +98,7 @@ pub trait Inspector { #[inline] fn call_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CallInputs, outcome: CallOutcome, ) -> CallOutcome { @@ -111,7 +115,7 @@ pub trait Inspector { #[inline] fn create( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &mut CreateInputs, ) -> Option { let _ = context; @@ -126,7 +130,7 @@ pub trait Inspector { #[inline] fn create_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CreateInputs, outcome: CreateOutcome, ) -> CreateOutcome { @@ -140,7 +144,7 @@ pub trait Inspector { /// This can happen from create TX or from EOFCREATE opcode. fn eofcreate( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &mut EOFCreateInputs, ) -> Option { let _ = context; @@ -151,7 +155,7 @@ pub trait Inspector { /// Called when eof creating has ended. fn eofcreate_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &EOFCreateInputs, outcome: CreateOutcome, ) -> CreateOutcome { diff --git a/crates/revm/src/inspector/customprinter.rs b/crates/revm/src/inspector/customprinter.rs index ed42c4f7b4..c7abd718fb 100644 --- a/crates/revm/src/inspector/customprinter.rs +++ b/crates/revm/src/inspector/customprinter.rs @@ -9,7 +9,7 @@ use crate::{ inspectors::GasInspector, interpreter::{CallInputs, CreateInputs, Interpreter}, primitives::{Address, U256}, - Database, EvmContext, Inspector, + EvmContext, EvmWiring, Inspector, }; /// Custom print [Inspector], it has step level information of execution. @@ -20,14 +20,18 @@ pub struct CustomPrintTracer { gas_inspector: GasInspector, } -impl Inspector for CustomPrintTracer { - fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { +impl Inspector for CustomPrintTracer { + fn initialize_interp( + &mut self, + interp: &mut Interpreter, + context: &mut EvmContext, + ) { self.gas_inspector.initialize_interp(interp, context); } // get opcode by calling `interp.contract.opcode(interp.program_counter())`. // all other information can be obtained from interp. - fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { let opcode = interp.current_opcode(); let name = OpCode::name_by_op(opcode); @@ -52,13 +56,13 @@ impl Inspector for CustomPrintTracer { self.gas_inspector.step(interp, context); } - fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { self.gas_inspector.step_end(interp, context); } fn call_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CallInputs, outcome: CallOutcome, ) -> CallOutcome { @@ -67,7 +71,7 @@ impl Inspector for CustomPrintTracer { fn create_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CreateInputs, outcome: CreateOutcome, ) -> CreateOutcome { @@ -76,7 +80,7 @@ impl Inspector for CustomPrintTracer { fn call( &mut self, - _context: &mut EvmContext, + _context: &mut EvmContext, inputs: &mut CallInputs, ) -> Option { println!( @@ -93,7 +97,7 @@ impl Inspector for CustomPrintTracer { fn create( &mut self, - _context: &mut EvmContext, + _context: &mut EvmContext, inputs: &mut CreateInputs, ) -> Option { println!( @@ -116,7 +120,7 @@ mod test { use crate::{ inspector_handle_register, inspectors::CustomPrintTracer, - primitives::{address, bytes, SpecId}, + primitives::{address, bytes, EthereumWiring, SpecId}, Evm, InMemoryDB, }; @@ -126,8 +130,9 @@ mod test { // https://github.com/bluealloy/revm/issues/277 // checks this use case - let mut evm = Evm::builder() - .with_db(InMemoryDB::default()) + let mut evm = Evm::>::builder() + .with_default_db() + .with_default_ext_ctx() .modify_db(|db| { let code = bytes!("5b597fb075978b6c412c64d169d56d839a8fe01b3f4607ed603b2c78917ce8be1430fe6101e8527ffe64706ecad72a2f5c97a95e006e279dc57081902029ce96af7edae5de116fec610208527f9fc1ef09d4dd80683858ae3ea18869fe789ddc365d8d9d800e26c9872bac5e5b6102285260276102485360d461024953601661024a53600e61024b53607d61024c53600961024d53600b61024e5360b761024f5360596102505360796102515360a061025253607261025353603a6102545360fb61025553601261025653602861025753600761025853606f61025953601761025a53606161025b53606061025c5360a661025d53602b61025e53608961025f53607a61026053606461026153608c6102625360806102635360d56102645360826102655360ae61026653607f6101e8610146610220677a814b184591c555735fdcca53617f4d2b9134b29090c87d01058e27e962047654f259595947443b1b816b65cdb6277f4b59c10a36f4e7b8658f5a5e6f5561"); let info = crate::primitives::AccountInfo { @@ -144,7 +149,6 @@ mod test { tx.data = crate::primitives::Bytes::new(); tx.value = crate::primitives::U256::ZERO; }) - .with_external_context(CustomPrintTracer::default()) .with_spec_id(SpecId::BERLIN) .append_handler_register(inspector_handle_register) .build(); diff --git a/crates/revm/src/inspector/eip3155.rs b/crates/revm/src/inspector/eip3155.rs index aec20ffd8f..eeb04e5592 100644 --- a/crates/revm/src/inspector/eip3155.rs +++ b/crates/revm/src/inspector/eip3155.rs @@ -3,15 +3,18 @@ use crate::{ interpreter::{ CallInputs, CallOutcome, CreateInputs, CreateOutcome, Interpreter, InterpreterResult, }, - primitives::{db::Database, hex, HashMap, B256, U256}, - EvmContext, Inspector, + primitives::{hex, HashMap, Transaction, B256, U256}, + EvmContext, EvmWiring, Inspector, }; +use derive_where::derive_where; use revm_interpreter::OpCode; use serde::Serialize; use std::io::Write; /// [EIP-3155](https://eips.ethereum.org/EIPS/eip-3155) tracer [Inspector]. +#[derive_where(Debug)] pub struct TracerEip3155 { + #[derive_where(skip)] output: Box, gas_inspector: GasInspector, @@ -162,10 +165,10 @@ impl TracerEip3155 { self.output.flush() } - fn print_summary( + fn print_summary( &mut self, result: &InterpreterResult, - context: &mut EvmContext, + context: &mut EvmContext, ) { if self.print_summary { let spec_name: &str = context.spec_id().into(); @@ -173,7 +176,7 @@ impl TracerEip3155 { state_root: B256::ZERO.to_string(), output: result.output.to_string(), gas_used: hex_number( - context.inner.env().tx.gas_limit - self.gas_inspector.gas_remaining(), + context.inner.env().tx.gas_limit() - self.gas_inspector.gas_remaining(), ), pass: result.is_ok(), time: None, @@ -184,12 +187,16 @@ impl TracerEip3155 { } } -impl Inspector for TracerEip3155 { - fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { +impl Inspector for TracerEip3155 { + fn initialize_interp( + &mut self, + interp: &mut Interpreter, + context: &mut EvmContext, + ) { self.gas_inspector.initialize_interp(interp, context); } - fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { self.gas_inspector.step(interp, context); self.stack.clone_from(interp.stack.data()); self.memory = if self.include_memory { @@ -204,7 +211,7 @@ impl Inspector for TracerEip3155 { self.refunded = interp.gas.refunded(); } - fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { self.gas_inspector.step_end(interp, context); if self.skip { self.skip = false; @@ -237,7 +244,7 @@ impl Inspector for TracerEip3155 { fn call_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CallInputs, outcome: CallOutcome, ) -> CallOutcome { @@ -254,7 +261,7 @@ impl Inspector for TracerEip3155 { fn create_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CreateInputs, outcome: CreateOutcome, ) -> CreateOutcome { diff --git a/crates/revm/src/inspector/gas.rs b/crates/revm/src/inspector/gas.rs index 69f961efa4..587802b805 100644 --- a/crates/revm/src/inspector/gas.rs +++ b/crates/revm/src/inspector/gas.rs @@ -4,8 +4,7 @@ use revm_interpreter::CallOutcome; use crate::{ interpreter::{CallInputs, CreateInputs, CreateOutcome}, - primitives::db::Database, - EvmContext, Inspector, + EvmContext, EvmWiring, Inspector, }; /// Helper [Inspector] that keeps track of gas. @@ -26,11 +25,11 @@ impl GasInspector { } } -impl Inspector for GasInspector { +impl Inspector for GasInspector { fn initialize_interp( &mut self, interp: &mut crate::interpreter::Interpreter, - _context: &mut EvmContext, + _context: &mut EvmContext, ) { self.gas_remaining = interp.gas.limit(); } @@ -38,7 +37,7 @@ impl Inspector for GasInspector { fn step( &mut self, interp: &mut crate::interpreter::Interpreter, - _context: &mut EvmContext, + _context: &mut EvmContext, ) { self.gas_remaining = interp.gas.remaining(); } @@ -46,7 +45,7 @@ impl Inspector for GasInspector { fn step_end( &mut self, interp: &mut crate::interpreter::Interpreter, - _context: &mut EvmContext, + _context: &mut EvmContext, ) { let remaining = interp.gas.remaining(); self.last_gas_cost = self.gas_remaining.saturating_sub(remaining); @@ -55,7 +54,7 @@ impl Inspector for GasInspector { fn call_end( &mut self, - _context: &mut EvmContext, + _context: &mut EvmContext, _inputs: &CallInputs, mut outcome: CallOutcome, ) -> CallOutcome { @@ -68,7 +67,7 @@ impl Inspector for GasInspector { fn create_end( &mut self, - _context: &mut EvmContext, + _context: &mut EvmContext, _inputs: &CreateInputs, mut outcome: CreateOutcome, ) -> CreateOutcome { @@ -82,17 +81,15 @@ impl Inspector for GasInspector { #[cfg(test)] mod tests { - - use revm_interpreter::CallOutcome; - use revm_interpreter::CreateOutcome; + use super::*; use crate::{ - inspectors::GasInspector, - interpreter::{CallInputs, CreateInputs, Interpreter}, - primitives::Log, - Database, EvmContext, Inspector, + interpreter::Interpreter, + primitives::{self, EthereumWiring, Log}, }; + type TestEvmWiring = primitives::DefaultEthereumWiring; + #[derive(Default, Debug)] struct StackInspector { pc: usize, @@ -100,21 +97,30 @@ mod tests { gas_remaining_steps: Vec<(usize, u64)>, } - impl Inspector for StackInspector { - fn initialize_interp(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + impl Inspector for StackInspector { + fn initialize_interp( + &mut self, + interp: &mut Interpreter, + context: &mut EvmContext, + ) { self.gas_inspector.initialize_interp(interp, context); } - fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { self.pc = interp.program_counter(); self.gas_inspector.step(interp, context); } - fn log(&mut self, interp: &mut Interpreter, context: &mut EvmContext, log: &Log) { + fn log( + &mut self, + interp: &mut Interpreter, + context: &mut EvmContext, + log: &Log, + ) { self.gas_inspector.log(interp, context, log); } - fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { + fn step_end(&mut self, interp: &mut Interpreter, context: &mut EvmContext) { self.gas_inspector.step_end(interp, context); self.gas_remaining_steps .push((self.pc, self.gas_inspector.gas_remaining())); @@ -122,7 +128,7 @@ mod tests { fn call( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, call: &mut CallInputs, ) -> Option { self.gas_inspector.call(context, call) @@ -130,7 +136,7 @@ mod tests { fn call_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CallInputs, outcome: CallOutcome, ) -> CallOutcome { @@ -139,7 +145,7 @@ mod tests { fn create( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, call: &mut CreateInputs, ) -> Option { self.gas_inspector.create(context, call); @@ -148,7 +154,7 @@ mod tests { fn create_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, inputs: &CreateInputs, outcome: CreateOutcome, ) -> CreateOutcome { @@ -183,11 +189,12 @@ mod tests { ]); let bytecode = Bytecode::new_raw(contract_data); - let mut evm: Evm<'_, StackInspector, BenchmarkDB> = Evm::builder() + let mut evm = Evm::>::builder() .with_db(BenchmarkDB::new_bytecode(bytecode.clone())) - .with_external_context(StackInspector::default()) + .with_default_ext_ctx() .modify_tx_env(|tx| { - tx.clear(); + *tx = ::Transaction::default(); + tx.caller = address!("1000000000000000000000000000000000000000"); tx.transact_to = TxKind::Call(address!("0000000000000000000000000000000000000000")); tx.gas_limit = 21100; diff --git a/crates/revm/src/inspector/handler_register.rs b/crates/revm/src/inspector/handler_register.rs index 4f28508f61..885d7d7d96 100644 --- a/crates/revm/src/inspector/handler_register.rs +++ b/crates/revm/src/inspector/handler_register.rs @@ -1,23 +1,22 @@ use crate::{ - db::Database, handler::register::EvmHandler, interpreter::{opcode, InstructionResult, Interpreter}, - primitives::EVMError, - Context, FrameOrResult, FrameResult, Inspector, JournalEntry, + primitives::EVMResultGeneric, + Context, EvmWiring, FrameOrResult, FrameResult, Inspector, JournalEntry, }; use core::cell::RefCell; use revm_interpreter::opcode::DynInstruction; use std::{rc::Rc, sync::Arc, vec::Vec}; /// Provides access to an `Inspector` instance. -pub trait GetInspector { +pub trait GetInspector { /// Returns the associated `Inspector`. - fn get_inspector(&mut self) -> &mut impl Inspector; + fn get_inspector(&mut self) -> &mut impl Inspector; } -impl> GetInspector for INSP { +impl> GetInspector for INSP { #[inline] - fn get_inspector(&mut self) -> &mut impl Inspector { + fn get_inspector(&mut self) -> &mut impl Inspector { self } } @@ -34,8 +33,10 @@ impl> GetInspector for INSP { /// A few instructions handlers are wrapped twice once for `step` and `step_end` /// and in case of Logs and Selfdestruct wrapper is wrapped again for the /// `log` and `selfdestruct` calls. -pub fn inspector_handle_register>( - handler: &mut EvmHandler<'_, EXT, DB>, +pub fn inspector_handle_register< + EvmWiringT: EvmWiring>, +>( + handler: &mut EvmHandler<'_, EvmWiringT>, ) { let table = &mut handler.instruction_table; @@ -99,7 +100,7 @@ pub fn inspector_handle_register>( let create_input_stack_inner = create_input_stack.clone(); let prev_handle = handler.execution.create.clone(); handler.execution.create = Arc::new( - move |ctx, mut inputs| -> Result> { + move |ctx, mut inputs| -> EVMResultGeneric { let inspector = ctx.external.get_inspector(); // call inspector create to change input or return outcome. if let Some(outcome) = inspector.create(&mut ctx.evm, &mut inputs) { @@ -226,13 +227,13 @@ pub fn inspector_handle_register>( }); } -fn inspector_instruction( - prev: &DynInstruction<'_, Context>, +fn inspector_instruction( + prev: &DynInstruction<'_, Context>, interpreter: &mut Interpreter, - host: &mut Context, + host: &mut Context, ) where - INSP: GetInspector, - DB: Database, + EvmWiringT: EvmWiring, + EvmWiringT::ExternalContext: GetInspector, { // SAFETY: as the PC was already incremented we need to subtract 1 to preserve the // old Inspector behavior. @@ -264,9 +265,12 @@ mod tests { use crate::{ inspectors::NoOpInspector, interpreter::{CallInputs, CallOutcome, CreateInputs, CreateOutcome}, + primitives::{self, db::EmptyDB, EthereumWiring}, Evm, EvmContext, }; + type TestEvmWiring = primitives::DefaultEthereumWiring; + #[derive(Default, Debug)] struct StackInspector { initialize_interp_called: bool, @@ -276,25 +280,29 @@ mod tests { call_end: bool, } - impl Inspector for StackInspector { - fn initialize_interp(&mut self, _interp: &mut Interpreter, _context: &mut EvmContext) { + impl Inspector for StackInspector { + fn initialize_interp( + &mut self, + _interp: &mut Interpreter, + _context: &mut EvmContext, + ) { if self.initialize_interp_called { unreachable!("initialize_interp should not be called twice") } self.initialize_interp_called = true; } - fn step(&mut self, _interp: &mut Interpreter, _context: &mut EvmContext) { + fn step(&mut self, _interp: &mut Interpreter, _context: &mut EvmContext) { self.step += 1; } - fn step_end(&mut self, _interp: &mut Interpreter, _context: &mut EvmContext) { + fn step_end(&mut self, _interp: &mut Interpreter, _context: &mut EvmContext) { self.step_end += 1; } fn call( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, _call: &mut CallInputs, ) -> Option { if self.call { @@ -307,7 +315,7 @@ mod tests { fn call_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, _inputs: &CallInputs, outcome: CallOutcome, ) -> CallOutcome { @@ -321,7 +329,7 @@ mod tests { fn create( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, _call: &mut CreateInputs, ) -> Option { assert_eq!(context.journaled_state.depth(), 0); @@ -330,7 +338,7 @@ mod tests { fn create_end( &mut self, - context: &mut EvmContext, + context: &mut EvmContext, _inputs: &CreateInputs, outcome: CreateOutcome, ) -> CreateOutcome { @@ -365,11 +373,13 @@ mod tests { ]); let bytecode = Bytecode::new_raw(contract_data); - let mut evm: Evm<'_, StackInspector, BenchmarkDB> = Evm::builder() + let mut evm = Evm::>::builder() + .with_default_ext_ctx() .with_db(BenchmarkDB::new_bytecode(bytecode.clone())) .with_external_context(StackInspector::default()) .modify_tx_env(|tx| { - tx.clear(); + *tx = ::Transaction::default(); + tx.caller = address!("1000000000000000000000000000000000000000"); tx.transact_to = TxKind::Call(address!("0000000000000000000000000000000000000000")); tx.gas_limit = 21100; @@ -392,7 +402,8 @@ mod tests { #[test] fn test_inspector_reg() { let mut noop = NoOpInspector; - let _evm = Evm::builder() + let _evm: Evm<'_, EthereumWiring> = Evm::builder() + .with_default_db() .with_external_context(&mut noop) .append_handler_register(inspector_handle_register) .build(); diff --git a/crates/revm/src/inspector/noop.rs b/crates/revm/src/inspector/noop.rs index 9e9556e286..07a66c9c36 100644 --- a/crates/revm/src/inspector/noop.rs +++ b/crates/revm/src/inspector/noop.rs @@ -1,6 +1,7 @@ -use crate::{Database, Inspector}; +use crate::{EvmWiring, Inspector}; + /// Dummy [Inspector], helpful as standalone replacement. #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct NoOpInspector; -impl Inspector for NoOpInspector {} +impl Inspector for NoOpInspector {} diff --git a/crates/revm/src/journaled_state.rs b/crates/revm/src/journaled_state.rs index 2d84032987..b839355005 100644 --- a/crates/revm/src/journaled_state.rs +++ b/crates/revm/src/journaled_state.rs @@ -3,9 +3,9 @@ use revm_interpreter::Eip7702CodeLoad; use crate::{ interpreter::{AccountLoad, InstructionResult, SStoreResult, SelfDestructResult, StateLoad}, primitives::{ - db::Database, hash_map::Entry, Account, Address, Bytecode, EVMError, EvmState, - EvmStorageSlot, HashMap, HashSet, Log, SpecId, SpecId::*, TransientStorage, B256, - KECCAK_EMPTY, PRECOMPILE3, U256, + db::Database, hash_map::Entry, Account, Address, Bytecode, EvmState, EvmStorageSlot, + HashMap, HashSet, Log, SpecId, SpecId::*, TransientStorage, B256, KECCAK_EMPTY, + PRECOMPILE3, U256, }, }; use core::mem; @@ -203,7 +203,7 @@ impl JournaledState { to: &Address, balance: U256, db: &mut DB, - ) -> Result, EVMError> { + ) -> Result, DB::Error> { // load accounts self.load_account(*from, db)?; self.load_account(*to, db)?; @@ -486,7 +486,7 @@ impl JournaledState { address: Address, target: Address, db: &mut DB, - ) -> Result, EVMError> { + ) -> Result, DB::Error> { let spec = self.spec; let account_load = self.load_account(target, db)?; let is_cold = account_load.is_cold; @@ -553,13 +553,12 @@ impl JournaledState { address: Address, storage_keys: impl IntoIterator, db: &mut DB, - ) -> Result<&mut Account, EVMError> { + ) -> Result<&mut Account, DB::Error> { // load or get account. let account = match self.state.entry(address) { Entry::Occupied(entry) => entry.into_mut(), Entry::Vacant(vac) => vac.insert( - db.basic(address) - .map_err(EVMError::Database)? + db.basic(address)? .map(|i| i.into()) .unwrap_or(Account::new_not_existing()), ), @@ -567,9 +566,7 @@ impl JournaledState { // preload storages. for storage_key in storage_keys.into_iter() { if let Entry::Vacant(entry) = account.storage.entry(storage_key) { - let storage = db - .storage(address, storage_key) - .map_err(EVMError::Database)?; + let storage = db.storage(address, storage_key)?; entry.insert(EvmStorageSlot::new(storage)); } } @@ -582,7 +579,7 @@ impl JournaledState { &mut self, address: Address, db: &mut DB, - ) -> Result, EVMError> { + ) -> Result, DB::Error> { let load = match self.state.entry(address) { Entry::Occupied(entry) => { let account = entry.into_mut(); @@ -593,12 +590,11 @@ impl JournaledState { } } Entry::Vacant(vac) => { - let account = - if let Some(account) = db.basic(address).map_err(EVMError::Database)? { - account.into() - } else { - Account::new_not_existing() - }; + let account = if let Some(account) = db.basic(address)? { + account.into() + } else { + Account::new_not_existing() + }; // precompiles are warm loaded so we need to take that into account let is_cold = !self.warm_preloaded_addresses.contains(&address); @@ -626,7 +622,7 @@ impl JournaledState { &mut self, address: Address, db: &mut DB, - ) -> Result> { + ) -> Result { let spec = self.spec; let account = self.load_code(address, db)?; let is_empty = account.state_clear_aware_is_empty(spec); @@ -653,7 +649,7 @@ impl JournaledState { &mut self, address: Address, db: &mut DB, - ) -> Result, EVMError> { + ) -> Result, DB::Error> { let account_load = self.load_account(address, db)?; let acc = &mut account_load.data.info; if acc.code.is_none() { @@ -661,7 +657,7 @@ impl JournaledState { let empty = Bytecode::default(); acc.code = Some(empty); } else { - let code = db.code_by_hash(acc.code_hash).map_err(EVMError::Database)?; + let code = db.code_by_hash(acc.code_hash)?; acc.code = Some(code); } } @@ -679,7 +675,7 @@ impl JournaledState { address: Address, key: U256, db: &mut DB, - ) -> Result, EVMError> { + ) -> Result, DB::Error> { // assume acc is warm let account = self.state.get_mut(&address).unwrap(); // only if account is created in this tx we can assume that storage is empty. @@ -695,7 +691,7 @@ impl JournaledState { let value = if is_newly_created { U256::ZERO } else { - db.storage(address, key).map_err(EVMError::Database)? + db.storage(address, key)? }; vac.insert(EvmStorageSlot::new(value)); @@ -728,7 +724,7 @@ impl JournaledState { key: U256, new: U256, db: &mut DB, - ) -> Result, EVMError> { + ) -> Result, DB::Error> { // assume that acc exists and load the slot. let present = self.sload(address, key, db)?; let acc = self.state.get_mut(&address).unwrap(); diff --git a/crates/revm/src/lib.rs b/crates/revm/src/lib.rs index 5097388526..33f77cff9d 100644 --- a/crates/revm/src/lib.rs +++ b/crates/revm/src/lib.rs @@ -16,12 +16,11 @@ pub mod test_utils; pub mod db; mod evm; +mod evm_wiring; mod frame; pub mod handler; mod inspector; mod journaled_state; -#[cfg(feature = "optimism")] -pub mod optimism; // Export items. @@ -29,21 +28,18 @@ pub use builder::EvmBuilder; pub use context::{ Context, ContextPrecompile, ContextPrecompiles, ContextStatefulPrecompile, ContextStatefulPrecompileArc, ContextStatefulPrecompileBox, ContextStatefulPrecompileMut, - ContextWithHandlerCfg, EvmContext, InnerEvmContext, + ContextWithEvmWiring, EvmContext, InnerEvmContext, }; pub use db::{ CacheState, DBBox, State, StateBuilder, StateDBBox, TransitionAccount, TransitionState, }; pub use db::{Database, DatabaseCommit, DatabaseRef, InMemoryDB}; pub use evm::{Evm, CALL_STACK_LIMIT}; +pub use evm_wiring::EvmWiring; pub use frame::{CallFrame, CreateFrame, Frame, FrameData, FrameOrResult, FrameResult}; -pub use handler::Handler; +pub use handler::{register::EvmHandler, Handler}; pub use inspector::{inspector_handle_register, inspectors, GetInspector, Inspector}; pub use journaled_state::{JournalCheckpoint, JournalEntry, JournaledState}; -// export Optimism types, helpers, and constants -#[cfg(feature = "optimism")] -pub use optimism::{L1BlockInfo, BASE_FEE_RECIPIENT, L1_BLOCK_CONTRACT, L1_FEE_RECIPIENT}; - // Reexport libraries #[doc(inline)] diff --git a/crates/revm/src/optimism.rs b/crates/revm/src/optimism.rs deleted file mode 100644 index 05256ca290..0000000000 --- a/crates/revm/src/optimism.rs +++ /dev/null @@ -1,13 +0,0 @@ -//! Optimism-specific constants, types, and helpers. - -mod bn128; -mod fast_lz; -mod handler_register; -mod l1block; - -pub use handler_register::{ - deduct_caller, end, last_frame_return, load_accounts, load_precompiles, - optimism_handle_register, output, refund, reward_beneficiary, validate_env, - validate_tx_against_state, -}; -pub use l1block::{L1BlockInfo, BASE_FEE_RECIPIENT, L1_BLOCK_CONTRACT, L1_FEE_RECIPIENT}; diff --git a/examples/custom_opcodes.rs b/examples/custom_opcodes.rs new file mode 100644 index 0000000000..62b3abe4ac --- /dev/null +++ b/examples/custom_opcodes.rs @@ -0,0 +1,271 @@ +use revm::{ + interpreter::{ + gas, + opcode::{make_instruction_table, InstructionTable}, + Host, Interpreter, + }, + primitives::{BlockEnv, EvmWiring, HaltReason, Spec, SpecId, TxEnv}, +}; +use revm_interpreter::DummyHost; + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] +pub struct CustomOpcodeEvmWiring; + +impl EvmWiring for CustomOpcodeEvmWiring { + type Hardfork = CustomOpcodeSpecId; + type HaltReason = HaltReason; + type Block = BlockEnv; + type Transaction = TxEnv; +} + +/// Specification IDs for the optimism blockchain. +#[repr(u8)] +#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[allow(non_camel_case_types, clippy::upper_case_acronyms)] +pub enum CustomOpcodeSpecId { + FRONTIER = 0, + FRONTIER_THAWING = 1, + HOMESTEAD = 2, + DAO_FORK = 3, + TANGERINE = 4, + SPURIOUS_DRAGON = 5, + BYZANTIUM = 6, + CONSTANTINOPLE = 7, + PETERSBURG = 8, + ISTANBUL = 9, + MUIR_GLACIER = 10, + BERLIN = 11, + LONDON = 12, + ARROW_GLACIER = 13, + GRAY_GLACIER = 14, + MERGE = 15, + // Introduces the custom opcode in between the existing hardforks. + INTRODUCES_OPCODE = 16, + SHANGHAI = 17, + CANCUN = 18, + PRAGUE = 19, + #[default] + LATEST = u8::MAX, +} + +impl CustomOpcodeSpecId { + /// Returns `true` if the given specification ID is enabled in this spec. + #[inline] + pub const fn enabled(our: Self, other: Self) -> bool { + our as u8 >= other as u8 + } + + /// Returns `true` if the given specification ID is enabled in this spec. + #[inline] + pub const fn is_enabled_in(self, other: Self) -> bool { + Self::enabled(self, other) + } + + /// Converts the `CustomOpcodeSpecId` into an `SpecId`. + const fn into_eth_spec_id(self) -> SpecId { + match self { + Self::FRONTIER => SpecId::FRONTIER, + Self::FRONTIER_THAWING => SpecId::FRONTIER_THAWING, + Self::HOMESTEAD => SpecId::HOMESTEAD, + Self::DAO_FORK => SpecId::DAO_FORK, + Self::TANGERINE => SpecId::TANGERINE, + Self::SPURIOUS_DRAGON => SpecId::SPURIOUS_DRAGON, + Self::BYZANTIUM => SpecId::BYZANTIUM, + Self::CONSTANTINOPLE => SpecId::CONSTANTINOPLE, + Self::PETERSBURG => SpecId::PETERSBURG, + Self::ISTANBUL => SpecId::ISTANBUL, + Self::MUIR_GLACIER => SpecId::MUIR_GLACIER, + Self::BERLIN => SpecId::BERLIN, + Self::LONDON => SpecId::LONDON, + Self::ARROW_GLACIER => SpecId::ARROW_GLACIER, + Self::GRAY_GLACIER => SpecId::GRAY_GLACIER, + Self::MERGE | Self::INTRODUCES_OPCODE => SpecId::MERGE, + Self::SHANGHAI => SpecId::SHANGHAI, + Self::CANCUN => SpecId::CANCUN, + Self::PRAGUE => SpecId::PRAGUE, + Self::LATEST => SpecId::LATEST, + } + } +} + +impl From for SpecId { + fn from(spec_id: CustomOpcodeSpecId) -> Self { + spec_id.into_eth_spec_id() + } +} + +pub trait CustomOpcodeSpec: Spec + Sized + 'static { + /// The specification ID for an imaginary chain with custom opcodes. + const CUSTOM_OPCODE_SPEC_ID: CustomOpcodeSpecId; + + /// Returns whether the provided `CustomOpcodeSpec` is enabled by this spec. + #[inline] + fn optimism_enabled(spec_id: CustomOpcodeSpecId) -> bool { + CustomOpcodeSpecId::enabled(Self::CUSTOM_OPCODE_SPEC_ID, spec_id) + } +} + +macro_rules! spec { + ($spec_id:ident, $spec_name:ident) => { + #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, PartialOrd, Ord, Hash)] + pub struct $spec_name; + + impl CustomOpcodeSpec for $spec_name { + const CUSTOM_OPCODE_SPEC_ID: CustomOpcodeSpecId = CustomOpcodeSpecId::$spec_id; + } + + impl Spec for $spec_name { + const SPEC_ID: SpecId = $spec_name::CUSTOM_OPCODE_SPEC_ID.into_eth_spec_id(); + } + }; +} + +spec!(FRONTIER, FrontierSpec); +// FRONTIER_THAWING no EVM spec change +spec!(HOMESTEAD, HomesteadSpec); +// DAO_FORK no EVM spec change +spec!(TANGERINE, TangerineSpec); +spec!(SPURIOUS_DRAGON, SpuriousDragonSpec); +spec!(BYZANTIUM, ByzantiumSpec); +// CONSTANTINOPLE was overridden with PETERSBURG +spec!(PETERSBURG, PetersburgSpec); +spec!(ISTANBUL, IstanbulSpec); +// MUIR_GLACIER no EVM spec change +spec!(BERLIN, BerlinSpec); +spec!(LONDON, LondonSpec); +// ARROW_GLACIER no EVM spec change +// GRAY_GLACIER no EVM spec change +spec!(MERGE, MergeSpec); +spec!(SHANGHAI, ShanghaiSpec); +spec!(CANCUN, CancunSpec); +spec!(PRAGUE, PragueSpec); + +spec!(LATEST, LatestSpec); + +// Custom Hardforks +spec!(INTRODUCES_OPCODE, IntroducesOpcodeSpec); + +macro_rules! custom_opcode_spec_to_generic { + ($spec_id:expr, $e:expr) => {{ + // We are transitioning from var to generic spec. + match $spec_id { + CustomOpcodeSpecId::FRONTIER | CustomOpcodeSpecId::FRONTIER_THAWING => { + use FrontierSpec as SPEC; + $e + } + CustomOpcodeSpecId::HOMESTEAD | CustomOpcodeSpecId::DAO_FORK => { + use HomesteadSpec as SPEC; + $e + } + CustomOpcodeSpecId::TANGERINE => { + use TangerineSpec as SPEC; + $e + } + CustomOpcodeSpecId::SPURIOUS_DRAGON => { + use SpuriousDragonSpec as SPEC; + $e + } + CustomOpcodeSpecId::BYZANTIUM => { + use ByzantiumSpec as SPEC; + $e + } + CustomOpcodeSpecId::PETERSBURG | CustomOpcodeSpecId::CONSTANTINOPLE => { + use PetersburgSpec as SPEC; + $e + } + CustomOpcodeSpecId::ISTANBUL | CustomOpcodeSpecId::MUIR_GLACIER => { + use IstanbulSpec as SPEC; + $e + } + CustomOpcodeSpecId::BERLIN => { + use BerlinSpec as SPEC; + $e + } + CustomOpcodeSpecId::LONDON + | CustomOpcodeSpecId::ARROW_GLACIER + | CustomOpcodeSpecId::GRAY_GLACIER => { + use LondonSpec as SPEC; + $e + } + CustomOpcodeSpecId::MERGE => { + use MergeSpec as SPEC; + $e + } + CustomOpcodeSpecId::SHANGHAI => { + use ShanghaiSpec as SPEC; + $e + } + CustomOpcodeSpecId::CANCUN => { + use CancunSpec as SPEC; + $e + } + CustomOpcodeSpecId::LATEST => { + use LatestSpec as SPEC; + $e + } + CustomOpcodeSpecId::PRAGUE => { + use PragueSpec as SPEC; + $e + } + CustomOpcodeSpecId::INTRODUCES_OPCODE => { + use IntroducesOpcodeSpec as SPEC; + $e + } + } + }}; +} + +// impl EvmHandler<'_, CustomOpcodeEvmWiring, EXT, DB> { +// pub fn custom_opcode_with_spec(spec_id: CustomOpcodeSpecId) -> Self { +// let mut handler = Self::mainnet_with_spec(spec_id); + +// custom_opcode_spec_to_generic!(spec_id, { +// let table = make_custom_instruction_table::<_, SPEC>(); +// handler.set_instruction_table(InstructionTables::Plain(table)); +// }); + +// handler +// } +// } + +pub fn make_custom_instruction_table< + EvmWiringT: EvmWiring, + H: Host + ?Sized, + SPEC: CustomOpcodeSpec, +>() -> InstructionTable { + // custom opcode chain can reuse mainnet instructions + let mut table = make_instruction_table::(); + + table[0x0c] = custom_opcode_handler::; + + table +} + +fn custom_opcode_handler( + interpreter: &mut Interpreter, + _host: &mut H, +) { + // opcode has access to the chain-specific spec + if SPEC::optimism_enabled(CustomOpcodeSpecId::INTRODUCES_OPCODE) { + gas!(interpreter, gas::MID); + } else { + gas!(interpreter, gas::HIGH); + } + + // logic +} + +pub fn main() { + println!("Example is in code compilation"); + let spec_id = CustomOpcodeSpecId::INTRODUCES_OPCODE; + + let _instructions = custom_opcode_spec_to_generic!( + spec_id, + make_custom_instruction_table::< + CustomOpcodeEvmWiring, + DummyHost, + SPEC, + >() + ); +} diff --git a/examples/db_by_ref.rs b/examples/db_by_ref.rs index 9e3615400c..4801db5a1b 100644 --- a/examples/db_by_ref.rs +++ b/examples/db_by_ref.rs @@ -1,12 +1,13 @@ +use core::error::Error; +use core::fmt::Debug; use revm::{ db::{CacheDB, EmptyDB, WrapDatabaseRef}, handler::register::HandleRegister, inspector_handle_register, inspectors::{NoOpInspector, TracerEip3155}, - primitives::ResultAndState, + primitives::{EthereumWiring, HaltReason, ResultAndState}, DatabaseCommit, DatabaseRef, Evm, }; -use std::error::Error; trait DatabaseRefDebugError: DatabaseRef { type DBError: std::fmt::Debug + Error + Send + Sync + 'static; @@ -20,13 +21,13 @@ where type DBError = DBError; } -fn run_transaction( +fn run_transaction( db: DB, ext: EXT, - register_handles_fn: HandleRegister>, -) -> anyhow::Result<(ResultAndState, DB)> { - let mut evm = Evm::builder() - .with_ref_db(db) + register_handles_fn: HandleRegister, EXT>>, +) -> anyhow::Result<(ResultAndState, DB)> { + let mut evm = Evm::>::builder() + .with_db(WrapDatabaseRef(db)) .with_external_context(ext) .append_handler_register(register_handles_fn) .build(); @@ -35,10 +36,10 @@ fn run_transaction( Ok((result, evm.into_context().evm.inner.db.0)) } -fn run_transaction_and_commit_with_ext( +fn run_transaction_and_commit_with_ext( db: DB, ext: EXT, - register_handles_fn: HandleRegister>, + register_handles_fn: HandleRegister, EXT>>, ) -> anyhow::Result<()> { // To circumvent borrow checker issues, we need to move the database into the // transaction and return it after the transaction is done. @@ -54,8 +55,8 @@ fn run_transaction_and_commit(db: &mut CacheDB) -> anyhow::Result<()> { let ResultAndState { state: changes, .. } = { let rdb = &*db; - let mut evm = Evm::builder() - .with_ref_db(rdb) + let mut evm = Evm::>::builder() + .with_db(WrapDatabaseRef(rdb)) .with_external_context(NoOpInspector) .append_handler_register(inspector_handle_register) .build(); diff --git a/examples/fork_ref_transact.rs b/examples/fork_ref_transact.rs index 014e2b1941..99614267d8 100644 --- a/examples/fork_ref_transact.rs +++ b/examples/fork_ref_transact.rs @@ -1,6 +1,7 @@ use alloy_sol_types::sol; use alloy_sol_types::SolCall; use ethers_providers::{Http, Provider}; +use revm::primitives::EthereumWiring; use revm::{ db::{CacheDB, EmptyDB, EthersDB}, primitives::{address, ExecutionResult, Output, TxKind, U256}, @@ -63,7 +64,7 @@ async fn main() -> anyhow::Result<()> { .unwrap(); // initialise an empty (default) EVM - let mut evm = Evm::builder() + let mut evm = Evm::, ()>>::builder() .with_db(cache_db) .modify_tx_env(|tx| { // fill in missing bits of env struct diff --git a/examples/generate_block_traces.rs b/examples/generate_block_traces.rs index ef98fa2580..59cce05edf 100644 --- a/examples/generate_block_traces.rs +++ b/examples/generate_block_traces.rs @@ -6,7 +6,7 @@ use ethers_providers::{Http, Provider}; use indicatif::ProgressBar; use revm::db::{CacheDB, EthersDB, StateBuilder}; use revm::inspectors::TracerEip3155; -use revm::primitives::{AccessListItem, Address, TxKind, B256, U256}; +use revm::primitives::{AccessListItem, Address, EthereumWiring, TxKind, B256, U256}; use revm::{inspector_handle_register, Evm}; use std::fs::OpenOptions; use std::io::BufWriter; @@ -75,7 +75,7 @@ async fn main() -> anyhow::Result<()> { let state_db = EthersDB::new(client, Some(prev_id)).expect("panic"); let cache_db: CacheDB>> = CacheDB::new(state_db); let mut state = StateBuilder::new_with_database(cache_db).build(); - let mut evm = Evm::builder() + let mut evm = Evm::>::builder() .with_db(&mut state) .with_external_context(TracerEip3155::new(Box::new(std::io::stdout()))) .modify_block_env(|b| { @@ -124,7 +124,7 @@ async fn main() -> anyhow::Result<()> { ); etx.gas_priority_fee = Some(gas_priority_fee); etx.chain_id = Some(chain_id); - etx.nonce = Some(tx.nonce.as_u64()); + etx.nonce = tx.nonce.as_u64(); if let Some(access_list) = tx.access_list { etx.access_list = access_list .0