Skip to content

Commit dc38b46

Browse files
committed
engine: extract execution requests from payload
1 parent 71260dd commit dc38b46

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/engine/prague.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,16 @@ The fields are encoded as follows:
6868
- `sourcePubkey`: `DATA`, 48 Bytes
6969
- `targetPubkey`: `DATA`, 48 Bytes
7070

71+
### ExecutionRequestsV1
72+
This container holds requests from the execution layer.
73+
74+
- `deposits`: `Array of DepositRequestV1` - Array of deposits, each object is an `OBJECT` containing the fields of a `DepositRequestV1` structure.
75+
- `withdrawals`: `Array of WithdrawalRequestV1` - Array of withdrawal requests, each object is an `OBJECT` containing the fields of a `WithdrawalRequestV1` structure.
76+
- `consolidations`: `Array of ConsolidationRequestV1` - Array of consolidation requests, each object is an `OBJECT` containing the fields of a `ConsolidationRequestV1` structure.
77+
7178
### ExecutionPayloadV4
7279

73-
This structure has the syntax of [`ExecutionPayloadV3`](./cancun.md#executionpayloadv3) and appends the new fields: `depositRequests` and `withdrawalRequests`.
80+
This structure has the syntax of [`ExecutionPayloadV3`](./cancun.md#executionpayloadv3).
7481

7582
- `parentHash`: `DATA`, 32 Bytes
7683
- `feeRecipient`: `DATA`, 20 Bytes
@@ -89,25 +96,20 @@ This structure has the syntax of [`ExecutionPayloadV3`](./cancun.md#executionpay
8996
- `withdrawals`: `Array of WithdrawalV1` - Array of withdrawals, each object is an `OBJECT` containing the fields of a `WithdrawalV1` structure.
9097
- `blobGasUsed`: `QUANTITY`, 64 Bits
9198
- `excessBlobGas`: `QUANTITY`, 64 Bits
92-
- `depositRequests`: `Array of DepositRequestV1` - Array of deposits, each object is an `OBJECT` containing the fields of a `DepositRequestV1` structure.
93-
- `withdrawalRequests`: `Array of WithdrawalRequestV1` - Array of withdrawal requests, each object is an `OBJECT` containing the fields of a `WithdrawalRequestV1` structure.
94-
- `consolidationRequests`: `Array of ConsolidationRequestV1` - Array of consolidation requests, each object is an `OBJECT` containing the fields of a `ConsolidationRequestV1` structure.
9599

96100
### ExecutionPayloadBodyV2
97101

98-
This structure has the syntax of [`ExecutionPayloadBodyV1`](./shanghai.md#executionpayloadv1) and appends the new fields: `depositRequests`, `withdrawalRequests` and `consolidationRequests`.
102+
This structure has the syntax of [`ExecutionPayloadBodyV1`](./shanghai.md#executionpayloadv1) and appends a single field: `requests`.
99103

100104
- `transactions`: `Array of DATA` - Array of transaction objects, each object is a byte list (`DATA`) representing `TransactionType || TransactionPayload` or `LegacyTransaction` as defined in [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718)
101105
- `withdrawals`: `Array of WithdrawalV1` - Array of withdrawals, each object is an `OBJECT` containing the fields of a `WithdrawalV1` structure.
102-
- `depositRequests`: `Array of DepositRequestV1` - Array of deposits, each object is an `OBJECT` containing the fields of a `DepositRequestV1` structure.
103-
- `withdrawalRequests`: `Array of WithdrawalRequestV1` - Array of withdrawal requests, each object is an `OBJECT` containing the fields of a `WithdrawalRequestV1` structure.
104-
- `consolidationRequests`: `Array of ConsolidationRequestV1` - Array of consolidation requests, each object is an `OBJECT` containing the fields of a `ConsolidationRequestV1` structure.
106+
- `requests`: [`ExecutionRequestsV1`](#ExecutionRequestsV1)
105107

106108
## Methods
107109

108110
### engine_newPayloadV4
109111

110-
The request of this method is updated with [`ExecutionPayloadV4`](#ExecutionPayloadV4).
112+
The request of this method is updated with [`ExecutionPayloadV4`](#ExecutionPayloadV4) and new [`ExecutionRequestsV1`](#ExecutionRequestsV1).
111113

112114
#### Request
113115

@@ -116,6 +118,7 @@ The request of this method is updated with [`ExecutionPayloadV4`](#ExecutionPayl
116118
1. `executionPayload`: [`ExecutionPayloadV4`](#ExecutionPayloadV4).
117119
2. `expectedBlobVersionedHashes`: `Array of DATA`, 32 Bytes - Array of expected blob versioned hashes to validate.
118120
3. `parentBeaconBlockRoot`: `DATA`, 32 Bytes - Root of the parent beacon block.
121+
4. `executionRequests`: [`ExecutionRequestsV1`](#ExecutionRequestsV1)
119122

120123
#### Response
121124

@@ -173,7 +176,7 @@ The response of this method is updated with [`ExecutionPayloadBodyV2`](#executio
173176

174177
This method follows the same specification as [`engine_getPayloadBodiesByHashV1`](./shanghai.md#engine_getpayloadbodiesbyhashv1) with the addition of the following:
175178

176-
1. Client software **MUST** set `depositRequests`, `withdrawalRequests` and `consolidationRequests` fields to `null` for bodies of pre-Prague blocks.
179+
1. Client software **MUST** set `requests` field to `null` for bodies of pre-Prague blocks.
177180

178181
### engine_getPayloadBodiesByRangeV2
179182

@@ -196,7 +199,7 @@ The response of this method is updated with [`ExecutionPayloadBodyV2`](#executio
196199

197200
This method follows the same specification as [`engine_getPayloadBodiesByRangeV2`](./shanghai.md#engine_getpayloadbodiesbyrangev1) with the addition of the following:
198201

199-
1. Client software **MUST** set `depositRequests`, `withdrawalRequests` and `consolidationRequests` fields to `null` for bodies of pre-Prague blocks.
202+
1. Client software **MUST** set `requests` field to `null` for bodies of pre-Prague blocks.
200203

201204
### Update the methods of previous forks
202205

0 commit comments

Comments
 (0)