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 [Digest]; 1]
pub const PROCEDURES: [&'static [Digest]; 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) -> Digest
pub fn commitment(kernel_version: u8) -> Digest
Computes the accumulative hash of all procedures of the kernel specified by the
kernel_version.
Sourcepub fn kernel_commitment() -> Digest
pub fn kernel_commitment() -> Digest
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, AdviceInputs), TransactionInputError>
pub fn prepare_inputs( tx_inputs: &TransactionInputs, tx_args: &TransactionArgs, init_advice_inputs: Option<AdviceInputs>, ) -> Result<(StackInputs, AdviceInputs), TransactionInputError>
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 build_input_stack(
account_id: AccountId,
init_account_commitment: Digest,
input_notes_commitment: Digest,
block_commitment: Digest,
block_num: BlockNumber,
) -> StackInputs
pub fn build_input_stack( account_id: AccountId, init_account_commitment: Digest, input_notes_commitment: Digest, block_commitment: Digest, 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: Digest,
output_notes_commitment: Digest,
expiration_block_num: BlockNumber,
) -> StackOutputs
pub fn build_output_stack( final_account_commitment: Digest, output_notes_commitment: Digest, expiration_block_num: BlockNumber, ) -> StackOutputs
Builds the stack for expected transaction execution outputs. The transaction kernel’s output stack is formed like so:
[
expiration_block_num,
OUTPUT_NOTES_COMMITMENT,
FINAL_ACCOUNT_COMMITMENT,
]Where:
- OUTPUT_NOTES_COMMITMENT is a commitment to the output notes.
- FINAL_ACCOUNT_COMMITMENT is a hash of the account’s final state.
- expiration_block_num is the block number at which the transaction will expire.
Sourcepub fn parse_output_stack(
stack: &StackOutputs,
) -> Result<(Digest, Digest, BlockNumber), TransactionOutputError>
pub fn parse_output_stack( stack: &StackOutputs, ) -> Result<(Digest, Digest, BlockNumber), TransactionOutputError>
Extracts transaction output data from the provided stack outputs.
The data on the stack is expected to be arranged as follows:
Stack: [OUTPUT_NOTES_COMMITMENT, FINAL_ACCOUNT_COMMITMENT, tx_expiration_block_num]
Where:
- OUTPUT_NOTES_COMMITMENT is the commitment of the output notes.
- FINAL_ACCOUNT_COMMITMENT is the final account commitment of the account that the transaction is being executed against.
- 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:
- Words 3 and 4 on the stack are not 0.
- Overflow addresses are not empty.
Sourcepub fn from_transaction_parts(
stack: &StackOutputs,
adv_map: &AdviceMap,
output_notes: Vec<OutputNote>,
) -> Result<TransactionOutputs, TransactionOutputError>
pub fn from_transaction_parts( stack: &StackOutputs, adv_map: &AdviceMap, 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 arrange as follows:
Stack: [OUTPUT_NOTES_COMMITMENT, FINAL_ACCOUNT_COMMITMENT, tx_expiration_block_num]
Where:
- OUTPUT_NOTES_COMMITMENT is the commitment of the output notes.
- FINAL_ACCOUNT_COMMITMENT is the final account commitment of the account that the transaction is being executed against.
- 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
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