Struct miden_lib::transaction::TransactionKernel

source ·
pub struct TransactionKernel;

Implementations§

source§

impl TransactionKernel

source

pub fn kernel() -> &'static str

Returns MASM source code which encodes the transaction kernel system procedures.

source

pub fn main() -> Result<ProgramAst, DeserializationError>

Returns an AST of the transaction kernel executable program.

§Errors

Returns an error if deserialization of the binary fails.

source

pub fn program_info() -> ProgramInfo

Returns ProgramInfo for the transaction kernel executable program.

§Panics

Panics if the transaction kernel source is not well-formed.

source

pub fn assembler() -> Assembler

Returns a new Miden assembler instantiated with the transaction kernel and loaded with the Miden stdlib as well as with midenlib.

source

pub fn build_input_stack( acct_id: AccountId, init_acct_hash: Digest, input_notes_hash: Digest, block_hash: Digest, ) -> StackInputs

Returns the stack with the public inputs required by the transaction kernel.

The initial stack is defined:

[BLOCK_HASH, acct_id, INITIAL_ACCOUNT_HASH, INPUT_NOTES_COMMITMENT]

Where:

  • BLOCK_HASH, reference block for the transaction execution.
  • acct_id, the account that the transaction is being executed against.
  • INITIAL_ACCOUNT_HASH, account state prior to the transaction, EMPTY_WORD for new accounts.
  • INPUT_NOTES_COMMITMENT, see transaction::api::get_input_notes_commitment.
source

pub fn build_output_stack( final_acct_hash: Digest, output_notes_hash: Digest, ) -> StackOutputs

source

pub fn parse_output_stack( stack: &StackOutputs, ) -> Result<(Digest, Digest), TransactionOutputError>

Extracts transaction output data from the provided stack outputs.

The data on the stack is expected to be arranged as follows:

Stack: [CNC, FAH]

Where:

  • CNC is the commitment to the notes created by the transaction.
  • FAH is the final account hash of the account that the transaction is being executed against.
§Errors

Returns an error if:

  • Words 3 and 4 on the stack are not 0.
  • Overflow addresses are not empty.
source

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: [CNC, FAH]

Where:

  • CNC is the commitment to the notes created by the transaction.
  • FAH is the final account hash of the account that the transaction is being executed against.

The actual data describing the new account state and output notes is expected to be located in the provided advice map under keys CNC and FAH.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more