Expand description
Abstractions for working with execution payloads.
This crate provides types and traits for execution and building payloads.
Structs§
- Built
Payload Executed Block - Represents an executed block for payload building purposes.
Enums§
- Engine
ApiMessage Version - The version of Engine API message.
- Engine
Object Validation Error - Thrown when the payload or attributes are known to be invalid before processing.
- Invalid
Payload Attributes Error - Thrown when validating the correctness of a payloadattributes object.
- Message
Validation Kind - A type that represents whether or not we are validating a payload or payload attributes.
- NewPayload
Error - Error validating payload received over
newPayloadAPI. - Payload
Builder Error - Possible error variants during payload building.
- Payload
Kind - Determines how we should choose the payload to return.
- Payload
OrAttributes - A unified type for handling both execution payloads and payload attributes.
- Version
Specific Validation Error - Thrown when validating an execution payload OR payload attributes fails due to:
Traits§
- Build
Next Env - Trait to build the EVM environment for the next block from the given payload attributes.
- Built
Payload - Represents a successfully built execution payload (block).
- Execution
Payload - Represents the core data structure of an execution payload.
- Payload
Attributes - Basic attributes required to initiate payload construction.
- Payload
Attributes Builder - Factory trait for creating payload attributes.
- Payload
Types - Core trait that defines the associated types for working with execution payloads.
Functions§
- payload_
id - Generates the payload id for the configured payload from the
PayloadAttributes. - validate_
block_ access_ list_ presence - Validates the presence of the
block access listsfield according to the payload timestamp. After Amsterdam, block access list field must be Some. Before Amsterdam, block access list field must be None; - validate_
execution_ requests - Validates that execution requests are valid according to Engine API specification.
- validate_
parent_ beacon_ block_ root_ presence - Validate the presence of the
parentBeaconBlockRootfield according to the given timestamp. This method is meant to be used with either apayloadAttributesfield or a full payload, with theengine_forkchoiceUpdatedandengine_newPayloadmethods respectively. - validate_
payload_ timestamp - Validates the timestamp depending on the version called:
- validate_
slot_ number_ presence - Validates the presence of the
slot numberfield according to the payload timestamp. After Amsterdam, slot number field must be Some. Before Amsterdam, slot number field must be None; - validate_
version_ specific_ fields - Validates the presence or exclusion of fork-specific fields based on the ethereum execution payload, or payload attributes, and the message version.
- validate_
withdrawals_ presence - Validates the presence of the
withdrawalsfield according to the payload timestamp. After Shanghai, withdrawals field must be Some. Before Shanghai, withdrawals field must be None;