Expand description
Contains the Client APIs related to notes. Notes can contain assets and scripts that are executed as part of transactions.
This module enables the tracking, retrieval, and processing of notes. It offers methods to query input and output notes from the store, check their consumability, compile note scripts, and retrieve notes based on partial ID matching.
§Overview
The module exposes APIs to:
- Retrieve input notes and output notes.
- Determine the consumability of notes using the
NoteScreener
. - Compile note scripts from source code with
compile_note_script
. - Retrieve an input note by a prefix of its ID using the helper function
get_input_note_with_id_prefix
.
§Example
use miden_client::{
auth::TransactionAuthenticator,
Client,
crypto::FeltRng,
note::{NoteScreener, get_input_note_with_id_prefix},
store::NoteFilter,
};
use miden_objects::account::AccountId;
// Retrieve all committed input notes
let input_notes = client.get_input_notes(NoteFilter::Committed).await?;
println!("Found {} committed input notes.", input_notes.len());
// Check consumability for a specific note
if let Some(note) = input_notes.first() {
let consumability = client.get_note_consumability(note.clone()).await?;
println!("Note consumability: {:?}", consumability);
}
// Retrieve an input note by a partial ID match
let note_prefix = "0x70b7ec";
match get_input_note_with_id_prefix(client, note_prefix).await {
Ok(note) => println!("Found note with matching prefix: {}", note.id().to_hex()),
Err(err) => println!("Error retrieving note: {err:?}"),
}
// Compile the note script
let script_src = "begin push.9 push.12 add end";
let note_script = client.script_builder().compile_note_script(script_src)?;
println!("Compiled note script successfully.");
For more details on the API and error handling, see the documentation for the specific functions and types in this module.
Structs§
- Block
Number - A convenience wrapper around a
u32
representing the number of a block. - Input
Note Update - Represents the possible states of an input note record in a
NoteUpdateTracker
. - Note
- A note with all the data required for it to be consumed by executing it against the transaction kernel.
- Note
Assets - An asset container for a note.
- Note
Details - Details of a note consisting of assets, script, inputs, and a serial number.
- NoteId
- Returns a unique identifier of a note, which is simultaneously a commitment to the note.
- Note
Inclusion Proof - Contains the data required to prove inclusion of a note in the canonical chain.
- Note
Inputs - A container for note inputs.
- Note
Metadata - Metadata associated with a note.
- Note
Recipient - Value that describes under which condition a note can be consumed.
- Note
Screener - Provides functionality for testing whether a note is relevant to the client or not.
- Note
Script - An executable program of a note.
- Note
Update Tracker - Contains note changes to apply to the store.
- Nullifier
- A note’s nullifier.
- Output
Note Update - Represents the possible states of an output note record in a
NoteUpdateTracker
.
Enums§
- Note
Error - Note
Execution Hint - Specifies the conditions under which a note is ready to be consumed. These conditions are meant to be encoded in the note script as well.
- Note
Execution Mode - super::Note’s execution mode hints.
- Note
File - A serialized representation of a note.
- Note
Relevance - Describes the relevance of a note based on the screening.
- Note
Screener Error - Error when screening notes to check relevance to a client.
- NoteTag
- NoteTag`s are best effort filters for notes registered with the network.
- Note
Type - Note
Update Type - Represents the possible types of updates that can be applied to a note in a
NoteUpdateTracker
. - Well
Known Note - The enum holding the types of basic well-known notes provided by the
miden-lib
.
Functions§
- build_
p2id_ recipient - Creates a NoteRecipient for the P2ID note.
- build_
swap_ tag - Returns a note tag for a swap note with the specified parameters.
- create_
p2id_ note - Generates a P2ID note - Pay-to-ID note.
- create_
swap_ note - Generates a SWAP note - swap of assets between two accounts - and returns the note as well as NoteDetails for the payback note.
- get_
input_ note_ with_ id_ prefix - Returns the client input note whose ID starts with
note_id_prefix
.
Type Aliases§
- Note
Consumability - Represents the consumability of a note by a specific account.