mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-02-15 01:14:59 -05:00
feat: exposed EvmConfig to PayloadServiceBuilder (#15887)
Co-authored-by: Arsenii Kulikov <klkvrr@gmail.com>
This commit is contained in:
@@ -122,6 +122,7 @@ impl OpNode {
|
||||
self.args.supervisor_safety_level,
|
||||
),
|
||||
)
|
||||
.executor(OpExecutorBuilder::default())
|
||||
.payload(BasicPayloadServiceBuilder::new(
|
||||
OpPayloadBuilder::new(compute_pending_block).with_da_config(self.da_config.clone()),
|
||||
))
|
||||
@@ -129,7 +130,6 @@ impl OpNode {
|
||||
disable_txpool_gossip,
|
||||
disable_discovery_v4: !discovery_v4,
|
||||
})
|
||||
.executor(OpExecutorBuilder::default())
|
||||
.consensus(OpConsensusBuilder::default())
|
||||
}
|
||||
|
||||
@@ -708,29 +708,36 @@ impl<Txs> OpPayloadBuilder<Txs> {
|
||||
let Self { compute_pending_block, da_config, .. } = self;
|
||||
OpPayloadBuilder { compute_pending_block, best_transactions, da_config }
|
||||
}
|
||||
}
|
||||
|
||||
/// A helper method to initialize [`reth_optimism_payload_builder::OpPayloadBuilder`] with the
|
||||
/// given EVM config.
|
||||
pub fn build<Node, Evm, Pool>(
|
||||
impl<Node, Pool, Txs, Evm> PayloadBuilderBuilder<Node, Pool, Evm> for OpPayloadBuilder<Txs>
|
||||
where
|
||||
Node: FullNodeTypes<
|
||||
Types: NodeTypes<
|
||||
Payload = OpEngineTypes,
|
||||
ChainSpec = OpChainSpec,
|
||||
Primitives = OpPrimitives,
|
||||
>,
|
||||
>,
|
||||
Evm: ConfigureEvm<
|
||||
Primitives = PrimitivesTy<Node::Types>,
|
||||
NextBlockEnvCtx = OpNextBlockEnvAttributes,
|
||||
> + 'static,
|
||||
Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Node::Types>>>
|
||||
+ Unpin
|
||||
+ 'static,
|
||||
Txs: OpPayloadTransactions<Pool::Transaction>,
|
||||
<Pool as TransactionPool>::Transaction: OpPooledTx,
|
||||
{
|
||||
type PayloadBuilder =
|
||||
reth_optimism_payload_builder::OpPayloadBuilder<Pool, Node::Provider, Evm, Txs>;
|
||||
|
||||
async fn build_payload_builder(
|
||||
self,
|
||||
evm_config: Evm,
|
||||
ctx: &BuilderContext<Node>,
|
||||
pool: Pool,
|
||||
) -> eyre::Result<reth_optimism_payload_builder::OpPayloadBuilder<Pool, Node::Provider, Evm, Txs>>
|
||||
where
|
||||
Node: FullNodeTypes<
|
||||
Types: NodeTypes<
|
||||
Payload = OpEngineTypes,
|
||||
ChainSpec = OpChainSpec,
|
||||
Primitives = OpPrimitives,
|
||||
>,
|
||||
>,
|
||||
Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Node::Types>>>
|
||||
+ Unpin
|
||||
+ 'static,
|
||||
Evm: ConfigureEvm<Primitives = PrimitivesTy<Node::Types>>,
|
||||
Txs: OpPayloadTransactions<Pool::Transaction>,
|
||||
{
|
||||
evm_config: Evm,
|
||||
) -> eyre::Result<Self::PayloadBuilder> {
|
||||
let payload_builder = reth_optimism_payload_builder::OpPayloadBuilder::with_builder_config(
|
||||
pool,
|
||||
ctx.provider().clone(),
|
||||
@@ -743,33 +750,6 @@ impl<Txs> OpPayloadBuilder<Txs> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<Node, Pool, Txs> PayloadBuilderBuilder<Node, Pool> for OpPayloadBuilder<Txs>
|
||||
where
|
||||
Node: FullNodeTypes<
|
||||
Types: NodeTypes<
|
||||
Payload = OpEngineTypes,
|
||||
ChainSpec = OpChainSpec,
|
||||
Primitives = OpPrimitives,
|
||||
>,
|
||||
>,
|
||||
Pool: TransactionPool<Transaction: PoolTransaction<Consensus = TxTy<Node::Types>>>
|
||||
+ Unpin
|
||||
+ 'static,
|
||||
Txs: OpPayloadTransactions<Pool::Transaction>,
|
||||
<Pool as TransactionPool>::Transaction: OpPooledTx,
|
||||
{
|
||||
type PayloadBuilder =
|
||||
reth_optimism_payload_builder::OpPayloadBuilder<Pool, Node::Provider, OpEvmConfig, Txs>;
|
||||
|
||||
async fn build_payload_builder(
|
||||
self,
|
||||
ctx: &BuilderContext<Node>,
|
||||
pool: Pool,
|
||||
) -> eyre::Result<Self::PayloadBuilder> {
|
||||
self.build(OpEvmConfig::optimism(ctx.chain_spec()), ctx, pool)
|
||||
}
|
||||
}
|
||||
|
||||
/// A basic optimism network builder.
|
||||
#[derive(Debug, Default, Clone)]
|
||||
pub struct OpNetworkBuilder {
|
||||
|
||||
Reference in New Issue
Block a user