Struct cw_merkle_tree::tree::SparseMerkleTree
source · [−]pub struct SparseMerkleTree<'a, L: Serialize + DeserializeOwned + Clone + Debug + PartialEq, H: Hasher<L>> {
pub hashes: Item<'a, (Vec<L>, Vec<L>)>,
pub leafs: Map<'a, u64, L>,
pub level: Item<'a, u8>,
pub root: Item<'a, L>,
/* private fields */
}Expand description
Normal sparse merkle tree with customizable tree level and default leaf.
Fields
hashes: Item<'a, (Vec<L>, Vec<L>)>leafs: Map<'a, u64, L>level: Item<'a, u8>root: Item<'a, L>Implementations
Trait Implementations
sourceimpl<'a, L: Serialize + DeserializeOwned + Clone + Debug + PartialEq, H: Hasher<L>> MerkleTree<L, H> for SparseMerkleTree<'a, L, H>
impl<'a, L: Serialize + DeserializeOwned + Clone + Debug + PartialEq, H: Hasher<L>> MerkleTree<L, H> for SparseMerkleTree<'a, L, H>
sourcefn init(
&self,
storage: &mut dyn Storage,
level: u8,
default_leaf: L,
hasher: &H
) -> Result<(), MerkleTreeError>
fn init(
&self,
storage: &mut dyn Storage,
level: u8,
default_leaf: L,
hasher: &H
) -> Result<(), MerkleTreeError>
Initize the tree.
sourcefn is_valid_root(
&self,
storage: &dyn Storage,
root: &L
) -> Result<bool, MerkleTreeError>
fn is_valid_root(
&self,
storage: &dyn Storage,
root: &L
) -> Result<bool, MerkleTreeError>
Check if the
root is valid for the tree.sourcefn insert(
&self,
storage: &mut dyn Storage,
leaf: L,
hasher: &H
) -> Result<(u64, L), MerkleTreeError>
fn insert(
&self,
storage: &mut dyn Storage,
leaf: L,
hasher: &H
) -> Result<(u64, L), MerkleTreeError>
Insert the
leaf into the next index slot of the tree.
Return the leaf’s index and the updated root. Read moresourcefn get_latest_root(&self, storage: &dyn Storage) -> Result<L, MerkleTreeError>
fn get_latest_root(&self, storage: &dyn Storage) -> Result<L, MerkleTreeError>
Get the latest root of the tree.
Auto Trait Implementations
impl<'a, L, H> RefUnwindSafe for SparseMerkleTree<'a, L, H>where
H: RefUnwindSafe,
L: RefUnwindSafe,
impl<'a, L, H> Send for SparseMerkleTree<'a, L, H>where
H: Send,
L: Send,
impl<'a, L, H> Sync for SparseMerkleTree<'a, L, H>where
H: Sync,
L: Sync,
impl<'a, L, H> Unpin for SparseMerkleTree<'a, L, H>where
H: Unpin,
L: Unpin,
impl<'a, L, H> UnwindSafe for SparseMerkleTree<'a, L, H>where
H: UnwindSafe,
L: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more