diff --git a/bin/reth/src/cli/ext.rs b/bin/reth/src/cli/ext.rs index 9f79b7dbc73..119e3906731 100644 --- a/bin/reth/src/cli/ext.rs +++ b/bin/reth/src/cli/ext.rs @@ -115,11 +115,11 @@ pub trait RethNodeCommandConfig: fmt::Debug { // The default payload builder is implemented on the unit type. #[cfg(not(feature = "optimism"))] #[allow(clippy::let_unit_value)] - let payload_builder = (); + let payload_builder = reth_basic_payload_builder::EthereumPayloadBuilder::default(); // Optimism's payload builder is implemented on the OptimismPayloadBuilder type. #[cfg(feature = "optimism")] - let payload_builder = reth_basic_payload_builder::OptimismPayloadBuilder; + let payload_builder = reth_basic_payload_builder::OptimismPayloadBuilder::default(); let payload_generator = BasicPayloadJobGenerator::with_builder( components.provider(), diff --git a/crates/payload/basic/src/lib.rs b/crates/payload/basic/src/lib.rs index ae244653b98..c382f233ab0 100644 --- a/crates/payload/basic/src/lib.rs +++ b/crates/payload/basic/src/lib.rs @@ -62,9 +62,14 @@ mod optimism; #[cfg(feature = "optimism")] pub use optimism::OptimismPayloadBuilder; +/// Ethereum payload builder +#[derive(Debug, Clone, Copy, Default)] +#[non_exhaustive] +pub struct EthereumPayloadBuilder; + /// The [`PayloadJobGenerator`] that creates [`BasicPayloadJob`]s. #[derive(Debug)] -pub struct BasicPayloadJobGenerator { +pub struct BasicPayloadJobGenerator { /// The client that can interact with the chain. client: Client, /// txpool @@ -94,7 +99,14 @@ impl BasicPayloadJobGenerator { config: BasicPayloadJobGeneratorConfig, chain_spec: Arc, ) -> Self { - BasicPayloadJobGenerator::with_builder(client, pool, executor, config, chain_spec, ()) + BasicPayloadJobGenerator::with_builder( + client, + pool, + executor, + config, + chain_spec, + EthereumPayloadBuilder, + ) } } @@ -716,7 +728,7 @@ pub trait PayloadBuilder: Send + Sync + Clone { } // Default implementation of [PayloadBuilder] for unit type -impl PayloadBuilder for () +impl PayloadBuilder for EthereumPayloadBuilder where Client: StateProviderFactory, Pool: TransactionPool, diff --git a/crates/payload/basic/src/optimism.rs b/crates/payload/basic/src/optimism.rs index b5e31dea57e..19f62db1ded 100644 --- a/crates/payload/basic/src/optimism.rs +++ b/crates/payload/basic/src/optimism.rs @@ -287,7 +287,8 @@ where } /// Optimism's payload builder -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Copy, Default)] +#[non_exhaustive] pub struct OptimismPayloadBuilder; /// Implementation of the [PayloadBuilder] trait for [OptimismPayloadBuilder].