Engine API changes introduced in Prague.
This specification is based on and extends Engine API - Cancun specification.
Method parameter list is extended with executionRequests
.
- method:
engine_newPayloadV4
- params:
executionPayload
:ExecutionPayloadV3
.expectedBlobVersionedHashes
:Array of DATA
, 32 Bytes - Array of expected blob versioned hashes to validate.parentBeaconBlockRoot
:DATA
, 32 Bytes - Root of the parent beacon block.executionRequests
:Array of DATA
- List of execution layer triggered requests. Each list element is the corresponding request type'srequest_data
as defined by EIP-7685. Elements of the list MUST be ordered byrequest_type
in ascending order.
NOTE: Each element of executionRequests
is the SSZ serialization of the corresponding field of ExecutionRequests
defined in the consensus-specs
, such that the 0th element is the first field of that container, 1st element is the second field, and so on.
Refer to the response for engine_newPayloadV3
.
This method follows the same specification as engine_newPayloadV3
with the following changes:
-
Client software MUST return
-38005: Unsupported fork
error if thetimestamp
of the payload does not fall within the time frame of the Prague fork. -
Given the
executionRequests
, client software MUST compute the execution requests commitment and incorporate it into theblockHash
validation process. That is, if the computed commitment does not match the corresponding commitment in the execution layer block header, the call MUST return{status: INVALID, latestValidHash: null, validationError: errorMessage | null}
.
The response of this method is extended with the executionRequests
field.
- method:
engine_getPayloadV4
- params:
payloadId
:DATA
, 8 Bytes - Identifier of the payload build process
- timeout: 1s
- result:
object
executionPayload
:ExecutionPayloadV3
blockValue
:QUANTITY
, 256 Bits - The expected value to be received by thefeeRecipient
in weiblobsBundle
:BlobsBundleV1
- Bundle with data corresponding to blob transactions included intoexecutionPayload
shouldOverrideBuilder
:BOOLEAN
- Suggestion from the execution layer to use thisexecutionPayload
instead of an externally provided oneexecutionRequests
:Array of DATA
- Execution layer triggered requests obtained from theexecutionPayload
transaction execution.
- error: code and message set in case an exception happens while getting the payload.
NOTE: Each element of executionRequests
is the SSZ serialization of the corresponding field of ExecutionRequests
defined in the consensus-specs
, such that the 0th element is the first field of that container, 1st element is the second field, and so on.
This method follows the same specification as engine_getPayloadV3
with the following changes:
-
Client software MUST return
-38005: Unsupported fork
error if thetimestamp
of the built payload does not fall within the time frame of the Prague fork. -
The call MUST return
executionRequests
list representing execution layer triggered requests obtained from theexecutionPayload
transaction execution. Each element of the list corresponds to the request type'srequest_data
as defined by EIP-7685. Elements of the list MUST be ordered byrequest_type
in ascending order.
This document defines how Prague payload should be handled by the Cancun API
.
For the following methods:
a validation MUST be added:
- Client software MUST return
-38005: Unsupported fork
error if thetimestamp
of payload or payloadAttributes greater or equal to the Prague activation timestamp.