Trait PayloadBuilderBuilder

Source
pub trait PayloadBuilderBuilder<Node, Pool, EvmConfig>: Sized + Send
where Node: FullNodeTypes, Pool: TransactionPool,
{ type PayloadBuilder: PayloadBuilderFor<<Node as FullNodeTypes>::Types> + Unpin + 'static; // Required method fn build_payload_builder( self, ctx: &BuilderContext<Node>, pool: Pool, evm_config: EvmConfig, ) -> impl Future<Output = Result<Self::PayloadBuilder, Report>> + Send; }
Expand description

A type that knows how to build a payload builder to plug into BasicPayloadServiceBuilder.

Required Associated Types§

Source

type PayloadBuilder: PayloadBuilderFor<<Node as FullNodeTypes>::Types> + Unpin + 'static

Payload builder implementation.

Required Methods§

Source

fn build_payload_builder( self, ctx: &BuilderContext<Node>, pool: Pool, evm_config: EvmConfig, ) -> impl Future<Output = Result<Self::PayloadBuilder, Report>> + Send

Spawns the payload service and returns the handle to it.

The BuilderContext is provided to allow access to the node’s configuration.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl<Types, Node, Pool, Evm> PayloadBuilderBuilder<Node, Pool, Evm> for EthereumPayloadBuilder
where Pool: TransactionPool + Unpin + 'static, <Pool as TransactionPool>::Transaction: PoolTransaction<Consensus = <<<Node as FullNodeTypes>::Types as NodeTypes>::Primitives as NodePrimitives>::SignedTx>, Evm: ConfigureEvm<Primitives = <Types as NodeTypes>::Primitives, NextBlockEnvCtx = NextBlockEnvAttributes> + 'static, <Types as NodeTypes>::Payload: PayloadTypes<BuiltPayload = EthBuiltPayload, PayloadAttributes = PayloadAttributes, PayloadBuilderAttributes = EthPayloadBuilderAttributes>, Types: NodeTypes<Primitives = EthPrimitives>, <Types as NodeTypes>::ChainSpec: EthereumHardforks, Node: FullNodeTypes<Types = Types>,

§

type PayloadBuilder = EthereumPayloadBuilder<Pool, <Node as FullNodeTypes>::Provider, Evm>

§

async fn build_payload_builder( self, ctx: &BuilderContext<Node>, pool: Pool, evm_config: Evm, ) -> Result<<EthereumPayloadBuilder as PayloadBuilderBuilder<Node, Pool, Evm>>::PayloadBuilder, Report>

Implementors§