Trait ExecutorBuilder

Source
pub trait ExecutorBuilder<Node>: Send
where Node: FullNodeTypes,
{ type EVM: ConfigureEvm<Primitives = <<Node as FullNodeTypes>::Types as NodeTypes>::Primitives> + 'static; type Executor: BlockExecutorProvider<Primitives = <<Node as FullNodeTypes>::Types as NodeTypes>::Primitives>; // Required method fn build_evm( self, ctx: &BuilderContext<Node>, ) -> impl Future<Output = Result<(Self::EVM, Self::Executor), Report>> + Send; }
Expand description

A type that knows how to build the executor types.

Required Associated Types§

Source

type EVM: ConfigureEvm<Primitives = <<Node as FullNodeTypes>::Types as NodeTypes>::Primitives> + 'static

The EVM config to use.

This provides the node with the necessary configuration to configure an EVM.

Source

type Executor: BlockExecutorProvider<Primitives = <<Node as FullNodeTypes>::Types as NodeTypes>::Primitives>

The type that knows how to execute blocks.

Required Methods§

Source

fn build_evm( self, ctx: &BuilderContext<Node>, ) -> impl Future<Output = Result<(Self::EVM, Self::Executor), Report>> + Send

Creates the EVM config.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl<Types, Node> ExecutorBuilder<Node> for EthereumExecutorBuilder
where Types: NodeTypesWithEngine<ChainSpec = ChainSpec, Primitives = EthPrimitives>, Node: FullNodeTypes<Types = Types>,

§

type EVM = EthEvmConfig

§

type Executor = BasicBlockExecutorProvider<EthEvmConfig>

§

async fn build_evm( self, ctx: &BuilderContext<Node>, ) -> Result<(<EthereumExecutorBuilder as ExecutorBuilder<Node>>::EVM, <EthereumExecutorBuilder as ExecutorBuilder<Node>>::Executor), Report>

Implementors§

Source§

impl<Node, F, Fut, EVM, Executor> ExecutorBuilder<Node> for F
where Node: FullNodeTypes, EVM: ConfigureEvm<Primitives = <<Node as FullNodeTypes>::Types as NodeTypes>::Primitives> + 'static, Executor: BlockExecutorProvider<Primitives = <<Node as FullNodeTypes>::Types as NodeTypes>::Primitives>, F: FnOnce(&BuilderContext<Node>) -> Fut + Send, Fut: Future<Output = Result<(EVM, Executor), Report>> + Send,

Source§

type EVM = EVM

Source§

type Executor = Executor

impl<Node> ExecutorBuilder<Node> for TestExecutorBuilder
where Node: FullNodeTypes<Types: NodeTypes<ChainSpec = ChainSpec, Primitives = EthPrimitives>>,

impl<Node> ExecutorBuilder<Node> for OpExecutorBuilder
where Node: FullNodeTypes<Types: NodeTypes<ChainSpec = OpChainSpec, Primitives = OpPrimitives>>,