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
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
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.