pub struct TransactionKernel;Implementations§
Source§impl TransactionKernel
 
impl TransactionKernel
Sourcepub const NUM_VERSIONS: usize = 1usize
 
pub const NUM_VERSIONS: usize = 1usize
Number of currently used kernel versions.
Sourcepub const PROCEDURES: [&'static [Word]; 1]
 
pub const PROCEDURES: [&'static [Word]; 1]
Array of all available kernels.
Sourcepub fn procedures_as_elements(kernel_version: u8) -> Vec<Felt>
 
pub fn procedures_as_elements(kernel_version: u8) -> Vec<Felt>
Returns procedures of the kernel specified by the kernel_version as vector of Felts.
Sourcepub fn commitment(kernel_version: u8) -> Word
 
pub fn commitment(kernel_version: u8) -> Word
Computes the accumulative hash of all procedures of the kernel specified by the
kernel_version.
Sourcepub fn kernel_commitment() -> Word
 
pub fn kernel_commitment() -> Word
Computes a hash from all kernel commitments.
Source§impl TransactionKernel
 
impl TransactionKernel
Sourcepub fn kernel() -> KernelLibrary
 
pub fn kernel() -> KernelLibrary
Returns a library with the transaction kernel system procedures.
§Panics
Panics if the transaction kernel source is not well-formed.
Sourcepub fn main() -> Program
 
pub fn main() -> Program
Returns an AST of the transaction kernel executable program.
§Panics
Panics if the transaction kernel source is not well-formed.
Sourcepub fn tx_script_main() -> Program
 
pub fn tx_script_main() -> Program
Returns an AST of the transaction script executor program.
§Panics
Panics if the transaction kernel source is not well-formed.
Sourcepub fn program_info() -> ProgramInfo
 
pub fn program_info() -> ProgramInfo
Returns ProgramInfo for the transaction kernel executable program.
§Panics
Panics if the transaction kernel source is not well-formed.
Sourcepub fn prepare_inputs(
    tx_inputs: &TransactionInputs,
    tx_args: &TransactionArgs,
    init_advice_inputs: Option<AdviceInputs>,
) -> Result<(StackInputs, TransactionAdviceInputs), TransactionAdviceMapMismatch>
 
pub fn prepare_inputs( tx_inputs: &TransactionInputs, tx_args: &TransactionArgs, init_advice_inputs: Option<AdviceInputs>, ) -> Result<(StackInputs, TransactionAdviceInputs), TransactionAdviceMapMismatch>
Transforms the provided TransactionInputs and TransactionArgs into stack and advice inputs needed to execute a transaction kernel for a specific transaction.
If init_advice_inputs is provided, they will be included in the returned advice inputs.
Sourcepub fn assembler() -> Assembler
 
pub fn assembler() -> Assembler
Returns a new Miden assembler instantiated with the transaction kernel and loaded with the Miden stdlib as well as with miden-lib.
Sourcepub fn assembler_with_source_manager(
    source_manager: Arc<dyn SourceManagerSync>,
) -> Assembler
 
pub fn assembler_with_source_manager( source_manager: Arc<dyn SourceManagerSync>, ) -> Assembler
Returns a new assembler instantiated with the transaction kernel and loaded with the Miden stdlib as well as with miden-lib.
Sourcepub fn build_input_stack(
    account_id: AccountId,
    init_account_commitment: Word,
    input_notes_commitment: Word,
    block_commitment: Word,
    block_num: BlockNumber,
) -> StackInputs
 
pub fn build_input_stack( account_id: AccountId, init_account_commitment: Word, input_notes_commitment: Word, block_commitment: Word, block_num: BlockNumber, ) -> StackInputs
Returns the stack with the public inputs required by the transaction kernel.
The initial stack is defined:
[
    BLOCK_COMMITMENT,
    INITIAL_ACCOUNT_COMMITMENT,
    INPUT_NOTES_COMMITMENT,
    account_id_prefix, account_id_suffix, block_num
]Where:
- BLOCK_COMMITMENT is the commitment to the reference block of the transaction.
 - block_num is the reference block number.
 - account_id_{prefix,suffix} are the prefix and suffix felts of the account that the transaction is being executed against.
 - INITIAL_ACCOUNT_COMMITMENT is the account state prior to the transaction, EMPTY_WORD for new accounts.
 - INPUT_NOTES_COMMITMENT, see 
transaction::api::get_input_notes_commitment. 
Sourcepub fn build_output_stack(
    final_account_commitment: Word,
    account_delta_commitment: Word,
    output_notes_commitment: Word,
    fee: FungibleAsset,
    expiration_block_num: BlockNumber,
) -> StackOutputs
 
pub fn build_output_stack( final_account_commitment: Word, account_delta_commitment: Word, output_notes_commitment: Word, fee: FungibleAsset, expiration_block_num: BlockNumber, ) -> StackOutputs
Builds the stack for expected transaction execution outputs. The transaction kernel’s output stack is formed like so:
[
    OUTPUT_NOTES_COMMITMENT,
    ACCOUNT_UPDATE_COMMITMENT,
    FEE_ASSET,
    expiration_block_num,
]Where:
- OUTPUT_NOTES_COMMITMENT is a commitment to the output notes.
 - ACCOUNT_UPDATE_COMMITMENT is the hash of the the final account commitment and account delta commitment.
 - FEE_ASSET is the fungible asset used as the transaction fee.
 - expiration_block_num is the block number at which the transaction will expire.
 
Sourcepub fn parse_output_stack(
    stack: &StackOutputs,
) -> Result<(Word, Word, FungibleAsset, BlockNumber), TransactionOutputError>
 
pub fn parse_output_stack( stack: &StackOutputs, ) -> Result<(Word, Word, FungibleAsset, BlockNumber), TransactionOutputError>
Extracts transaction output data from the provided stack outputs.
The data on the stack is expected to be arranged as follows:
[
    OUTPUT_NOTES_COMMITMENT,
    ACCOUNT_UPDATE_COMMITMENT,
    FEE_ASSET,
    expiration_block_num,
]Where:
- OUTPUT_NOTES_COMMITMENT is the commitment of the output notes.
 - ACCOUNT_UPDATE_COMMITMENT is the hash of the the final account commitment and account delta commitment.
 - FEE_ASSET is the fungible asset used as the transaction fee.
 - tx_expiration_block_num is the block height at which the transaction will become expired, defined by the sum of the execution block ref and the transaction’s block expiration delta (if set during transaction execution).
 
§Errors
Returns an error if:
- Indices 13..16 on the stack are not zeroes.
 - Overflow addresses are not empty.
 
Sourcepub fn from_transaction_parts(
    stack: &StackOutputs,
    advice_inputs: &AdviceInputs,
    output_notes: Vec<OutputNote>,
) -> Result<TransactionOutputs, TransactionOutputError>
 
pub fn from_transaction_parts( stack: &StackOutputs, advice_inputs: &AdviceInputs, output_notes: Vec<OutputNote>, ) -> Result<TransactionOutputs, TransactionOutputError>
Returns TransactionOutputs constructed from the provided output stack and advice map.
The output stack is expected to be arranged as follows:
[
    OUTPUT_NOTES_COMMITMENT,
    ACCOUNT_UPDATE_COMMITMENT,
    FEE_ASSET,
    expiration_block_num,
]Where:
- OUTPUT_NOTES_COMMITMENT is the commitment of the output notes.
 - ACCOUNT_UPDATE_COMMITMENT is the hash of the final account commitment and the account delta commitment of the account that the transaction is being executed against.
 - FEE_ASSET is the fungible asset used as the transaction fee.
 - tx_expiration_block_num is the block height at which the transaction will become expired, defined by the sum of the execution block ref and the transaction’s block expiration delta (if set during transaction execution).
 
The actual data describing the new account state and output notes is expected to be located
in the provided advice map under keys OUTPUT_NOTES_COMMITMENT and
ACCOUNT_UPDATE_COMMITMENT, where the final data for the account state is located under
FINAL_ACCOUNT_COMMITMENT.
Auto Trait Implementations§
impl Freeze for TransactionKernel
impl RefUnwindSafe for TransactionKernel
impl Send for TransactionKernel
impl Sync for TransactionKernel
impl Unpin for TransactionKernel
impl UnwindSafe for TransactionKernel
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
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<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