diff --git a/Cargo.lock b/Cargo.lock index 329c3bdce..81afcebc7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1736,6 +1736,7 @@ dependencies = [ "reth-rlp", "reth-stages", "serde", + "serde_bytes", "serde_json", "thiserror", "tokio", @@ -6379,6 +6380,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde_bytes" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.164" diff --git a/testing/ef-tests/Cargo.toml b/testing/ef-tests/Cargo.toml index 109fefd45..c394b9a8d 100644 --- a/testing/ef-tests/Cargo.toml +++ b/testing/ef-tests/Cargo.toml @@ -24,3 +24,4 @@ walkdir = "2.3.3" serde = "1.0.163" serde_json = { workspace = true } thiserror = { workspace = true } +serde_bytes = "0.11.9" \ No newline at end of file diff --git a/testing/ef-tests/src/models.rs b/testing/ef-tests/src/models.rs index 31a9612f0..abc9bf425 100644 --- a/testing/ef-tests/src/models.rs +++ b/testing/ef-tests/src/models.rs @@ -37,6 +37,20 @@ pub struct BlockchainTest { #[serde(default)] /// Engine spec. pub self_engine: SealEngine, + #[serde(rename = "_info")] + #[allow(unused)] + info: BlockchainTestInfo, +} + +#[derive(Debug, PartialEq, Eq, Deserialize)] +struct BlockchainTestInfo { + #[serde(rename = "filling-rpc-server")] + #[allow(unused)] + // One test has an invalid string in this field, which breaks our CI: + // https://github.com/ethereum/tests/blob/6c252923bdd1bd5a70f680df1214f866f76839db/GeneralStateTests/stTransactionTest/ValueOverflow.json#L5 + // By using `serde_bytes::ByteBuf`, we ignore the validation of this field as a string. + // TODO(alexey): remove when `ethereum/tests` is fixed + filling_rpc_server: serde_bytes::ByteBuf, } /// A block header in an Ethereum blockchain test.