From 29eeb78ad0587d32a202455c44f65e52dedbc948 Mon Sep 17 00:00:00 2001 From: Federico Gimenez Date: Thu, 22 May 2025 21:10:58 +0200 Subject: [PATCH] feat: relax OpExecutorBuilder type constraints (#16423) --- crates/optimism/node/src/node.rs | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/crates/optimism/node/src/node.rs b/crates/optimism/node/src/node.rs index 60316e3061..f666b96769 100644 --- a/crates/optimism/node/src/node.rs +++ b/crates/optimism/node/src/node.rs @@ -30,7 +30,7 @@ use reth_node_builder::{ }; use reth_optimism_chainspec::OpChainSpec; use reth_optimism_consensus::OpBeaconConsensus; -use reth_optimism_evm::{OpEvmConfig, OpNextBlockEnvAttributes}; +use reth_optimism_evm::{OpEvmConfig, OpNextBlockEnvAttributes, OpRethReceiptBuilder}; use reth_optimism_forks::OpHardforks; use reth_optimism_payload_builder::{ builder::OpPayloadTransactions, @@ -473,18 +473,32 @@ impl OpAddOnsBuilder { } /// A regular optimism evm and executor builder. -#[derive(Debug, Default, Clone, Copy)] +#[derive(Debug, Clone, Copy)] #[non_exhaustive] -pub struct OpExecutorBuilder; +pub struct OpExecutorBuilder { + /// Marker for chain spec type. + _cs: PhantomData, + /// Marker for primitives type. + _p: PhantomData, +} -impl ExecutorBuilder for OpExecutorBuilder +impl Default for OpExecutorBuilder { + fn default() -> Self { + Self { _cs: PhantomData, _p: PhantomData } + } +} + +impl ExecutorBuilder for OpExecutorBuilder where - Node: FullNodeTypes>, + Node: FullNodeTypes>, + ChainSpec: EthChainSpec + OpHardforks, + Primitives: NodePrimitives, + OpEvmConfig: ConfigureEvm + 'static, { - type EVM = OpEvmConfig; + type EVM = OpEvmConfig; async fn build_evm(self, ctx: &BuilderContext) -> eyre::Result { - let evm_config = OpEvmConfig::optimism(ctx.chain_spec()); + let evm_config = OpEvmConfig::new(ctx.chain_spec(), OpRethReceiptBuilder::default()); Ok(evm_config) }