From f69062ce95fa061e85550e37486326e660177d2b Mon Sep 17 00:00:00 2001 From: Asim Shaik Date: Thu, 6 Nov 2025 22:07:57 +0530 Subject: [PATCH] allow initializing MerkleTree with caller-provided precomputed zero hashes Signed-off-by: Asim Shaik --- src/tree.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/tree.rs b/src/tree.rs index 99cc585..eeee626 100644 --- a/src/tree.rs +++ b/src/tree.rs @@ -84,6 +84,20 @@ where } } + /// Initialize Merkle tree with caller-provided precomputed zero hashes + /// precomputed[i] must be the zero hash at level i (0 = leaf, DEPTH-1 = top) + pub fn with_precomputed_zeros(hasher: H, store: S, precomputed: [Node; DEPTH]) -> Self { + let zeros = Zeros { + front: precomputed, + last: hasher.hash(&precomputed[DEPTH - 1], &precomputed[DEPTH - 1]), + }; + Self { + hasher, + store, + zeros, + } + } + pub fn add_leaves(&mut self, leaves: &[Node]) -> Result<(), MerkleError> { // Early return if leaves.is_empty() {