StoredMerkleTreeTrait
StoredMerkleTree trait defining operations for efficient Merkle tree with pre-computed storage.
Fully qualified path: alexandria_merkle_tree::merkle_tree::StoredMerkleTreeTrait
pub trait StoredMerkleTreeTrait<T>
Trait functions
new
Create a new stored merkle tree instance from leaves. Pre-computes and stores all levels for efficient proof generation.
Arguments
leaves- Array of leaf values to build the tree from
Returns
StoredMerkleTree<T>- A new stored merkle tree with pre-computed levels
Fully qualified path: alexandria_merkle_tree::merkle_tree::StoredMerkleTreeTrait::new
fn new(leaves: Array<felt252>) -> StoredMerkleTree<T>
get_root
Get the merkle root of the stored tree.
Arguments
self- The stored merkle tree instance
Returns
felt252- The merkle root hash
Fully qualified path: alexandria_merkle_tree::merkle_tree::StoredMerkleTreeTrait::get_root
fn get_root(ref self: StoredMerkleTree<T>) -> felt252
get_proof
Generate a merkle proof for a specific leaf at the given index. Efficient O(log n) operation using pre-stored tree levels.
Arguments
self- The stored merkle tree instanceindex- The index of the leaf to generate proof for
Returns
Span<felt252>- Array of sibling hashes forming the merkle proof
Fully qualified path: alexandria_merkle_tree::merkle_tree::StoredMerkleTreeTrait::get_proof
fn get_proof(ref self: StoredMerkleTree<T>, index: u32) -> Span<felt252>
verify
Verify that a leaf belongs to the merkle tree.
Arguments
self- The stored merkle tree instanceleaf- The leaf value to verifyproof- Array of sibling hashes for verification path
Returns
bool- True if the leaf is valid, false otherwise
Fully qualified path: alexandria_merkle_tree::merkle_tree::StoredMerkleTreeTrait::verify
fn verify(ref self: StoredMerkleTree<T>, leaf: felt252, proof: Span<felt252>) -> bool
get_leaf_count
Get the number of leaves in the tree.
Arguments
self- The stored merkle tree instance
Returns
u32- The number of leaves in the tree
Fully qualified path: alexandria_merkle_tree::merkle_tree::StoredMerkleTreeTrait::get_leaf_count
fn get_leaf_count(ref self: StoredMerkleTree<T>) -> u32