From daa8f92c8729924ea9705dbbc1c0e4e7c25b578c Mon Sep 17 00:00:00 2001 From: Junha Park <0xjunha@gmail.com> Date: Wed, 18 Feb 2026 21:17:05 +0900 Subject: [PATCH 1/3] Revert #371 --- block/src/types/extrinsics/tickets.rs | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/block/src/types/extrinsics/tickets.rs b/block/src/types/extrinsics/tickets.rs index bf3f277f..c3327e52 100644 --- a/block/src/types/extrinsics/tickets.rs +++ b/block/src/types/extrinsics/tickets.rs @@ -30,7 +30,7 @@ impl Display for TicketsXt { } } -#[derive(Debug, Clone, PartialEq, Eq)] +#[derive(Debug, Clone, PartialEq, Eq, JamEncode, JamDecode)] pub struct TicketsXtEntry { /// `e`: The ticket entry index, either 0 or 1. pub entry_index: u8, @@ -38,30 +38,6 @@ pub struct TicketsXtEntry { pub ticket_proof: BandersnatchRingVrfSig, } -impl JamEncode for TicketsXtEntry { - fn size_hint(&self) -> usize { - self.entry_index.size_hint() + self.ticket_proof.size_hint() - } - - fn encode_to(&self, dest: &mut T) -> Result<(), JamCodecError> { - self.entry_index.encode_to_fixed(dest, 1)?; - self.ticket_proof.encode_to(dest)?; - Ok(()) - } -} - -impl JamDecode for TicketsXtEntry { - fn decode(input: &mut I) -> Result - where - Self: Sized, - { - Ok(Self { - entry_index: u8::decode_fixed(input, 1)?, - ticket_proof: BandersnatchRingVrfSig::decode(input)?, - }) - } -} - impl Display for TicketsXtEntry { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self.ticket_proof.output_hash() { From fe805dc8dfd8f6c7d923ef97f9144730c2d0779c Mon Sep 17 00:00:00 2001 From: Junha Park <0xjunha@gmail.com> Date: Wed, 18 Feb 2026 21:35:09 +0900 Subject: [PATCH 2/3] Ignore retired traces in build.rs --- integration/build.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/integration/build.rs b/integration/build.rs index 57b9c63f..96f2d5fd 100644 --- a/integration/build.rs +++ b/integration/build.rs @@ -1,5 +1,17 @@ use std::{env, fs, fs::ReadDir, path::PathBuf}; +const RETIRED_TRACES: &[&str] = &[ + // TODO: Remove after tickets extrinsic encoding get fixed in test vectors + "1766243315_2277", + "1766244122_5414", + "1766244251_1816", + "1767872928_1994", +]; + +fn is_retired(trace_name: &str) -> bool { + RETIRED_TRACES.contains(&trace_name) +} + /// Build script to generate test cases from JSON test vectors fn main() { // PVM test cases @@ -105,11 +117,13 @@ fn generate_fuzzer_block_import_tests() { let mut test_case_contents = String::from("use fr_fuzz::fuzzer::run_fuzz_trace_dir;"); - let mut write_fuzzer_case = |test_name: &str, trace_path: &PathBuf| { + let mut write_fuzzer_case = |test_name: &str, trace_path: &PathBuf, ignored: bool| { let trace_path_str = trace_path.to_str().unwrap(); + let ignored_attr = if ignored { "#[ignore]" } else { "" }; test_case_contents.push_str(&format!( "\ #[tokio::test]\ + {ignored_attr}\ async fn {test_name}() -> Result<(), Box> {{ run_fuzz_trace_dir(\"{trace_path_str}\").await?; Ok(()) @@ -130,7 +144,7 @@ fn generate_fuzzer_block_import_tests() { None => continue, }; let test_name = format!("block_import_conformance_0_7_2_{}", trace_name); - write_fuzzer_case(&test_name, &trace_path); + write_fuzzer_case(&test_name, &trace_path, is_retired(trace_name)); } let fuzzy_block_groups = ["fuzzy", "fuzzy_light"]; @@ -142,7 +156,7 @@ fn generate_fuzzer_block_import_tests() { if trace_path.is_dir() { let test_name = format!("block_import_{group}_all"); - write_fuzzer_case(&test_name, &trace_path); + write_fuzzer_case(&test_name, &trace_path, false); } } From ccf628388b0ac6c09ea464e5496c4fa86959bb5a Mon Sep 17 00:00:00 2001 From: Junha Park <0xjunha@gmail.com> Date: Wed, 18 Feb 2026 21:35:31 +0900 Subject: [PATCH 3/3] Bump version to v0.1.37 --- Cargo.lock | 58 +++++++++++++++++++++++++++--------------------------- Cargo.toml | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2b157638..11faeb92 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -736,7 +736,7 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "fastroll" -version = "0.1.36" +version = "0.1.37" dependencies = [ "clap", "fr-common", @@ -766,7 +766,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fr-asn-types" -version = "0.1.36" +version = "0.1.37" dependencies = [ "bitvec", "fr-block", @@ -780,7 +780,7 @@ dependencies = [ [[package]] name = "fr-block" -version = "0.1.36" +version = "0.1.37" dependencies = [ "bitvec", "fr-codec", @@ -795,7 +795,7 @@ dependencies = [ [[package]] name = "fr-clock" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-common", "time", @@ -803,7 +803,7 @@ dependencies = [ [[package]] name = "fr-codec" -version = "0.1.36" +version = "0.1.37" dependencies = [ "bitvec", "fr-codec-derive", @@ -813,7 +813,7 @@ dependencies = [ [[package]] name = "fr-codec-derive" -version = "0.1.36" +version = "0.1.37" dependencies = [ "quote", "syn", @@ -821,7 +821,7 @@ dependencies = [ [[package]] name = "fr-common" -version = "0.1.36" +version = "0.1.37" dependencies = [ "cfg-if", "fr-codec", @@ -838,14 +838,14 @@ dependencies = [ [[package]] name = "fr-config" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-db", ] [[package]] name = "fr-crypto" -version = "0.1.36" +version = "0.1.37" dependencies = [ "ark-vrf", "base32", @@ -865,7 +865,7 @@ dependencies = [ [[package]] name = "fr-db" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-codec", "fr-common", @@ -877,7 +877,7 @@ dependencies = [ [[package]] name = "fr-erasure-coding" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-common", "rayon", @@ -888,7 +888,7 @@ dependencies = [ [[package]] name = "fr-extrinsics" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-block", "fr-codec", @@ -904,7 +904,7 @@ dependencies = [ [[package]] name = "fr-fuzz" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-block", "fr-codec", @@ -924,7 +924,7 @@ dependencies = [ [[package]] name = "fr-integration" -version = "0.1.36" +version = "0.1.37" dependencies = [ "async-trait", "fr-asn-types", @@ -953,14 +953,14 @@ dependencies = [ [[package]] name = "fr-limited-vec" -version = "0.1.36" +version = "0.1.37" dependencies = [ "thiserror 2.0.17", ] [[package]] name = "fr-merkle" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-codec", "fr-common", @@ -970,7 +970,7 @@ dependencies = [ [[package]] name = "fr-network" -version = "0.1.36" +version = "0.1.37" dependencies = [ "async-trait", "dashmap 6.1.0", @@ -989,7 +989,7 @@ dependencies = [ [[package]] name = "fr-node" -version = "0.1.36" +version = "0.1.37" dependencies = [ "clap", "fr-block", @@ -1016,7 +1016,7 @@ dependencies = [ [[package]] name = "fr-node-bench" -version = "0.1.36" +version = "0.1.37" dependencies = [ "criterion", "fr-clock", @@ -1028,7 +1028,7 @@ dependencies = [ [[package]] name = "fr-pvm-core" -version = "0.1.36" +version = "0.1.37" dependencies = [ "bitvec", "fr-codec", @@ -1040,7 +1040,7 @@ dependencies = [ [[package]] name = "fr-pvm-host" -version = "0.1.36" +version = "0.1.37" dependencies = [ "async-trait", "fr-codec", @@ -1057,7 +1057,7 @@ dependencies = [ [[package]] name = "fr-pvm-interface" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-codec", "fr-common", @@ -1073,7 +1073,7 @@ dependencies = [ [[package]] name = "fr-pvm-invocation" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-codec", "fr-common", @@ -1091,7 +1091,7 @@ dependencies = [ [[package]] name = "fr-pvm-types" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-codec", "fr-common", @@ -1100,7 +1100,7 @@ dependencies = [ [[package]] name = "fr-state" -version = "0.1.36" +version = "0.1.37" dependencies = [ "async-trait", "bitvec", @@ -1127,7 +1127,7 @@ dependencies = [ [[package]] name = "fr-state-merkle-v2" -version = "0.1.36" +version = "0.1.37" dependencies = [ "bitvec", "fr-codec", @@ -1143,7 +1143,7 @@ dependencies = [ [[package]] name = "fr-storage" -version = "0.1.36" +version = "0.1.37" dependencies = [ "async-trait", "fr-block", @@ -1156,7 +1156,7 @@ dependencies = [ [[package]] name = "fr-test-utils" -version = "0.1.36" +version = "0.1.37" dependencies = [ "async-trait", "fr-asn-types", @@ -1180,7 +1180,7 @@ dependencies = [ [[package]] name = "fr-transition" -version = "0.1.36" +version = "0.1.37" dependencies = [ "fr-block", "fr-codec", diff --git a/Cargo.toml b/Cargo.toml index cc62ca73..0edc217e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -34,7 +34,7 @@ members = [ ] [workspace.package] -version = "0.1.36" +version = "0.1.37" edition = "2021" license = "Apache-2.0" authors = ["Junha Park <0xjunha@gmail.com>"]