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::{
Client,
note::{get_input_note_with_id_prefix, NoteScreener},
store::NoteFilter,
crypto::FeltRng,
};
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.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.
Modules§
- script_
roots - Well-known note script roots. This file was generated by build.rs.
- scripts
- Contains functions to simplify standard note scripts creation.
Structs§
- Block
Number - A convenience wrapper around a
u32representing the number of a block. - 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.
- 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.
- NoteTag
- NoteTag`s are best effort filters for notes registered with the network.
- Note
Updates - Contains note changes to apply to the store.
- Nullifier
- A note’s nullifier.
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.
- Note
Type
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_
p2idr_ note - Generates a P2IDR note - pay to id with recall after a certain block height.
- 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.