Skip to main content

PayloadBuilder

Trait PayloadBuilder 

Source
pub trait PayloadBuilder:
    Send
    + Sync
    + Clone {
    type Attributes: PayloadAttributes;
    type BuiltPayload: BuiltPayload;

    // Required methods
    fn try_build(
        &self,
        args: BuildArguments<Self::Attributes, Self::BuiltPayload>,
    ) -> Result<BuildOutcome<Self::BuiltPayload>, PayloadBuilderError>;
    fn build_empty_payload(
        &self,
        config: PayloadConfig<Self::Attributes, HeaderForPayload<Self::BuiltPayload>>,
    ) -> Result<Self::BuiltPayload, PayloadBuilderError>;

    // Provided method
    fn on_missing_payload(
        &self,
        _args: BuildArguments<Self::Attributes, Self::BuiltPayload>,
    ) -> MissingPayloadBehaviour<Self::BuiltPayload> { ... }
}
Expand description

A trait for building payloads that encapsulate Ethereum transactions.

This trait provides the try_build method to construct a transaction payload using BuildArguments. It returns a Result indicating success or a PayloadBuilderError if building fails.

Generic parameters Pool and Client represent the transaction pool and Ethereum client types.

Required Associated Types§

Source

type Attributes: PayloadAttributes

The payload attributes type to accept for building.

Source

type BuiltPayload: BuiltPayload

The type of the built payload.

Required Methods§

Source

fn try_build( &self, args: BuildArguments<Self::Attributes, Self::BuiltPayload>, ) -> Result<BuildOutcome<Self::BuiltPayload>, PayloadBuilderError>

Tries to build a transaction payload using provided arguments.

Constructs a transaction payload based on the given arguments, returning a Result indicating success or an error if building fails.

§Arguments
  • args: Build arguments containing necessary components.
§Returns

A Result indicating the build outcome or an error.

Source

fn build_empty_payload( &self, config: PayloadConfig<Self::Attributes, HeaderForPayload<Self::BuiltPayload>>, ) -> Result<Self::BuiltPayload, PayloadBuilderError>

Builds an empty payload without any transaction.

Provided Methods§

Source

fn on_missing_payload( &self, _args: BuildArguments<Self::Attributes, Self::BuiltPayload>, ) -> MissingPayloadBehaviour<Self::BuiltPayload>

Invoked when the payload job is being resolved and there is no payload yet.

This can happen if the CL requests a payload before the first payload has been built.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§