Skip to content

Commit ace89e8

Browse files
authored
Specify V3 engine API and hardfork version constraint (#15)
1 parent f16a625 commit ace89e8

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

specs/protocol/exec-engine.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ If not specified as rollup, a `STATUS_INVALID` is returned.
224224
### `engine_forkchoiceUpdatedV3`
225225

226226
See [`engine_forkchoiceUpdatedV2`](#engine_forkchoiceUpdatedV2) for a description of the forkchoice updated method.
227+
`engine_forkchoiceUpdatedV3` **must only be called with Ecotone payload.**
227228

228229
To support rollup functionality, one backwards-compatible change is introduced
229230
to [`engine_forkchoiceUpdatedV3`][engine_forkchoiceUpdatedV3]: the extended `PayloadAttributesV3`
@@ -248,7 +249,6 @@ PayloadAttributesV3: {
248249
The requirements of this object are the same as extended [`PayloadAttributesV2`](#extended-payloadattributesv2) with
249250
the addition of `parentBeaconBlockRoot` which is the parent beacon block root from the L1 origin block of the L2 block.
250251

251-
The `parentBeaconBlockRoot` must be nil for Bedrock/Canyon/Delta payloads.
252252
Starting at Ecotone, the `parentBeaconBlockRoot` must be set to the L1 origin `parentBeaconBlockRoot`,
253253
or a zero `bytes32` if the Dencun functionality with `parentBeaconBlockRoot` is not active on L1.
254254

@@ -260,7 +260,10 @@ Applies a L2 block to the engine state.
260260
### `engine_newPayloadV3`
261261

262262
[`engine_newPayloadV3`][engine_newPayloadV3] applies an Ecotone L2 block to the engine state. There are no
263-
modifications to this API. The additional parameters should be set as follows:
263+
modifications to this API.
264+
`engine_newPayloadV3` **must only be called with Ecotone payload.**
265+
266+
The additional parameters should be set as follows:
264267

265268
- `expectedBlobVersionedHashes` MUST be an empty array.
266269
- `parentBeaconBlockRoot` MUST be the parent beacon block root from the L1 origin block of the L2 block.
@@ -274,6 +277,7 @@ Retrieves a payload by ID, prepared by `engine_forkchoiceUpdatedV2` when called
274277

275278
[`engine_getPayloadV3`][engine_getPayloadV3] retrieves a payload by ID, prepared by `engine_forkchoiceUpdatedV3`
276279
when called with `payloadAttributes`.
280+
`engine_getPayloadV3` **must only be called with Ecotone payload.**
277281

278282
#### Extended Response
279283

@@ -291,8 +295,7 @@ The [response][GetPayloadV3Response] is extended to:
291295

292296
[GetPayloadV3Response]: https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#response-2
293297

294-
For Bedrock and Canyon `parentBeaconBlockRoot` MUST be nil and in Ecotone it MUST be set to the parentBeaconBlockRoot
295-
from the L1 Origin block of the L2 block.
298+
In Ecotone it MUST be set to the parentBeaconBlockRoot from the L1 Origin block of the L2 block.
296299

297300
### `engine_signalSuperchainV1`
298301

0 commit comments

Comments
 (0)