diff --git a/src/mmr.rs b/src/mmr.rs index 75eff9b..d1446ee 100644 --- a/src/mmr.rs +++ b/src/mmr.rs @@ -171,7 +171,7 @@ impl> MerkleProof { &self.proof } - pub fn verify(&self, root: T, mut pos: u64, elem: T) -> Result { + pub fn calculate_root(&self, mut pos: u64, elem: T) -> Result { let peaks = get_peaks(self.mmr_size); let mut sum_elem = elem; let mut height = 0; @@ -211,6 +211,11 @@ impl> MerkleProof { M::merge(&proof, &sum_elem) }; } - Ok(root == sum_elem) + Ok(sum_elem) + } + + pub fn verify(&self, root: T, pos: u64, elem: T) -> Result { + self.calculate_root(pos, elem) + .map(|calculated_root| calculated_root == root) } }