Merge pull request #2 from jjyr/expose-gen-proof-on-memmmr

feat: expose more public functions
This commit is contained in:
Jiang Jinyang
2019-11-10 23:48:31 +08:00
committed by GitHub
2 changed files with 14 additions and 1 deletions
+8
View File
@@ -162,6 +162,14 @@ impl<T: PartialEq + Debug, M: Merge<Item = T>> MerkleProof<T, M> {
}
}
pub fn mmr_size(&self) -> u64 {
self.mmr_size
}
pub fn proof_items(&self) -> &[T] {
&self.proof
}
pub fn verify(&self, root: T, mut pos: u64, elem: T) -> Result<bool> {
let peaks = get_peaks(self.mmr_size);
let mut sum_elem = elem;
+6 -1
View File
@@ -1,4 +1,4 @@
use crate::{MMRStore, Merge, Result, MMR};
use crate::{MMRStore, Merge, MerkleProof, Result, MMR};
use std::cell::RefCell;
use std::collections::HashMap;
use std::fmt::Debug;
@@ -70,4 +70,9 @@ impl<T: Clone + Debug + PartialEq, M: Merge<Item = T>> MemMMR<T, M> {
mmr.commit()?;
Ok(pos)
}
pub fn gen_proof(&self, pos: u64) -> Result<MerkleProof<T, M>> {
let mmr = MMR::<T, M, &MemStore<T>>::new(self.mmr_size, &self.store);
mmr.gen_proof(pos)
}
}