Struct evm::executor::stack::StackExecutor [−][src]
pub struct StackExecutor<'config, 'precompiles, S, P> { /* fields omitted */ }
Expand description
Stack-based executor.
Implementations
impl<'config, 'precompiles, S: StackState<'config>, P: PrecompileSet> StackExecutor<'config, 'precompiles, S, P>
impl<'config, 'precompiles, S: StackState<'config>, P: PrecompileSet> StackExecutor<'config, 'precompiles, S, P>
Return a reference to the precompile set.
pub fn new_with_precompiles(
state: S,
config: &'config Config,
precompile_set: &'precompiles P
) -> Self
pub fn new_with_precompiles(
state: S,
config: &'config Config,
precompile_set: &'precompiles P
) -> Self
Create a new stack-based executor with given precompiles.
Create a substate executor from the current executor.
Exit a substate. Panic if it results an empty substate stack.
Execute the runtime until it returns.
Execute a CREATE
transaction.
Execute a CREATE2
transaction.
Execute a CALL
transaction with a given caller, address, value and
gas limit and data.
Takes in an additional access_list
parameter for EIP-2930 which was
introduced in the Ethereum Berlin hard fork. If you do not wish to use
this functionality, just pass in an empty vector.
Get fee needed for the current executor, given the price.
Get the create address from given scheme.
Trait Implementations
impl<'config, 'precompiles, S: StackState<'config>, P: PrecompileSet> Handler for StackExecutor<'config, 'precompiles, S, P>
impl<'config, 'precompiles, S: StackState<'config>, P: PrecompileSet> Handler for StackExecutor<'config, 'precompiles, S, P>
type CreateInterrupt = Infallible
type CreateInterrupt = Infallible
Type of CREATE
interrupt.
type CreateFeedback = Infallible
type CreateFeedback = Infallible
Feedback value for CREATE
interrupt.
type CallInterrupt = Infallible
type CallInterrupt = Infallible
Type of CALL
interrupt.
type CallFeedback = Infallible
type CallFeedback = Infallible
Feedback value of CALL
interrupt.
Get original storage value of address at index.
Checks if the address or (address, index) pair has been previously accessed
(or set in accessed_addresses
/ accessed_storage_keys
via an access list
transaction).
References: Read more
Get environmental block hash.
Get environmental block number.
Get environmental coinbase.
Get environmental block timestamp.
Get environmental block difficulty.
Get environmental gas limit.
Environmental block base fee.
Set storage value of address at index.
Create a log owned by address with given topics and data.
Mark an address to be deleted, with funds transferred to target.
Invoke a create operation.
Invoke a call operation.
Pre-validation step for the runtime.
Feed in create feedback.
Feed in call feedback.