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>
impl<'a, A> ExecutionV3<'a, A>
Sourcepub const fn new(calls: Vec<Call>, account: &'a A) -> Self
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.
Sourcepub fn nonce(self, nonce: Felt) -> Self
pub fn nonce(self, nonce: Felt) -> Self
Returns a new ExecutionV3
with the nonce
.
Sourcepub fn l1_gas(self, l1_gas: u64) -> Self
pub fn l1_gas(self, l1_gas: u64) -> Self
Returns a new ExecutionV3
with the l1_gas
.
Sourcepub fn l1_gas_price(self, l1_gas_price: u128) -> Self
pub fn l1_gas_price(self, l1_gas_price: u128) -> Self
Returns a new ExecutionV3
with the l1_gas_price
.
Sourcepub fn l2_gas(self, l2_gas: u64) -> Self
pub fn l2_gas(self, l2_gas: u64) -> Self
Returns a new ExecutionV3
with the l2_gas
.
Sourcepub fn l2_gas_price(self, l2_gas_price: u128) -> Self
pub fn l2_gas_price(self, l2_gas_price: u128) -> Self
Returns a new ExecutionV3
with the l2_gas_price
.
Sourcepub fn l1_data_gas(self, l1_data_gas: u64) -> Self
pub fn l1_data_gas(self, l1_data_gas: u64) -> Self
Returns a new ExecutionV3
with the l1_data_gas
.
Sourcepub fn l1_data_gas_price(self, l1_data_gas_price: u128) -> Self
pub fn l1_data_gas_price(self, l1_data_gas_price: u128) -> Self
Returns a new ExecutionV3
with the l1_data_gas_price
.
Sourcepub fn gas_estimate_multiplier(self, gas_estimate_multiplier: f64) -> Self
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.
Sourcepub fn gas_price_estimate_multiplier(
self,
gas_price_estimate_multiplier: f64,
) -> Self
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.
Sourcepub fn tip(self, tip: u64) -> Self
pub fn tip(self, tip: u64) -> Self
Returns a new ExecutionV3
with the tip
.
Sourcepub fn prepared(self) -> Result<PreparedExecutionV3<'a, A>, NotPreparedError>
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>where
A: ConnectedAccount + Sync,
impl<'a, A> ExecutionV3<'a, A>where
A: ConnectedAccount + Sync,
Sourcepub async fn estimate_fee(
&self,
) -> Result<FeeEstimate, AccountError<A::SignError>>
pub async fn estimate_fee( &self, ) -> Result<FeeEstimate, AccountError<A::SignError>>
Estimates transaction fees from a Provider
.
Sourcepub async fn simulate(
&self,
skip_validate: bool,
skip_fee_charge: bool,
) -> Result<SimulatedTransaction, AccountError<A::SignError>>
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.
Sourcepub async fn send(
&self,
) -> Result<InvokeTransactionResult, AccountError<A::SignError>>
pub async fn send( &self, ) -> Result<InvokeTransactionResult, AccountError<A::SignError>>
Signs and broadcasts the transaction to the network.