diff --git a/Cargo.lock b/Cargo.lock index a0163285..679e9004 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3404,8 +3404,7 @@ dependencies = [ [[package]] name = "tasm-lib" version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06a5540444a504eb4c1484a612033440be89470dc6ea6abcd41d4ec21b9fc71d" +source = "git+https://github.com/TritonVM/tasm-lib.git?rev=04309be3#04309be30874577eb56c7f54070f8710cac77786" dependencies = [ "anyhow", "arbitrary", @@ -3426,8 +3425,7 @@ dependencies = [ [[package]] name = "tasm-object-derive" version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a681206ecb819215a9059d1993775ff14749aa5d2538037c86569b8a10ae40" +source = "git+https://github.com/TritonVM/tasm-lib.git?rev=04309be3#04309be30874577eb56c7f54070f8710cac77786" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index c5757193..6a6520ae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -229,3 +229,7 @@ harness = false name = "consensus" harness = false required-features = ["arbitrary-impls"] + +[patch.crates-io] +# 04309be3 is tip of “better_snippet_export_pr” on 2025-01-17 +tasm-lib = { git = "https://github.com/TritonVM/tasm-lib.git", rev = "04309be3" } diff --git a/src/models/blockchain.rs b/src/models/blockchain.rs index e00380c8..f3550de6 100644 --- a/src/models/blockchain.rs +++ b/src/models/blockchain.rs @@ -15,10 +15,30 @@ mod tests { macro_rules! name_and_lib { [$($t:expr),* $(,)?] => {[$({ let (library, _) = $t.library_and_code(); - (stringify!($t), library) + let snippet_names = library + .get_all_snippet_names() + .into_iter() + .map(annotate_with_sign_off_status) + .collect_vec(); + (stringify!($t), snippet_names) }),*]}; } + /// Annotate a snippet name with a somewhat dramatic visualization of the + /// sign-off status. + fn annotate_with_sign_off_status(name: String) -> String { + let Some(snippet) = tasm_lib::exported_snippets::name_to_snippet(&name) else { + return format!("⚠ {name}"); + }; + + let sign_offs = snippet.sign_offs(); + if sign_offs.is_empty() { + return format!("🅾 {name}"); + } + + format!("{} {name}", sign_offs.len().to_string()) + } + let all_consensus_critical_imports = name_and_lib![ block::validity::block_program::BlockProgram, transaction::validity::collect_lock_scripts::CollectLockScripts, @@ -38,7 +58,7 @@ mod tests { // block_validity::PrincipalBlockValidationLogic, ] .into_iter() - .flat_map(|(name, lib)| [vec![format!("\n{name}")], lib.get_all_snippet_names()].concat()) + .flat_map(|(name, snippet_names)| [vec![format!("\n{name}")], snippet_names].concat()) .unique() .join("\n");