AccountDeploymentV3

Struct AccountDeploymentV3 

Source
pub struct AccountDeploymentV3<'f, F> { /* private fields */ }
Expand description

Abstraction over DEPLOY_ACCOUNT transactions for account contract deployment. This struct uses v3 DEPLOY_ACCOUNT transactions under the hood, and hence pays transaction fees in STRK.

This is an intermediate type allowing users to optionally specify nonce and transaction fee options.

Implementations§

Source§

impl<'f, F> AccountDeploymentV3<'f, F>

Source

pub const fn new(salt: Felt, factory: &'f F) -> Self

Constructs a new AccountDeploymentV3.

Users would typically use deploy_v3 on an AccountFactory instead of directly calling this method.

Source

pub const fn nonce(self, nonce: Felt) -> Self

Returns a new AccountDeploymentV3 with the nonce.

Source

pub const fn l1_gas(self, l1_gas: u64) -> Self

Returns a new AccountDeploymentV3 with the l1_gas.

Source

pub const fn l1_gas_price(self, l1_gas_price: u128) -> Self

Returns a new AccountDeploymentV3 with the l1_gas_price.

Source

pub const fn l2_gas(self, l2_gas: u64) -> Self

Returns a new AccountDeploymentV3 with the l2_gas.

Source

pub const fn l2_gas_price(self, l2_gas_price: u128) -> Self

Returns a new AccountDeploymentV3 with the l2_gas_price.

Source

pub const fn l1_data_gas(self, l1_data_gas: u64) -> Self

Returns a new AccountDeploymentV3 with the l1_data_gas.

Source

pub const fn l1_data_gas_price(self, l1_data_gas_price: u128) -> Self

Returns a new AccountDeploymentV3 with the l1_data_gas_price.

Source

pub const fn gas_estimate_multiplier(self, gas_estimate_multiplier: f64) -> Self

Returns a new AccountDeploymentV3 with the gas amount estimate multiplier. The multiplier is used when the gas amount is not manually specified and must be fetched from a Provider instead.

Source

pub const fn gas_price_estimate_multiplier( self, gas_price_estimate_multiplier: f64, ) -> Self

Returns a new AccountDeploymentV3 with the gas price estimate multiplier. The multiplier is used when the gas price is not manually specified and must be fetched from a Provider instead.

Source

pub const fn tip(self, tip: u64) -> Self

Returns a new AccountDeploymentV3 with the tip.

Source

pub fn prepared( self, ) -> Result<PreparedAccountDeploymentV3<'f, F>, NotPreparedError>

Calling this function after manually specifying nonce and max_fee turns AccountDeploymentV3 into PreparedAccountDeploymentV3. Returns Err if either field is None.

Source§

impl<'f, F> AccountDeploymentV3<'f, F>
where F: AccountFactory + Sync,

Source

pub fn address(&self) -> Felt

Locally calculates the target deployment address.

Source

pub async fn fetch_nonce(&self) -> Result<Felt, ProviderError>

Fetches the next available nonce from a Provider. In most cases this would be 0 but it can also be non-zero if previous reverted deployment attempts exist.

Source

pub async fn estimate_fee( &self, ) -> Result<FeeEstimate, AccountFactoryError<F::SignError>>

Estimates transaction fees from a Provider.

Source

pub async fn simulate( &self, skip_validate: bool, skip_fee_charge: bool, ) -> Result<SimulatedTransaction, AccountFactoryError<F::SignError>>

Simulates the transaction from a Provider. Transaction validation and fee transfer can be skipped.

Source

pub async fn send( &self, ) -> Result<DeployAccountTransactionResult, AccountFactoryError<F::SignError>>

Signs and broadcasts the transaction to the network.

Trait Implementations§

Source§

impl<'f, F: Debug> Debug for AccountDeploymentV3<'f, F>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'f, F> Freeze for AccountDeploymentV3<'f, F>

§

impl<'f, F> RefUnwindSafe for AccountDeploymentV3<'f, F>
where F: RefUnwindSafe,

§

impl<'f, F> Send for AccountDeploymentV3<'f, F>
where F: Sync,

§

impl<'f, F> Sync for AccountDeploymentV3<'f, F>
where F: Sync,

§

impl<'f, F> Unpin for AccountDeploymentV3<'f, F>

§

impl<'f, F> UnwindSafe for AccountDeploymentV3<'f, F>
where F: RefUnwindSafe,

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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
Source§

impl<T> ErasedDestructor for T
where T: 'static,