aztec-nr - noir_aztec::protocol::merkle_tree::test_utils

Struct SingleSubtreeMerkleTree

pub struct SingleSubtreeMerkleTree<let SubtreeWidth: u32, let SubtreeHeight: u32, let TreeHeight: u32>
{ /* private fields */ }

Implementations

impl<let SubtreeHeight: u32, let SubtreeWidth: u32, let TreeHeight: u32> SingleSubtreeMerkleTree<SubtreeWidth, SubtreeHeight, TreeHeight>

pub fn new(subtree_leaves: [Field; SubtreeWidth]) -> Self pub fn new_at_index( subtree_leaves: [Field; SubtreeWidth], first_leaf_index: Field, ) -> Self pub fn new_tree_roots_at_index<let InsertedValueTreeHeight: u32>( subtree_leaves: [Field; SubtreeWidth], first_leaf_index: Field, ) -> Self

The values to be inserted to the subtree are tree roots themselves. The zero hashes will take into account the extra layers (InsertedValueTreeHeight) of the inserted values.

pub fn get_sibling_path(self, leaf_index: Field) -> [Field; TreeHeight] pub fn update_leaf(&mut self, leaf_index: Field, value: Field) pub fn get_root(self) -> Field pub fn get_next_available_index(self) -> Field