fix(payload): Ethereum Payload Builder Zero Type (#5313)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
refcell.eth
2023-11-06 13:52:05 +01:00
committed by GitHub
parent d090803eb8
commit 22dfe96ae0
3 changed files with 19 additions and 6 deletions

View File

@ -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<Client, Pool, Tasks, Builder = ()> {
pub struct BasicPayloadJobGenerator<Client, Pool, Tasks, Builder = EthereumPayloadBuilder> {
/// The client that can interact with the chain.
client: Client,
/// txpool
@ -94,7 +99,14 @@ impl<Client, Pool, Tasks> BasicPayloadJobGenerator<Client, Pool, Tasks> {
config: BasicPayloadJobGeneratorConfig,
chain_spec: Arc<ChainSpec>,
) -> 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<Pool, Client>: Send + Sync + Clone {
}
// Default implementation of [PayloadBuilder] for unit type
impl<Pool, Client> PayloadBuilder<Pool, Client> for ()
impl<Pool, Client> PayloadBuilder<Pool, Client> for EthereumPayloadBuilder
where
Client: StateProviderFactory,
Pool: TransactionPool,

View File

@ -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].