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§
Sourcetype Attributes: PayloadAttributes
type Attributes: PayloadAttributes
The payload attributes type to accept for building.
Sourcetype BuiltPayload: BuiltPayload
type BuiltPayload: BuiltPayload
The type of the built payload.
Required Methods§
Sourcefn try_build(
&self,
args: BuildArguments<Self::Attributes, Self::BuiltPayload>,
) -> Result<BuildOutcome<Self::BuiltPayload>, PayloadBuilderError>
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.
Sourcefn build_empty_payload(
&self,
config: PayloadConfig<Self::Attributes, HeaderForPayload<Self::BuiltPayload>>,
) -> Result<Self::BuiltPayload, PayloadBuilderError>
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§
Sourcefn on_missing_payload(
&self,
_args: BuildArguments<Self::Attributes, Self::BuiltPayload>,
) -> MissingPayloadBehaviour<Self::BuiltPayload>
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".