pub trait EngineValidator<Types: PayloadTypes, N: NodePrimitives = <<Types as PayloadTypes>::BuiltPayload as BuiltPayload>::Primitives>:
    Send
    + Sync
    + 'static {
    // Required methods
    fn validate_payload_attributes_against_header(
        &self,
        attr: &Types::PayloadAttributes,
        header: &N::BlockHeader,
    ) -> Result<(), InvalidPayloadAttributesError>;
    fn ensure_well_formed_payload(
        &self,
        payload: Types::ExecutionData,
    ) -> Result<RecoveredBlock<N::Block>, NewPayloadError>;
    fn validate_payload(
        &mut self,
        payload: Types::ExecutionData,
        ctx: TreeCtx<'_, N>,
    ) -> ValidationOutcome<N>;
    fn validate_block(
        &mut self,
        block: RecoveredBlock<N::Block>,
        ctx: TreeCtx<'_, N>,
    ) -> ValidationOutcome<N>;
}Expand description
Type that validates the payloads processed by the engine.
This provides the necessary functions for validating/executing payloads/blocks.
Required Methods§
Sourcefn validate_payload_attributes_against_header(
    &self,
    attr: &Types::PayloadAttributes,
    header: &N::BlockHeader,
) -> Result<(), InvalidPayloadAttributesError>
 
fn validate_payload_attributes_against_header( &self, attr: &Types::PayloadAttributes, header: &N::BlockHeader, ) -> Result<(), InvalidPayloadAttributesError>
Validates the payload attributes with respect to the header.
By default, this enforces that the payload attributes timestamp is greater than the timestamp according to:
- Client software MUST ensure that payloadAttributes.timestamp is greater than timestamp of a block referenced by forkchoiceState.headBlockHash.
 
See also: https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md#specification-1
Sourcefn ensure_well_formed_payload(
    &self,
    payload: Types::ExecutionData,
) -> Result<RecoveredBlock<N::Block>, NewPayloadError>
 
fn ensure_well_formed_payload( &self, payload: Types::ExecutionData, ) -> Result<RecoveredBlock<N::Block>, NewPayloadError>
Ensures that the given payload does not violate any consensus rules that concern the block’s layout.
This function must convert the payload into the executable block and pre-validate its fields.
Implementers should ensure that the checks are done in the order that conforms with the engine-API specification.
Sourcefn validate_payload(
    &mut self,
    payload: Types::ExecutionData,
    ctx: TreeCtx<'_, N>,
) -> ValidationOutcome<N>
 
fn validate_payload( &mut self, payload: Types::ExecutionData, ctx: TreeCtx<'_, N>, ) -> ValidationOutcome<N>
Validates a payload received from engine API.
Sourcefn validate_block(
    &mut self,
    block: RecoveredBlock<N::Block>,
    ctx: TreeCtx<'_, N>,
) -> ValidationOutcome<N>
 
fn validate_block( &mut self, block: RecoveredBlock<N::Block>, ctx: TreeCtx<'_, N>, ) -> ValidationOutcome<N>
Validates a block downloaded from the network.