MockChainBuilder

Struct MockChainBuilder 

Source
pub struct MockChainBuilder { /* private fields */ }
Expand description

A builder for a MockChain.

Implementations§

Source§

impl MockChainBuilder

Source

pub fn new() -> Self

Initializes a new mock chain builder with an empty state.

By default, the native_asset_id is set to ACCOUNT_ID_NATIVE_ASSET_FAUCET and can be overwritten using Self::native_asset_id.

The verification_base_fee is initialized to 0 which means no fees are required by default.

Source

pub fn with_accounts( accounts: impl IntoIterator<Item = Account>, ) -> Result<Self>

Initializes a new mock chain builder with the provided accounts.

This method only adds the accounts and cannot not register any seed or authenticator for it. Calling MockChain::build_tx_context on accounts added in this way will not work if the account is new or if they need an authenticator.

Due to these limitations, prefer using other methods to add accounts to the chain, e.g. MockChainBuilder::add_account_from_builder.

Source

pub fn native_asset_id(self, native_asset_id: AccountId) -> Self

Sets the native asset ID of the chain.

This must be a fungible faucet AccountId and is the asset in which fees will be accepted by the transaction kernel.

Source

pub fn verification_base_fee(self, verification_base_fee: u32) -> Self

Sets the verification_base_fee of the chain.

See FeeParameters for more details.

Source

pub fn build(self) -> Result<MockChain>

Consumes the builder, creates the genesis block of the chain and returns the MockChain.

Source

pub fn create_new_wallet(&mut self, auth_method: Auth) -> Result<Account>

Creates a new public BasicWallet account and registers the authenticator (if any) and seed.

This does not add the account to the chain state, but it can still be used to call MockChain::build_tx_context to automatically handle the authenticator and seed.

Source

pub fn add_existing_wallet(&mut self, auth_method: Auth) -> Result<Account>

Adds an existing public BasicWallet account to the initial chain state and registers the authenticator (if any).

Source

pub fn add_existing_wallet_with_assets( &mut self, auth_method: Auth, assets: impl IntoIterator<Item = Asset>, ) -> Result<Account>

Adds an existing public BasicWallet account to the initial chain state and registers the authenticator (if any).

Source

pub fn create_new_faucet( &mut self, auth_method: Auth, token_symbol: &str, max_supply: u64, ) -> Result<Account>

Creates a new public BasicFungibleFaucet account and registers the authenticator (if any) and seed.

This does not add the account to the chain state, but it can still be used to call MockChain::build_tx_context to automatically handle the authenticator and seed.

Source

pub fn add_existing_faucet( &mut self, auth_method: Auth, token_symbol: &str, max_supply: u64, total_issuance: Option<u64>, ) -> Result<Account>

Adds an existing public BasicFungibleFaucet account to the initial chain state and registers the authenticator (if the given Auth results in the creation of one).

Source

pub fn create_new_mock_account(&mut self, auth_method: Auth) -> Result<Account>

Creates a new public account with an MockAccountComponent and registers the authenticator (if any).

Source

pub fn add_existing_mock_account( &mut self, auth_method: Auth, ) -> Result<Account>

Adds an existing public account with an MockAccountComponent to the initial chain state and registers the authenticator (if any).

Source

pub fn add_existing_mock_account_with_storage( &mut self, auth_method: Auth, slots: impl IntoIterator<Item = StorageSlot>, ) -> Result<Account>

Adds an existing public account with an MockAccountComponent to the initial chain state and registers the authenticator (if any).

Source

pub fn add_existing_mock_account_with_assets( &mut self, auth_method: Auth, assets: impl IntoIterator<Item = Asset>, ) -> Result<Account>

Adds an existing public account with an MockAccountComponent to the initial chain state and registers the authenticator (if any).

Source

pub fn add_existing_mock_account_with_storage_and_assets( &mut self, auth_method: Auth, slots: impl IntoIterator<Item = StorageSlot>, assets: impl IntoIterator<Item = Asset>, ) -> Result<Account>

Adds an existing public account with an MockAccountComponent to the initial chain state and registers the authenticator (if any).

Source

pub fn add_account_from_builder( &mut self, auth_method: Auth, account_builder: AccountBuilder, account_state: AccountState, ) -> Result<Account>

Builds the provided AccountBuilder with the provided auth method and registers the authenticator (if any).

  • If AccountState::Exists is given the account is built as an existing account and added to the initial chain state. It can then be used in a transaction without having to validate its seed.
  • If AccountState::New is given the account is built as a new account and is not added to the chain. Its seed and authenticator are registered (if any). Its first transaction will be its creation transaction. MockChain::build_tx_context can be called with the account to automatically handle the authenticator and seed.
Source

pub fn add_account(&mut self, account: Account) -> Result<()>

Adds the provided account to the list of genesis accounts.

This method only adds the account and does not store its account credentials (seed and authenticator) for it. Calling MockChain::build_tx_context on accounts added in this way will not work if the account is new or if they need an authenticator.

Due to these limitations, prefer using other methods to add accounts to the chain, e.g. MockChainBuilder::add_account_from_builder.

Source

pub fn add_note(&mut self, note: impl Into<OutputNote>)

Adds the provided note to the initial chain state.

Source

pub fn add_p2any_note( &mut self, sender_account_id: AccountId, asset: &[Asset], ) -> Result<Note>

Creates a new P2ANY note from the provided parameters and adds it to the list of genesis notes. This note is similar to a P2ID note but can be consumed by any account.

In the created MockChain, the note will be immediately spendable by target_account_id and carries no additional reclaim or timelock conditions.

Source

pub fn add_p2id_note( &mut self, sender_account_id: AccountId, target_account_id: AccountId, asset: &[Asset], note_type: NoteType, ) -> Result<Note, NoteError>

Creates a new P2ID note from the provided parameters and adds it to the list of genesis notes.

In the created MockChain, the note will be immediately spendable by target_account_id and carries no additional reclaim or timelock conditions.

Source

pub fn add_p2ide_note( &mut self, sender_account_id: AccountId, target_account_id: AccountId, asset: &[Asset], note_type: NoteType, reclaim_height: Option<BlockNumber>, timelock_height: Option<BlockNumber>, ) -> Result<Note, NoteError>

Adds a P2IDE OutputNote (pay‑to‑ID‑extended) to the list of genesis notes.

A P2IDE note can include an optional timelock_height and/or an optional reclaim_height after which the sender_account_id may reclaim the funds.

Source

pub fn add_swap_note( &mut self, sender: AccountId, offered_asset: Asset, requested_asset: Asset, payback_note_type: NoteType, ) -> Result<(Note, NoteDetails)>

Adds a public SWAP OutputNote to the list of genesis notes.

Source

pub fn add_spawn_note<'note>( &mut self, sender_id: AccountId, output_notes: impl IntoIterator<Item = &'note Note>, ) -> Result<Note>

Adds a public SPAWN note to the list of genesis notes.

A SPAWN note contains a note script that creates all output_notes that get passed as a parameter.

Source

pub fn add_p2id_note_with_fee( &mut self, target_account_id: AccountId, amount: u64, ) -> Result<Note>

Creates a new P2ID note with the provided amount of the native fee asset of the chain.

The native asset ID of the asset can be set using Self::native_asset_id. By default it is ACCOUNT_ID_NATIVE_ASSET_FAUCET.

In the created MockChain, the note will be immediately spendable by target_account_id.

Trait Implementations§

Source§

impl Clone for MockChainBuilder

Source§

fn clone(&self) -> MockChainBuilder

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MockChainBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MockChainBuilder

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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