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 arequestsbyte array as defined by EIP-7685. The first byte of each element is therequest_typeand the remaining bytes are therequest_data. Elements of the list MUST be ordered byrequest_typein ascending order. Elements with emptyrequest_dataMUST be excluded from the list. If any element is out of order, has a length of 1-byte or shorter, or more than one element has the same type byte, client software MUST return-32602: Invalid paramserror.
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 forkerror if thetimestampof 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 theblockHashvalidation 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:
objectexecutionPayload:ExecutionPayloadV3blockValue:QUANTITY, 256 Bits - The expected value to be received by thefeeRecipientin weiblobsBundle:BlobsBundleV1- Bundle with data corresponding to blob transactions included intoexecutionPayloadshouldOverrideBuilder:BOOLEAN- Suggestion from the execution layer to use thisexecutionPayloadinstead of an externally provided oneexecutionRequests:Array of DATA- Execution layer triggered requests obtained from theexecutionPayloadtransaction execution.
- error: code and message set in case an exception happens while getting the payload.
This method follows the same specification as engine_getPayloadV3 with the following changes:
-
Client software MUST return
-38005: Unsupported forkerror if thetimestampof the built payload does not fall within the time frame of the Prague fork. -
The call MUST return
executionRequestslist representing execution layer triggered requests. Each list element is arequestsbyte array as defined by EIP-7685. The first byte of each element is therequest_typeand the remaining bytes are therequest_data. Elements of the list MUST be ordered byrequest_typein ascending order. Elements with emptyrequest_dataMUST be excluded from the list. Elements MUST be longer than 1-byte, and eachrequest_typeMUST be unique within the list.
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 forkerror if thetimestampof payload or payloadAttributes greater or equal to the Prague activation timestamp.