AccountContract

A trait for account contracts that support class declarations (only __validate__ and __execute__ are mandatory for an account). This trait assumes that the calldata for invoke transactions is Array<Call>. This is the network standard following SNIP6. It is not enforced by StarkNet, but deviating from the standard interface may lead to incompatibility with standard tooling.

Fully qualified path: core::starknet::account::AccountContract

pub trait AccountContract<TContractState>

Trait functions

validate_declare

An entry point that is called to check if the account is willing to pay for the declaration of the class with the given hash. The entry point should return core::starknet::VALIDATED if the account is willing to pay for the declaration.

Fully qualified path: core::starknet::account::AccountContract::__validate_declare__

fn __validate_declare__(self: @TContractState, class_hash: felt252) -> felt252

validate

An entry point that is called to check if the account is willing to pay for executing a given set of calls. The entry point should return core::starknet::VALIDATED if the account is willing to pay for the execution, in which case __execute__ will be called on the same set of calls.

Fully qualified path: core::starknet::account::AccountContract::__validate__

fn __validate__(ref self: TContractState, calls: Array<Call>) -> felt252

execute

An entry point that is called to execute a given set of calls. This entry point should block the deprecated v0 invoke transactions as they do not go through the __validate__ entry point.

Fully qualified path: core::starknet::account::AccountContract::__execute__

fn __execute__(ref self: TContractState, calls: Array<Call>) -> Array<Span<felt252>>