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’s 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 = (BlockNoteIndex, RpoDigest, NoteMetadata)>
) -> Result<Self, MerkleError>
pub fn with_entries( entries: impl IntoIterator<Item = (BlockNoteIndex, RpoDigest, NoteMetadata)> ) -> Result<Self, MerkleError>
Returns a new BlockNoteTree instantiated with entries set as specified by the provided entries.
Entry format: (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,
index: BlockNoteIndex
) -> Result<MerklePath, MerkleError>
pub fn get_note_path( &self, index: BlockNoteIndex ) -> 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.
Trait Implementations§
source§impl Clone for BlockNoteTree
impl Clone for BlockNoteTree
source§fn clone(&self) -> BlockNoteTree
fn clone(&self) -> BlockNoteTree
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
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>
Reads a sequence of bytes from the provided
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
This method tests for
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)
Serializes
self into bytes and writes these bytes into the target.source§fn get_size_hint(&self) -> usize
fn get_size_hint(&self) -> usize
Returns an estimate of how many bytes are needed to represent self. Read more
impl Eq for BlockNoteTree
impl StructuralPartialEq for BlockNoteTree
Auto Trait Implementations§
impl Freeze for BlockNoteTree
impl RefUnwindSafe for BlockNoteTree
impl Send for BlockNoteTree
impl Sync for BlockNoteTree
impl Unpin for BlockNoteTree
impl UnwindSafe for BlockNoteTree
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more