pub struct EthEvmConfig<C = ChainSpec, F = RethEvmFactory>where
F: EvmFactory,{
pub executor_factory: EthBlockExecutorFactory<RethReceiptBuilder, C, F>,
pub block_assembler: EthBlockAssembler<C>,
pub sender_recovery_cache: Option<SenderRecoveryCache>,
}Available on crate feature
evm only.Expand description
Ethereum-related EVM configuration.
Fields§
§executor_factory: EthBlockExecutorFactory<RethReceiptBuilder, C, F>Inner Ethereum block executor factory.
block_assembler: EthBlockAssembler<C>Ethereum block assembler.
sender_recovery_cache: Option<SenderRecoveryCache>Cache of recovered transaction senders, if enabled.
Implementations§
Source§impl EthEvmConfig
impl EthEvmConfig
Sourcepub fn mainnet() -> EthEvmConfig
pub fn mainnet() -> EthEvmConfig
Creates a new Ethereum EVM configuration for Ethereum mainnet.
Source§impl<ChainSpec> EthEvmConfig<ChainSpec>
impl<ChainSpec> EthEvmConfig<ChainSpec>
Sourcepub fn new(chain_spec: Arc<ChainSpec>) -> EthEvmConfig<ChainSpec>
pub fn new(chain_spec: Arc<ChainSpec>) -> EthEvmConfig<ChainSpec>
Creates a new Ethereum EVM configuration with the given chain spec.
Sourcepub fn ethereum(chain_spec: Arc<ChainSpec>) -> EthEvmConfig<ChainSpec>
pub fn ethereum(chain_spec: Arc<ChainSpec>) -> EthEvmConfig<ChainSpec>
Creates a new Ethereum EVM configuration.
Source§impl<ChainSpec, F> EthEvmConfig<ChainSpec, F>where
F: EvmFactory,
impl<ChainSpec, F> EthEvmConfig<ChainSpec, F>where
F: EvmFactory,
Sourcepub fn new_with_evm_factory(
chain_spec: Arc<ChainSpec>,
evm_factory: F,
) -> EthEvmConfig<ChainSpec, F>
pub fn new_with_evm_factory( chain_spec: Arc<ChainSpec>, evm_factory: F, ) -> EthEvmConfig<ChainSpec, F>
Creates a new Ethereum EVM configuration with the given EVM factory configuration.
Sourcepub const fn chain_spec(&self) -> &Arc<ChainSpec> ⓘ
pub const fn chain_spec(&self) -> &Arc<ChainSpec> ⓘ
Returns the chain spec associated with this configuration.
Sourcepub fn with_sender_recovery_cache(
self,
cache: SenderRecoveryCache,
) -> EthEvmConfig<ChainSpec, F>
pub fn with_sender_recovery_cache( self, cache: SenderRecoveryCache, ) -> EthEvmConfig<ChainSpec, F>
Uses the provided sender recovery cache.
Trait Implementations§
Source§impl<C, F> Clone for EthEvmConfig<C, F>
impl<C, F> Clone for EthEvmConfig<C, F>
Source§fn clone(&self) -> EthEvmConfig<C, F>
fn clone(&self) -> EthEvmConfig<C, F>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<ChainSpec, EvmF> ConfigureEngineEvm<ExecutionData> for EthEvmConfig<ChainSpec, EvmF>where
ChainSpec: EthChainSpec<Header = Header> + EthereumHardforks + Hardforks + 'static,
EvmF: EvmFactory,
<EvmF as EvmFactory>::Types: EvmTypes<Tx = TxEnvelope>,
Available on crate feature std only.
impl<ChainSpec, EvmF> ConfigureEngineEvm<ExecutionData> for EthEvmConfig<ChainSpec, EvmF>where
ChainSpec: EthChainSpec<Header = Header> + EthereumHardforks + Hardforks + 'static,
EvmF: EvmFactory,
<EvmF as EvmFactory>::Types: EvmTypes<Tx = TxEnvelope>,
Available on crate feature
std only.Source§fn evm_env_for_payload(
&self,
payload: &ExecutionData,
) -> Result<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
fn evm_env_for_payload( &self, payload: &ExecutionData, ) -> Result<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
Returns an
crate::EvmEnv for the given payload.Source§fn context_for_payload<'a>(
&self,
payload: &'a ExecutionData,
) -> Result<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
fn context_for_payload<'a>( &self, payload: &'a ExecutionData, ) -> Result<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
Returns an
ExecutionCtxFor for the given payload.Source§fn tx_iterator_for_payload(
&self,
payload: &ExecutionData,
) -> Result<impl ExecutableTxIterator<EthEvmConfig<ChainSpec, EvmF>>, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
fn tx_iterator_for_payload( &self, payload: &ExecutionData, ) -> Result<impl ExecutableTxIterator<EthEvmConfig<ChainSpec, EvmF>>, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
Returns an
ExecutableTxIterator for the given payload.Source§impl<ChainSpec, EvmF> ConfigureEvm for EthEvmConfig<ChainSpec, EvmF>where
ChainSpec: EthChainSpec<Header = Header> + EthereumHardforks + Hardforks + 'static,
EvmF: EvmFactory,
<<EvmF as EvmFactory>::Types as EvmTypesHost>::Tx: Typed2718 + FromTxWithEncoded<EthereumTxEnvelope<TxEip4844>> + TransactionEnvMut,
impl<ChainSpec, EvmF> ConfigureEvm for EthEvmConfig<ChainSpec, EvmF>where
ChainSpec: EthChainSpec<Header = Header> + EthereumHardforks + Hardforks + 'static,
EvmF: EvmFactory,
<<EvmF as EvmFactory>::Types as EvmTypesHost>::Tx: Typed2718 + FromTxWithEncoded<EthereumTxEnvelope<TxEip4844>> + TransactionEnvMut,
Source§type Primitives = EthPrimitives
type Primitives = EthPrimitives
The primitives type used by the EVM.
Source§type Error = !
type Error = !
The error type that is returned by
Self::next_evm_env.Source§type NextBlockEnvCtx = NextBlockEnvAttributes
type NextBlockEnvCtx = NextBlockEnvAttributes
Context required for configuring next block environment. Read more
Source§type BlockExecutorFactory = EthBlockExecutorFactory<RethReceiptBuilder, ChainSpec, EvmF>
type BlockExecutorFactory = EthBlockExecutorFactory<RethReceiptBuilder, ChainSpec, EvmF>
Configured
BlockExecutorFactory, contains the EVM factory internally.Source§type BlockAssembler = EthBlockAssembler<ChainSpec>
type BlockAssembler = EthBlockAssembler<ChainSpec>
Available on crate feature
std only.A type that knows how to build a block.
Source§fn block_executor_factory(
&self,
) -> &<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory
fn block_executor_factory( &self, ) -> &<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory
Available on crate feature
std only.Returns reference to the configured
BlockExecutorFactory.Source§fn block_assembler(
&self,
) -> &<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockAssembler
fn block_assembler( &self, ) -> &<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockAssembler
Available on crate feature
std only.Returns reference to the configured
BlockAssembler.Source§fn with_jit_support_enabled(
self,
enabled: bool,
) -> EthEvmConfig<ChainSpec, EvmF>where
EthEvmConfig<ChainSpec, EvmF>: Sized,
fn with_jit_support_enabled(
self,
enabled: bool,
) -> EthEvmConfig<ChainSpec, EvmF>where
EthEvmConfig<ChainSpec, EvmF>: Sized,
Returns a config with JIT support enabled for subsequently created EVMs, if supported. Read more
Source§fn evm_with_precompile_cache<'a, DB>(
&self,
db: DB,
evm_env: <<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
cache_map: PrecompileCacheMap<<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes as EvmTypesHost>::SpecId>,
metrics_enabled: bool,
) -> <<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>where
DB: Database + 'a,
fn evm_with_precompile_cache<'a, DB>(
&self,
db: DB,
evm_env: <<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
cache_map: PrecompileCacheMap<<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes as EvmTypesHost>::SpecId>,
metrics_enabled: bool,
) -> <<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>where
DB: Database + 'a,
Available on crate feature
std only.Creates an EVM whose precompile results are cached in
cache_map. Read moreSource§fn jit_backend(&self) -> Option<&dyn JitBackend>
fn jit_backend(&self) -> Option<&dyn JitBackend>
Returns the JIT backend, if supported.
Source§fn evm_env(
&self,
header: &Header,
) -> Result<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
fn evm_env( &self, header: &Header, ) -> Result<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
Creates a new
EvmEnv for the given header.Source§fn next_evm_env(
&self,
parent: &Header,
attributes: &NextBlockEnvAttributes,
) -> Result<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
fn next_evm_env( &self, parent: &Header, attributes: &NextBlockEnvAttributes, ) -> Result<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
Source§fn context_for_block<'a>(
&self,
block: &'a SealedBlock<Block<EthereumTxEnvelope<TxEip4844>>>,
) -> Result<EthBlockExecutionCtx<'a>, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>where
EthEvmConfig<ChainSpec, EvmF>: 'a,
fn context_for_block<'a>(
&self,
block: &'a SealedBlock<Block<EthereumTxEnvelope<TxEip4844>>>,
) -> Result<EthBlockExecutionCtx<'a>, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>where
EthEvmConfig<ChainSpec, EvmF>: 'a,
Returns the configured
BlockExecutorFactory::ExecutionCtx for a given block.Source§fn context_for_next_block(
&self,
parent: &SealedHeader,
attributes: <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::NextBlockEnvCtx,
) -> Result<EthBlockExecutionCtx<'_>, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
fn context_for_next_block( &self, parent: &SealedHeader, attributes: <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::NextBlockEnvCtx, ) -> Result<EthBlockExecutionCtx<'_>, <EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::Error>
Returns the configured
BlockExecutorFactory::ExecutionCtx for parent + 1
block.Source§fn reuses_prewarm_results(&self) -> bool
fn reuses_prewarm_results(&self) -> bool
Returns whether engine validation may commit transaction results from speculative prewarm
execution instead of executing the transactions again. Read more
Source§fn prewarm_tx_result<'a>(
&self,
tx: &EthereumTxEnvelope<TxEip4844>,
result: TxResultWithState<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes>,
) -> Option<<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a> as BlockExecutor>::TransactionResultWithState>where
EthEvmConfig<ChainSpec, EvmF>: 'a,
fn prewarm_tx_result<'a>(
&self,
tx: &EthereumTxEnvelope<TxEip4844>,
result: TxResultWithState<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes>,
) -> Option<<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a> as BlockExecutor>::TransactionResultWithState>where
EthEvmConfig<ChainSpec, EvmF>: 'a,
Available on crate feature
std only.Wraps a speculative prewarm execution result of
tx into the result consumed by
BlockExecutor::commit_transaction. Read moreSource§fn speculative_next_evm_env(
&self,
parent: &SealedHeader,
beneficiary: Address,
) -> Option<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv>
fn speculative_next_evm_env( &self, parent: &SealedHeader, beneficiary: Address, ) -> Option<<<EthEvmConfig<ChainSpec, EvmF> as ConfigureEvm>::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv>
Returns the predicted environment of the block after
parent with beneficiary, in which
engine validation speculatively executes pool transactions before the block arrives. Read moreSource§fn tx_env(
&self,
transaction: impl IntoTxEnv<Recovered<<<Self::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes as EvmTypesHost>::Tx>>,
) -> Recovered<<<Self::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes as EvmTypesHost>::Tx>
fn tx_env( &self, transaction: impl IntoTxEnv<Recovered<<<Self::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes as EvmTypesHost>::Tx>>, ) -> Recovered<<<Self::BlockExecutorFactory as BlockExecutorFactory>::EvmTypes as EvmTypesHost>::Tx>
Returns a transaction environment from a transaction.
Source§fn evm_factory(
&self,
) -> &<Self::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory
fn evm_factory( &self, ) -> &<Self::BlockExecutorFactory as BlockExecutorFactory>::EvmFactory
Available on crate feature
std only.Provides a reference to the configured EVM factory state.
Source§fn with_jit_support(self) -> Selfwhere
Self: Sized,
fn with_jit_support(self) -> Selfwhere
Self: Sized,
Returns a config with local JIT support enabled for subsequently created EVMs, if supported.
Source§fn executor<DB>(
&self,
db: DB,
) -> impl Executor<DB, Primitives = Self::Primitives, Error = BlockExecutionError>where
DB: Database,
fn executor<DB>(
&self,
db: DB,
) -> impl Executor<DB, Primitives = Self::Primitives, Error = BlockExecutionError>where
DB: Database,
Source§fn batch_executor<DB>(
&self,
db: DB,
) -> impl Executor<DB, Primitives = Self::Primitives, Error = BlockExecutionError>where
DB: Database,
fn batch_executor<DB>(
&self,
db: DB,
) -> impl Executor<DB, Primitives = Self::Primitives, Error = BlockExecutionError>where
DB: Database,
Returns a new
BasicBlockExecutor.Source§fn executor_for_block<'a, DB>(
&'a self,
db: DB,
block: &'a SealedBlock<<Self::Primitives as NodePrimitives>::Block>,
) -> Result<<Self::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a>, Self::Error>where
Self: 'a,
DB: Database + 'a,
fn executor_for_block<'a, DB>(
&'a self,
db: DB,
block: &'a SealedBlock<<Self::Primitives as NodePrimitives>::Block>,
) -> Result<<Self::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a>, Self::Error>where
Self: 'a,
DB: Database + 'a,
Available on crate feature
std only.Creates a block executor for the given block.
Source§fn evm_with_env<'a, DB>(
&self,
db: DB,
evm_env: <Self::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
) -> <Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>where
DB: Database + 'a,
fn evm_with_env<'a, DB>(
&self,
db: DB,
evm_env: <Self::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
) -> <Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>where
DB: Database + 'a,
Available on crate feature
std only.Creates an EVM instance for single-transaction execution with the configured environment.
Source§fn evm_for_block<'a, DB>(
&self,
db: DB,
header: &<Self::Primitives as NodePrimitives>::BlockHeader,
) -> Result<<Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>, Self::Error>where
DB: Database + 'a,
fn evm_for_block<'a, DB>(
&self,
db: DB,
header: &<Self::Primitives as NodePrimitives>::BlockHeader,
) -> Result<<Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>, Self::Error>where
DB: Database + 'a,
Available on crate feature
std only.Creates an EVM instance for the given block.
Source§fn create_block_builder<'a>(
&'a self,
evm: <Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>,
evm_env: <Self::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
parent: &'a SealedHeader<<Self::Primitives as NodePrimitives>::BlockHeader>,
ctx: <Self::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>,
) -> impl BlockBuilder<Primitives = Self::Primitives, Executor = <Self::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a>>where
Self: 'a,
fn create_block_builder<'a>(
&'a self,
evm: <Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>,
evm_env: <Self::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
parent: &'a SealedHeader<<Self::Primitives as NodePrimitives>::BlockHeader>,
ctx: <Self::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>,
) -> impl BlockBuilder<Primitives = Self::Primitives, Executor = <Self::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a>>where
Self: 'a,
Available on crate feature
std only.Creates a
BlockBuilder. Should be used when building a new block. Read moreSource§fn create_block_builder_with<'a, E>(
&'a self,
evm: <Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>,
evm_env: <Self::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
parent: &'a SealedHeader<<Self::Primitives as NodePrimitives>::BlockHeader>,
ctx: <Self::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>,
f: impl FnOnce(<Self::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a>) -> E,
) -> impl BlockBuilder<Primitives = Self::Primitives, Executor = E>where
Self: 'a,
E: BlockExecutor<Evm = <Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>, Transaction = <Self::Primitives as NodePrimitives>::SignedTx, Receipt = <Self::Primitives as NodePrimitives>::Receipt>,
fn create_block_builder_with<'a, E>(
&'a self,
evm: <Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>,
evm_env: <Self::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
parent: &'a SealedHeader<<Self::Primitives as NodePrimitives>::BlockHeader>,
ctx: <Self::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>,
f: impl FnOnce(<Self::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a>) -> E,
) -> impl BlockBuilder<Primitives = Self::Primitives, Executor = E>where
Self: 'a,
E: BlockExecutor<Evm = <Self::BlockExecutorFactory as BlockExecutorFactory>::Evm<'a>, Transaction = <Self::Primitives as NodePrimitives>::SignedTx, Receipt = <Self::Primitives as NodePrimitives>::Receipt>,
Available on crate feature
std only.Creates a
BlockBuilder like ConfigureEvm::create_block_builder, with a customized
executor.Source§fn builder_for_next_block<'a, DB>(
&'a self,
db: DB,
parent: &'a SealedHeader<<Self::Primitives as NodePrimitives>::BlockHeader>,
attributes: Self::NextBlockEnvCtx,
) -> Result<impl BlockBuilder<Primitives = Self::Primitives, Executor = <Self::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a>>, Self::Error>where
Self: 'a,
DB: Database + 'a,
fn builder_for_next_block<'a, DB>(
&'a self,
db: DB,
parent: &'a SealedHeader<<Self::Primitives as NodePrimitives>::BlockHeader>,
attributes: Self::NextBlockEnvCtx,
) -> Result<impl BlockBuilder<Primitives = Self::Primitives, Executor = <Self::BlockExecutorFactory as BlockExecutorFactory>::Executor<'a>>, Self::Error>where
Self: 'a,
DB: Database + 'a,
Available on crate feature
std only.Creates a
BlockBuilder for building of a new block. This is a helper to invoke
ConfigureEvm::create_block_builder. Read moreSource§fn pre_block_state_changes<'a, DB>(
&'a self,
db: DB,
evm_env: <Self::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
ctx: <Self::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>,
) -> Result<BundleState, Box<dyn Error + Sync + Send>>where
Self: 'a,
DB: DynDatabase + 'a,
fn pre_block_state_changes<'a, DB>(
&'a self,
db: DB,
evm_env: <Self::BlockExecutorFactory as BlockExecutorFactory>::EvmEnv,
ctx: <Self::BlockExecutorFactory as BlockExecutorFactory>::ExecutionCtx<'a>,
) -> Result<BundleState, Box<dyn Error + Sync + Send>>where
Self: 'a,
DB: DynDatabase + 'a,
Available on crate feature
std only.Applies block-level state changes required before transaction execution using the configured
block executor.
Auto Trait Implementations§
impl<C = ChainSpec, F = RethEvmFactory> !RefUnwindSafe for EthEvmConfig<C, F>
impl<C = ChainSpec, F = RethEvmFactory> !UnwindSafe for EthEvmConfig<C, F>
impl<C, F> Freeze for EthEvmConfig<C, F>
impl<C, F> Send for EthEvmConfig<C, F>
impl<C, F> Sync for EthEvmConfig<C, F>
impl<C, F> Unpin for EthEvmConfig<C, F>
impl<C, F> UnsafeUnpin for EthEvmConfig<C, F>where
EthBlockExecutorFactory<RethReceiptBuilder, C, F>: UnsafeUnpin,
EthBlockAssembler<C>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].impl<T> MaybeDebug for Twhere
T: Debug,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.