From 1cd564f9d1159a018367386f3328d0b6a74536c3 Mon Sep 17 00:00:00 2001 From: rakita Date: Mon, 2 Feb 2026 14:53:18 +0100 Subject: [PATCH] feat(statetest-types): add slot_number support (EIP-7843) Add slot_number field to BlockHeader and Env structs to support EIP-7843 slot number in state tests. --- crates/statetest-types/src/blockchain.rs | 8 +++++++- crates/statetest-types/src/env.rs | 3 +++ crates/statetest-types/src/test.rs | 2 +- crates/statetest-types/src/test_unit.rs | 7 +++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/crates/statetest-types/src/blockchain.rs b/crates/statetest-types/src/blockchain.rs index a7c26e51f4..ec73547800 100644 --- a/crates/statetest-types/src/blockchain.rs +++ b/crates/statetest-types/src/blockchain.rs @@ -89,6 +89,8 @@ pub struct BlockHeader { pub requests_hash: Option, /// Target blobs per block (EIP-4844 related) pub target_blobs_per_block: Option, + /// Slot number (EIP-7843) + pub slot_number: Option, } /// Block structure containing header and transactions @@ -346,7 +348,11 @@ impl BlockHeader { None }, blob_excess_gas_and_price, - slot_num: 0, + slot_num: self + .slot_number + .unwrap_or_default() + .try_into() + .unwrap_or(u64::MAX), } } } diff --git a/crates/statetest-types/src/env.rs b/crates/statetest-types/src/env.rs index afda9af13d..9c62e39853 100644 --- a/crates/statetest-types/src/env.rs +++ b/crates/statetest-types/src/env.rs @@ -33,4 +33,7 @@ pub struct Env { /// Current block excess blob gas (EIP-4844) pub current_excess_blob_gas: Option, + + /// Current slot number (EIP-7843) + pub slot_number: Option, } diff --git a/crates/statetest-types/src/test.rs b/crates/statetest-types/src/test.rs index 172010026e..5a8950ada7 100644 --- a/crates/statetest-types/src/test.rs +++ b/crates/statetest-types/src/test.rs @@ -8,7 +8,7 @@ use crate::{ /// State test indexed state result deserialization. #[derive(Debug, PartialEq, Eq, Deserialize)] -#[serde(rename_all = "camelCase", deny_unknown_fields)] +#[serde(rename_all = "camelCase")] pub struct Test { /// Expected exception for this test case, if any. /// diff --git a/crates/statetest-types/src/test_unit.rs b/crates/statetest-types/src/test_unit.rs index 282aadec8b..f54f1bd67f 100644 --- a/crates/statetest-types/src/test_unit.rs +++ b/crates/statetest-types/src/test_unit.rs @@ -107,6 +107,12 @@ impl TestUnit { .unwrap_or(u64::MAX), difficulty: self.env.current_difficulty, prevrandao: self.env.current_random, + slot_num: self + .env + .slot_number + .unwrap_or_default() + .try_into() + .unwrap_or(u64::MAX), ..BlockEnv::default() }; @@ -154,6 +160,7 @@ mod tests { current_beacon_root: None, current_withdrawals_root: None, current_excess_blob_gas: Some(U256::from(excess_blob_gas)), + slot_number: Some(U256::from(1u64)), }, pre: AddressMap::default(), post: BTreeMap::default(),