From 9163912df688f6d59df3fac3deb61c152a3ba484 Mon Sep 17 00:00:00 2001 From: jjy Date: Sun, 10 Nov 2019 21:17:20 +0800 Subject: [PATCH 1/2] feat: expose gen_proof on MemMMR --- src/util.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/util.rs b/src/util.rs index 1c68af0..94ec617 100644 --- a/src/util.rs +++ b/src/util.rs @@ -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> MemMMR { mmr.commit()?; Ok(pos) } + + pub fn gen_proof(&self, pos: u64) -> Result> { + let mmr = MMR::>::new(self.mmr_size, &self.store); + mmr.gen_proof(pos) + } } From bcffb1d7d0469089ed676442061f3f728d37c526 Mon Sep 17 00:00:00 2001 From: jjy Date: Sun, 10 Nov 2019 21:23:22 +0800 Subject: [PATCH 2/2] feat: expose mmr_size and proof_items on MerkleProof --- src/mmr.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mmr.rs b/src/mmr.rs index 723cebe..cbbbc6c 100644 --- a/src/mmr.rs +++ b/src/mmr.rs @@ -162,6 +162,14 @@ impl> MerkleProof { } } + 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 { let peaks = get_peaks(self.mmr_size); let mut sum_elem = elem;