ExecutionV3

Struct ExecutionV3 

Source
pub struct ExecutionV3<'a, A> { /* private fields */ }
Expand description

Abstraction over INVOKE transactions from accounts for invoking contracts. This struct uses v3 INVOKE 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<'a, A> ExecutionV3<'a, A>

Source

pub const fn new(calls: Vec<Call>, account: &'a A) -> Self

Constructs a new ExecutionV3.

Users would typically use execute_v3 on an Account instead of directly calling this method.

Source

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

Returns a new ExecutionV3 with the nonce.

Source

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

Returns a new ExecutionV3 with the l1_gas.

Source

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

Returns a new ExecutionV3 with the l1_gas_price.

Source

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

Returns a new ExecutionV3 with the l2_gas.

Source

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

Returns a new ExecutionV3 with the l2_gas_price.

Source

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

Returns a new ExecutionV3 with the l1_data_gas.

Source

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

Returns a new ExecutionV3 with the l1_data_gas_price.

Source

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

Returns a new ExecutionV3 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 fn gas_price_estimate_multiplier( self, gas_price_estimate_multiplier: f64, ) -> Self

Returns a new ExecutionV3 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 fn tip(self, tip: u64) -> Self

Returns a new ExecutionV3 with the tip.

Source

pub fn prepared(self) -> Result<PreparedExecutionV3<'a, A>, NotPreparedError>

Calling this function after manually specifying nonce, gas and gas_price turns ExecutionV3 into PreparedExecutionV3. Returns Err if any field is None.

Source§

impl<'a, A> ExecutionV3<'a, A>

Source

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

Estimates transaction fees from a Provider.

Source

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

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

Source

pub async fn send( &self, ) -> Result<InvokeTransactionResult, AccountError<A::SignError>>

Signs and broadcasts the transaction to the network.

Trait Implementations§

Source§

impl<'a, A: Debug> Debug for ExecutionV3<'a, A>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, A> Freeze for ExecutionV3<'a, A>

§

impl<'a, A> RefUnwindSafe for ExecutionV3<'a, A>
where A: RefUnwindSafe,

§

impl<'a, A> Send for ExecutionV3<'a, A>
where A: Sync,

§

impl<'a, A> Sync for ExecutionV3<'a, A>
where A: Sync,

§

impl<'a, A> Unpin for ExecutionV3<'a, A>

§

impl<'a, A> UnwindSafe for ExecutionV3<'a, A>
where A: 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,