From 078dd5be5ed3f8545a5d3845767a0f307a93b878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Narzis?= <78718413+lean-apple@users.noreply.github.com> Date: Mon, 2 Jun 2025 07:15:48 +0200 Subject: [PATCH 1/4] refactor: replace generics with Node types for OpExecutorBuilder --- crates/optimism/node/src/node.rs | 35 +++++++++----------------------- 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/crates/optimism/node/src/node.rs b/crates/optimism/node/src/node.rs index 3fa32ebd420..ace55d3fe1c 100644 --- a/crates/optimism/node/src/node.rs +++ b/crates/optimism/node/src/node.rs @@ -556,35 +556,20 @@ impl OpAddOnsBuilder { } /// A regular optimism evm and executor builder. -#[derive(Debug, Copy)] +#[derive(Debug, Copy, Clone, Default)] #[non_exhaustive] -pub struct OpExecutorBuilder { - /// Marker for chain spec type. - _cs: PhantomData, - /// Marker for primitives type. - _p: PhantomData, -} - -impl Clone for OpExecutorBuilder { - fn clone(&self) -> Self { - Self::default() - } -} - -impl Default for OpExecutorBuilder { - fn default() -> Self { - Self { _cs: PhantomData, _p: PhantomData } - } -} +pub struct OpExecutorBuilder; -impl ExecutorBuilder for OpExecutorBuilder +impl ExecutorBuilder for OpExecutorBuilder where - Node: FullNodeTypes>, - ChainSpec: EthChainSpec + OpHardforks, - Primitives: NodePrimitives, - OpEvmConfig: ConfigureEvm + 'static, + Node: FullNodeTypes, + ::ChainSpec: EthChainSpec + OpHardforks, + ::Primitives: NodePrimitives, + OpEvmConfig<::ChainSpec, ::Primitives>: + ConfigureEvm::Primitives> + 'static, { - type EVM = OpEvmConfig; + type EVM = + OpEvmConfig<::ChainSpec, ::Primitives>; async fn build_evm(self, ctx: &BuilderContext) -> eyre::Result { let evm_config = OpEvmConfig::new(ctx.chain_spec(), OpRethReceiptBuilder::default()); From 2b80128dea8063ca612857a7b94a9f7305e0d117 Mon Sep 17 00:00:00 2001 From: Arsenii Kulikov Date: Mon, 2 Jun 2025 15:58:28 +0400 Subject: [PATCH 2/4] Update crates/optimism/node/src/node.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Léa Narzis <78718413+lean-apple@users.noreply.github.com> --- crates/optimism/node/src/node.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/optimism/node/src/node.rs b/crates/optimism/node/src/node.rs index ace55d3fe1c..f6ca84e8bff 100644 --- a/crates/optimism/node/src/node.rs +++ b/crates/optimism/node/src/node.rs @@ -563,7 +563,7 @@ pub struct OpExecutorBuilder; impl ExecutorBuilder for OpExecutorBuilder where Node: FullNodeTypes, - ::ChainSpec: EthChainSpec + OpHardforks, + ::ChainSpec: OpHardforks, ::Primitives: NodePrimitives, OpEvmConfig<::ChainSpec, ::Primitives>: ConfigureEvm::Primitives> + 'static, From 7fa7c528466d7db428df4bbad2f0f5070307d578 Mon Sep 17 00:00:00 2001 From: Arsenii Kulikov Date: Mon, 2 Jun 2025 16:02:33 +0400 Subject: [PATCH 3/4] simplify bounds --- crates/optimism/node/src/node.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/crates/optimism/node/src/node.rs b/crates/optimism/node/src/node.rs index f6ca84e8bff..957b460377a 100644 --- a/crates/optimism/node/src/node.rs +++ b/crates/optimism/node/src/node.rs @@ -562,11 +562,7 @@ pub struct OpExecutorBuilder; impl ExecutorBuilder for OpExecutorBuilder where - Node: FullNodeTypes, - ::ChainSpec: OpHardforks, - ::Primitives: NodePrimitives, - OpEvmConfig<::ChainSpec, ::Primitives>: - ConfigureEvm::Primitives> + 'static, + Node: FullNodeTypes>, { type EVM = OpEvmConfig<::ChainSpec, ::Primitives>; From 9007d0e9cfa8b99e91b74ed230715efa7619034d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Narzis?= <78718413+lean-apple@users.noreply.github.com> Date: Mon, 2 Jun 2025 15:15:03 +0200 Subject: [PATCH 4/4] chore: fmt --- crates/optimism/node/src/node.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crates/optimism/node/src/node.rs b/crates/optimism/node/src/node.rs index f4b6253a7b9..ed74a56b94f 100644 --- a/crates/optimism/node/src/node.rs +++ b/crates/optimism/node/src/node.rs @@ -11,8 +11,7 @@ use op_alloy_rpc_types_engine::OpPayloadAttributes; use reth_chainspec::{ChainSpecProvider, EthChainSpec, Hardforks}; use reth_evm::{ConfigureEvm, EvmFactory, EvmFactoryFor}; use reth_network::{ - types::BasicNetworkPrimitives, - NetworkConfig, NetworkHandle, NetworkManager, NetworkPrimitives, + types::BasicNetworkPrimitives, NetworkConfig, NetworkHandle, NetworkManager, NetworkPrimitives, PeersInfo, }; use reth_node_api::{