use std::sync::Arc; use reth_node_builder::{ components::ConsensusBuilder, BuilderContext, FullNodeTypes, NodePrimitives, NodeTypes, }; use reth_op::DepositReceipt; use reth_optimism_consensus::OpBeaconConsensus; use reth_optimism_forks::OpHardforks; #[derive(Debug, Default, Clone)] pub struct CustomConsensusBuilder; impl ConsensusBuilder for CustomConsensusBuilder where Node: FullNodeTypes< Types: NodeTypes< ChainSpec: OpHardforks, Primitives: NodePrimitives, >, >, { type Consensus = Arc::ChainSpec>>; async fn build_consensus(self, ctx: &BuilderContext) -> eyre::Result { Ok(Arc::new(OpBeaconConsensus::new(ctx.chain_spec()))) } }