diff options
| author | Santo Cariotti <santo@dcariotti.me> | 2025-06-25 08:31:21 +0000 |
|---|---|---|
| committer | Santo Cariotti <santo@dcariotti.me> | 2025-06-25 08:31:21 +0000 |
| commit | c402255ea5ef6510a583b79e49f4246dc618c362 (patch) | |
| tree | 1ad4a10d8aaabce31877d4f750c596c24a3537b2 /README.md | |
| parent | 7bdb59e386b93c37cdc2c2b88fc2945ab0e64d57 (diff) | |
Proofer uses self hasher on `verify`
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 15 |
1 files changed, 9 insertions, 6 deletions
@@ -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<H> Proofer for FooProfer<H> +where + H: Hasher, +{ fn generate(&self, index: usize) -> Option<MerkleProof> { // ... } - fn verify<T>(&self, proof: &MerkleProof, data: T, root_hash: &str, hasher: &dyn Hasher) -> bool + fn verify<T>(&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 |
