From c402255ea5ef6510a583b79e49f4246dc618c362 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Wed, 25 Jun 2025 10:31:21 +0200 Subject: Proofer uses self hasher on `verify` --- README.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 4f1e734..9ed364a 100644 --- a/README.md +++ b/README.md @@ -54,11 +54,11 @@ fn main() { let hasher = Blake3Hasher::new(); let tree = MerkleTree::new(hasher.clone(), file_contents.clone()); - let proofer = DefaultProofer::new(&hasher, tree.leaves()); + let proofer = DefaultProofer::new(hasher, tree.leaves()); let proof = proofer.generate(0).expect("Couldn't generate proof"); assert!(tree.root().hash() == root_hash); - assert!(proofer.verify(&proof, std::fs::read(&filenames[0]).unwrap(), tree.root().hash(), &hasher)); + assert!(proofer.verify(&proof, std::fs::read(&filenames[0]).unwrap(), tree.root().hash())); } ``` @@ -86,12 +86,15 @@ use mt_rs::proof::Proofer; pub struct FooProofer; -impl Proofer for FooProofer { +impl Proofer for FooProfer +where + H: Hasher, +{ fn generate(&self, index: usize) -> Option { // ... } - fn verify(&self, proof: &MerkleProof, data: T, root_hash: &str, hasher: &dyn Hasher) -> bool + fn verify(&self, proof: &MerkleProof, data: T, root_hash: &str) -> bool where T: AsRef<[u8]>, { @@ -110,10 +113,10 @@ let tree = MerkleTree::new(hasher.clone(), data); println!("{}", tree.root().hash()); -let proofer = FooProofer::new(&hasher, tree.leaves().clone()); +let proofer = FooProofer::new(hasher, tree.leaves().clone()); let proof = proofer.generate(0).unwrap(); -assert!(proofer.verify(&proof, data[0], tree.root().hash(), &hasher)); +assert!(proofer.verify(&proof, data[0], tree.root().hash())); ``` ## Configuration -- cgit v1.2.3-71-g8e6c