Trait cw_merkle_tree::MerkleTree
source · [−]pub trait MerkleTree<L: Serialize + DeserializeOwned + Clone + Debug + PartialEq, H: Hasher<L>> {
fn init(
&self,
storage: &mut dyn Storage,
level: u8,
default_leaf: L,
hasher: &H
) -> Result<(), MerkleTreeError>;
fn is_valid_root(
&self,
storage: &dyn Storage,
root: &L
) -> Result<bool, MerkleTreeError>;
fn insert(
&self,
storage: &mut dyn Storage,
leaf: L,
hasher: &H
) -> Result<(u64, L), MerkleTreeError>;
fn get_latest_root(
&self,
storage: &dyn Storage
) -> Result<L, MerkleTreeError>;
}Required Methods
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.
sourcefn 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.