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_protocol::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.code_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
u32representing the number of a block. - Input
Note Update - Represents the possible states of an input note record in a
NoteUpdateTracker. - Network
Account Target - A
NoteAttachmentfor notes targeted at network accounts. - 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
Attachment - The optional attachment for a
Note. - Note
Attachment Scheme - The user-defined type of a
NoteAttachment. - Note
Details - Details of a note consisting of assets, script, inputs, and a serial number.
- Note
Header - Holds the strictly required, public information of a note.
- 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
Location - Contains information about the location of a note.
- Note
Metadata - The 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.
- NoteTag
NoteTags are 32-bits of data that serve as best-effort filters for notes.- 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. - Partial
Note - Partial information about a note.
Enums§
- Note
Attachment Kind - The type of
NoteAttachmentContent. - Note
Consumption Status - Describes if a note could be consumed under a specific conditions: target account state and block height.
- 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
File - A serialized representation of a note.
- Note
Screener Error - Error when screening notes to check relevance to a client.
- 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.
Traits§
- ToInput
Note Commitments - Specifies the data used by the transaction kernel to commit to a note.
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_
p2ide_ note - Generates a P2IDE note - Pay-to-ID note with optional reclaim after a certain block height and optional timelock.
- create_
swap_ note - Generates a SWAP note - swap of assets between two accounts - and returns the note as well as
NoteDetailsfor 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.