Struct miden_objects::block::BlockNoteTree
source · pub struct BlockNoteTree(/* private fields */);Expand description
Wrapper over SimpleSmt<BLOCK_OUTPUT_NOTES_TREE_DEPTH> for notes tree.
Each note is stored as two adjacent leaves: odd leaf for id, even leaf for metadata hash. Id leaf index is calculated as [(batch_idx * MAX_NOTES_PER_BATCH + note_idx_in_batch) * 2]. Metadata hash leaf is stored the next after id leaf: [id_index + 1].
Implementations§
source§impl BlockNoteTree
impl BlockNoteTree
sourcepub fn with_entries(
entries: impl IntoIterator<Item = (usize, usize, (RpoDigest, NoteMetadata))>
) -> Result<Self, MerkleError>
pub fn with_entries( entries: impl IntoIterator<Item = (usize, usize, (RpoDigest, NoteMetadata))> ) -> Result<Self, MerkleError>
Returns a new BlockNoteTree instantiated with entries set as specified by the provided entries.
Entry format: (batch_index, note_index, (note_id, note_metadata)).
All leaves omitted from the entries list are set to [ZERO; 4].
§Errors
Returns an error if:
- The number of entries exceeds the maximum notes tree capacity, that is 2^21.
- The provided entries contain multiple values for the same key.
sourcepub fn get_note_path(
&self,
batch_idx: usize,
note_idx_in_batch: usize
) -> Result<MerklePath, MerkleError>
pub fn get_note_path( &self, batch_idx: usize, note_idx_in_batch: usize ) -> Result<MerklePath, MerkleError>
Returns merkle path for the note with specified batch/note indexes.
The returned path is to the node which is the parent of both note and note metadata node.
sourcepub fn note_index(batch_idx: usize, note_idx_in_batch: usize) -> u64
pub fn note_index(batch_idx: usize, note_idx_in_batch: usize) -> u64
Returns an index to the node which the parent of both the note and note metadata.
Trait Implementations§
source§impl Clone for BlockNoteTree
impl Clone for BlockNoteTree
source§fn clone(&self) -> BlockNoteTree
fn clone(&self) -> BlockNoteTree
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for BlockNoteTree
impl Debug for BlockNoteTree
source§impl Default for BlockNoteTree
impl Default for BlockNoteTree
source§impl Deserializable for BlockNoteTree
impl Deserializable for BlockNoteTree
source§fn read_from<R: ByteReader>(
source: &mut R
) -> Result<Self, DeserializationError>
fn read_from<R: ByteReader>( source: &mut R ) -> Result<Self, DeserializationError>
source, attempts to deserialize these bytes
into Self, and returns the result. Read moresource§fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>
fn read_from_bytes(bytes: &[u8]) -> Result<Self, DeserializationError>
source§impl PartialEq for BlockNoteTree
impl PartialEq for BlockNoteTree
source§fn eq(&self, other: &BlockNoteTree) -> bool
fn eq(&self, other: &BlockNoteTree) -> bool
self and other values to be equal, and is used
by ==.source§impl Serializable for BlockNoteTree
impl Serializable for BlockNoteTree
source§fn write_into<W: ByteWriter>(&self, target: &mut W)
fn write_into<W: ByteWriter>(&self, target: &mut W)
self into bytes and writes these bytes into the target.