Trait reth_engine_primitives::EngineTypes

source ·
pub trait EngineTypes:
    PayloadTypes<BuiltPayload: TryInto<Self::ExecutionPayloadV1> + TryInto<Self::ExecutionPayloadV2> + TryInto<Self::ExecutionPayloadV3> + TryInto<Self::ExecutionPayloadV4>>
    + DeserializeOwned
    + Serialize
    + 'static {
    type ExecutionPayloadV1: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static;
    type ExecutionPayloadV2: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static;
    type ExecutionPayloadV3: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static;
    type ExecutionPayloadV4: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static;

    // Required method
    fn validate_version_specific_fields(
        chain_spec: &ChainSpec,
        version: EngineApiMessageVersion,
        payload_or_attrs: PayloadOrAttributes<'_, Self::PayloadAttributes>,
    ) -> Result<(), EngineObjectValidationError>;
}
Expand description

This type defines the versioned types of the engine API.

This includes the execution payload types and payload attributes that are used to trigger a payload job. Hence this trait is also PayloadTypes.

Required Associated Types§

source

type ExecutionPayloadV1: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static

Execution Payload V1 type.

source

type ExecutionPayloadV2: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static

Execution Payload V2 type.

source

type ExecutionPayloadV3: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static

Execution Payload V3 type.

source

type ExecutionPayloadV4: DeserializeOwned + Serialize + Clone + Unpin + Send + Sync + 'static

Execution Payload V4 type.

Required Methods§

source

fn validate_version_specific_fields( chain_spec: &ChainSpec, version: EngineApiMessageVersion, payload_or_attrs: PayloadOrAttributes<'_, Self::PayloadAttributes>, ) -> Result<(), EngineObjectValidationError>

Validates the presence or exclusion of fork-specific fields based on the payload attributes and the message version.

Object Safety§

This trait is not object safe.

Implementors§