arb_node/
addons.rs

1//! Arbitrum RPC add-ons and builder types.
2
3use arb_payload::ArbEngineTypes;
4use arb_primitives::ArbPrimitives;
5use reth_chainspec::ChainSpec;
6use reth_node_builder::{
7    rpc::PayloadValidatorBuilder, AddOnsContext, FullNodeComponents, NodeTypes,
8};
9
10use crate::validator::ArbPayloadValidator;
11
12/// Builder for the Arbitrum payload validator.
13#[derive(Debug, Default, Clone, Copy)]
14pub struct ArbPayloadValidatorBuilder;
15
16impl<N> PayloadValidatorBuilder<N> for ArbPayloadValidatorBuilder
17where
18    N: FullNodeComponents<
19        Types: NodeTypes<
20            ChainSpec = ChainSpec,
21            Primitives = ArbPrimitives,
22            Payload = ArbEngineTypes,
23        >,
24    >,
25{
26    type Validator = ArbPayloadValidator;
27
28    async fn build(self, ctx: &AddOnsContext<'_, N>) -> eyre::Result<Self::Validator> {
29        Ok(ArbPayloadValidator::new(ctx.config.chain.clone()))
30    }
31}