pub struct TransactionContextBuilder { /* private fields */ }
Expand description
TransactionContextBuilder is a utility to construct TransactionContext for testing purposes. It allows users to build accounts, create notes, provide advice inputs, and execute code. The VM process can be inspected afterward.
§Examples
Create a new account and execute code:
let tx_context = TransactionContextBuilder::with_existing_mock_account().build().unwrap();
let code = "
use.kernel::prologue
use.test::account
begin
exec.prologue::prepare_transaction
push.5
swap drop
end
";
let process = tx_context.execute_code(code).unwrap();
assert_eq!(process.stack.get(0), Felt::new(5),);
Implementations§
Source§impl TransactionContextBuilder
impl TransactionContextBuilder
pub fn new(account: Account) -> Self
Sourcepub fn with_existing_mock_account() -> Self
pub fn with_existing_mock_account() -> Self
Initializes a TransactionContextBuilder with a mock account.
The wallet:
- Includes a series of mocked assets (miden_objects::asset::AssetVault::mock()).
- Has a nonce of
1
(so it does not imply seed validation). - Has an ID of
ACCOUNT_ID_REGULAR_PUBLIC_ACCOUNT_UPDATABLE_CODE
. - Has an account code based on an miden_objects::testing::account_component::AccountMockComponent.
pub fn with_noop_auth_account(nonce: Felt) -> Self
Sourcepub fn with_fungible_faucet(
acct_id: u128,
nonce: Felt,
initial_balance: Felt,
) -> Self
pub fn with_fungible_faucet( acct_id: u128, nonce: Felt, initial_balance: Felt, ) -> Self
Initializes a TransactionContextBuilder with a mocked fungible faucet.
Sourcepub fn with_non_fungible_faucet(
acct_id: u128,
nonce: Felt,
empty_reserved_slot: bool,
) -> Self
pub fn with_non_fungible_faucet( acct_id: u128, nonce: Felt, empty_reserved_slot: bool, ) -> Self
Initializes a TransactionContextBuilder with a mocked non-fungible faucet.
Sourcepub fn assembler(&self) -> Assembler
pub fn assembler(&self) -> Assembler
Returns a clone of the assembler.
This is primarily useful to assemble a script whose source will end up in the source manager that is passed to the processor. This will help generate better error messages.
Sourcepub fn account_seed(self, account_seed: Option<Word>) -> Self
pub fn account_seed(self, account_seed: Option<Word>) -> Self
Override and set the account seed manually
Sourcepub fn extend_advice_inputs(self, advice_inputs: AdviceInputs) -> Self
pub fn extend_advice_inputs(self, advice_inputs: AdviceInputs) -> Self
Extend the advice inputs with the provided AdviceInputs instance.
Sourcepub fn extend_advice_map(
self,
map_entries: impl IntoIterator<Item = (Word, Vec<Felt>)>,
) -> Self
pub fn extend_advice_map( self, map_entries: impl IntoIterator<Item = (Word, Vec<Felt>)>, ) -> Self
Extend the advice inputs map with the provided iterator.
Sourcepub fn authenticator(
self,
authenticator: Option<BasicAuthenticator<ChaCha20Rng>>,
) -> Self
pub fn authenticator( self, authenticator: Option<BasicAuthenticator<ChaCha20Rng>>, ) -> Self
Set the authenticator for the transaction (if needed)
Sourcepub fn foreign_accounts(self, inputs: Vec<AccountInputs>) -> Self
pub fn foreign_accounts(self, inputs: Vec<AccountInputs>) -> Self
Set foreign account codes that are used by the transaction
Sourcepub fn extend_input_notes(self, input_notes: Vec<Note>) -> Self
pub fn extend_input_notes(self, input_notes: Vec<Note>) -> Self
Extend the set of used input notes
Sourcepub fn tx_script(self, tx_script: TransactionScript) -> Self
pub fn tx_script(self, tx_script: TransactionScript) -> Self
Set the desired transaction script
Sourcepub fn tx_script_arg(self, tx_script_arg: Word) -> Self
pub fn tx_script_arg(self, tx_script_arg: Word) -> Self
Set the transaction script argument
Sourcepub fn tx_inputs(self, tx_inputs: TransactionInputs) -> Self
pub fn tx_inputs(self, tx_inputs: TransactionInputs) -> Self
Set the desired transaction inputs
Sourcepub fn extend_note_args(self, note_args: BTreeMap<NoteId, Word>) -> Self
pub fn extend_note_args(self, note_args: BTreeMap<NoteId, Word>) -> Self
Extend the note arguments map with the provided one.
Sourcepub fn extend_expected_output_notes(self, output_notes: Vec<OutputNote>) -> Self
pub fn extend_expected_output_notes(self, output_notes: Vec<OutputNote>) -> Self
Extend the expected output notes.
Sourcepub fn build(self) -> Result<TransactionContext>
pub fn build(self) -> Result<TransactionContext>
Builds the TransactionContext.
If no transaction inputs were provided manually, an ad-hoc MockChain is created in order to generate valid block data for the required notes.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TransactionContextBuilder
impl !RefUnwindSafe for TransactionContextBuilder
impl !Send for TransactionContextBuilder
impl !Sync for TransactionContextBuilder
impl Unpin for TransactionContextBuilder
impl !UnwindSafe for TransactionContextBuilder
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