#[non_exhaustive]pub enum SendNotesTransactionScript {
Wallet(SendWalletNotesTransactionScript),
Fungible(SendFungibleFaucetNotesTransactionScript),
NonFungible(SendNonFungibleFaucetNotesTransactionScript),
}Expand description
A send_notes TransactionScript for an account, abstracting over the concrete script that
the account’s code interface calls for.
Each variant wraps the dedicated type for one canonical script. Use Self::new to let the
account’s interface decide, or construct a concrete type directly when the kind is known.
The script is picked from the interfaces the account exposes, cross-checked against the
composition of the assets being sent: a faucet script is built only for notes its faucet can
mint, and any other notes are sent with the BasicWallet script.
§Example
let script = SendNotesTransactionScript::new(&interface, ¬es)?;
let tx_args = TransactionArgs::new(AdviceMap::default())
.with_tx_script_and_args(script.tx_script().clone(), script.tx_script_args());Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Wallet(SendWalletNotesTransactionScript)
Sends notes holding assets the account already owns.
Fungible(SendFungibleFaucetNotesTransactionScript)
Sends notes holding assets the fungible faucet mints as part of note creation.
NonFungible(SendNonFungibleFaucetNotesTransactionScript)
Sends notes holding assets the non-fungible faucet mints as part of note creation.
Implementations§
Source§impl SendNotesTransactionScript
impl SendNotesTransactionScript
Sourcepub const PAYLOAD_HEADER_NUM_ELEMENTS: usize = 4
pub const PAYLOAD_HEADER_NUM_ELEMENTS: usize = 4
Number of elements in the payload header word: [num_notes, expiration_delta, 0, 0].
See encode_payload for the full payload layout.
Sourcepub const NOTE_RECORD_NUM_ASSETS_OFFSET: usize = 6
pub const NOTE_RECORD_NUM_ASSETS_OFFSET: usize = 6
Element offset of the asset count within a note record, after the RECIPIENT word and the
tag and note_type elements.
See encode_payload for the full payload layout.
Sourcepub const NOTE_RECORD_ITEMS_OFFSET: usize = 8
pub const NOTE_RECORD_ITEMS_OFFSET: usize = 8
Element offset of the first asset or attachment item within a note record, after the RECIPIENT word and the metadata word.
See encode_payload for the full payload layout.
Sourcepub const ITEM_NUM_ELEMENTS: usize = 8
pub const ITEM_NUM_ELEMENTS: usize = 8
Number of elements a single asset or attachment item occupies (two words).
See encode_payload for the full payload layout.
Sourcepub fn new(
interface: &AccountCodeInterface,
output_notes: &[PartialNote],
) -> Result<Self, SendNotesTransactionScriptError>
pub fn new( interface: &AccountCodeInterface, output_notes: &[PartialNote], ) -> Result<Self, SendNotesTransactionScriptError>
Builds the send_notes script that the account described by interface calls for, without
an expiration delta.
See Self::with_expiration_delta for the variant that pins the transaction to a
reference-block delta.
§Errors
Returns an error if the interface exposes none of the wallet, fungible faucet or non-fungible faucet procedures, or if the notes fail the selected script’s validation.
Sourcepub fn with_expiration_delta(
interface: &AccountCodeInterface,
output_notes: &[PartialNote],
expiration_delta: NonZeroU16,
) -> Result<Self, SendNotesTransactionScriptError>
pub fn with_expiration_delta( interface: &AccountCodeInterface, output_notes: &[PartialNote], expiration_delta: NonZeroU16, ) -> Result<Self, SendNotesTransactionScriptError>
Builds the send_notes script that the account described by interface calls for, with the
given non-zero expiration delta.
The delta specifies how close to the transaction’s reference block the transaction must be included into the chain. For example, with a reference block of 100 and a delta of 10, the transaction must be included by block 110.
§Errors
See Self::new.
Sourcepub fn tx_script(&self) -> &TransactionScript
pub fn tx_script(&self) -> &TransactionScript
The underlying TransactionScript, to be set as the transaction’s script.
Sourcepub fn tx_script_args(&self) -> Word
pub fn tx_script_args(&self) -> Word
The transaction script argument the script reads its payload commitment from.
Pass this as the transaction’s TX_SCRIPT_ARGS.
Sourcepub fn script_roots() -> [TransactionScriptRoot; 3]
pub fn script_roots() -> [TransactionScriptRoot; 3]
The TransactionScriptRoots of every canonical send_notes script.
Allowlisting all of them covers any account this type can build a script for.
Trait Implementations§
Source§impl Clone for SendNotesTransactionScript
impl Clone for SendNotesTransactionScript
Source§fn clone(&self) -> SendNotesTransactionScript
fn clone(&self) -> SendNotesTransactionScript
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for SendNotesTransactionScript
impl RefUnwindSafe for SendNotesTransactionScript
impl Send for SendNotesTransactionScript
impl Sync for SendNotesTransactionScript
impl Unpin for SendNotesTransactionScript
impl UnsafeUnpin for SendNotesTransactionScript
impl UnwindSafe for SendNotesTransactionScript
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more