pub struct DeclarationV3<'a, A> { /* private fields */ }Expand description
Abstraction over DECLARE transactions from accounts for invoking contracts. This struct uses
v3 DECLARE 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> DeclarationV3<'a, A>
impl<'a, A> DeclarationV3<'a, A>
Sourcepub const fn new(
contract_class: Arc<FlattenedSierraClass>,
compiled_class_hash: Felt,
account: &'a A,
) -> DeclarationV3<'a, A>
pub const fn new( contract_class: Arc<FlattenedSierraClass>, compiled_class_hash: Felt, account: &'a A, ) -> DeclarationV3<'a, A>
Constructs a new DeclarationV3.
Users would typically use declare_v3 on an Account instead of
directly calling this method.
Sourcepub fn nonce(self, nonce: Felt) -> DeclarationV3<'a, A>
pub fn nonce(self, nonce: Felt) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 with the nonce.
Sourcepub fn l1_gas(self, l1_gas: u64) -> DeclarationV3<'a, A>
pub fn l1_gas(self, l1_gas: u64) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 with the l1_gas.
Sourcepub fn l1_gas_price(self, l1_gas_price: u128) -> DeclarationV3<'a, A>
pub fn l1_gas_price(self, l1_gas_price: u128) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 with the l1_gas_price.
Sourcepub fn l2_gas(self, l2_gas: u64) -> DeclarationV3<'a, A>
pub fn l2_gas(self, l2_gas: u64) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 with the l2_gas.
Sourcepub fn l2_gas_price(self, l2_gas_price: u128) -> DeclarationV3<'a, A>
pub fn l2_gas_price(self, l2_gas_price: u128) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 with the l2_gas_price.
Sourcepub fn l1_data_gas(self, l1_data_gas: u64) -> DeclarationV3<'a, A>
pub fn l1_data_gas(self, l1_data_gas: u64) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 with the l1_data_gas.
Sourcepub fn l1_data_gas_price(self, l1_data_gas_price: u128) -> DeclarationV3<'a, A>
pub fn l1_data_gas_price(self, l1_data_gas_price: u128) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 with the l1_data_gas_price.
Sourcepub fn gas_estimate_multiplier(
self,
gas_estimate_multiplier: f64,
) -> DeclarationV3<'a, A>
pub fn gas_estimate_multiplier( self, gas_estimate_multiplier: f64, ) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 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,
) -> DeclarationV3<'a, A>
pub fn gas_price_estimate_multiplier( self, gas_price_estimate_multiplier: f64, ) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 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) -> DeclarationV3<'a, A>
pub fn tip(self, tip: u64) -> DeclarationV3<'a, A>
Returns a new DeclarationV3 with the tip.
Sourcepub fn prepared(self) -> Result<PreparedDeclarationV3<'a, A>, NotPreparedError>
pub fn prepared(self) -> Result<PreparedDeclarationV3<'a, A>, NotPreparedError>
Calling this function after manually specifying all optional fields turns DeclarationV3
into PreparedDeclarationV3. Returns Err if any field is None.
Source§impl<'a, A> DeclarationV3<'a, A>where
A: ConnectedAccount + Sync,
impl<'a, A> DeclarationV3<'a, A>where
A: ConnectedAccount + Sync,
Sourcepub async fn estimate_fee(
&self,
) -> Result<FeeEstimate, AccountError<<A as Account>::SignError>>
pub async fn estimate_fee( &self, ) -> Result<FeeEstimate, AccountError<<A as Account>::SignError>>
Estimates transaction fees from a Provider.
Sourcepub async fn simulate(
&self,
skip_validate: bool,
skip_fee_charge: bool,
) -> Result<SimulatedTransaction, AccountError<<A as Account>::SignError>>
pub async fn simulate( &self, skip_validate: bool, skip_fee_charge: bool, ) -> Result<SimulatedTransaction, AccountError<<A as Account>::SignError>>
Simulates the transaction from a Provider. Transaction validation and fee transfer can
be skipped.
Sourcepub async fn send(
&self,
) -> Result<DeclareTransactionResult, AccountError<<A as Account>::SignError>>
pub async fn send( &self, ) -> Result<DeclareTransactionResult, AccountError<<A as Account>::SignError>>
Signs and broadcasts the transaction to the network.