You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This structure has the syntax of [`PayloadAttributesV3`](./cancun.md#payloadattributesv3) and appends a single field: `inclusionList`.
45
+
46
+
-`timestamp`: `QUANTITY`, 64 Bits - value for the `timestamp` field of the new payload
47
+
-`prevRandao`: `DATA`, 32 Bytes - value for the `prevRandao` field of the new payload
48
+
-`suggestedFeeRecipient`: `DATA`, 20 Bytes - suggested value for the `feeRecipient` field of the new payload
49
+
-`withdrawals`: `Array of WithdrawalV1` - Array of withdrawals, each object is an `OBJECT` containing the fields of a `WithdrawalV1` structure.
50
+
-`parentBeaconBlockRoot`: `DATA`, 32 Bytes - Root of the parent beacon block.
51
+
-`inclusionList`: `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).
52
+
53
+
### PayloadStatusV2
54
+
55
+
This structure has the syntax of [`PayloadStatusV1`](./paris.md#payloadstatusv1) and appends a single value to `status` field: `"INCLUSION_LIST_UNSATISFIED"`.
-`latestValidHash`: `DATA|null`, 32 Bytes - the hash of the most recent *valid* block in the branch defined by payload and its ancestors
59
+
-`validationError`: `String|null` - a message providing additional details on the validation error if the payload is classified as `INVALID` or `INVALID_BLOCK_HASH`.
60
+
61
+
## Routines
62
+
63
+
### Payload building
64
+
65
+
This routine follows the same specification as [Payload building](./paris.md#payload-building) with the following changes to the processing flow:
66
+
67
+
1. Client software **SHOULD** take `payloadAttributes.inclusionList` into account during the payload build process. The built `ExecutionPayload`**MUST** satisfy the inclusion list constraints with respect to `payloadAttributes.inclusionList` as defined in [EIP-7805](https://eips.ethereum.org/EIPS/eip-7805).
68
+
36
69
## Methods
37
70
38
71
### engine_newPayloadV5
@@ -81,35 +114,26 @@ This method follows the same specification as [`engine_newPayloadV4`](./prague.m
81
114
82
115
3. Client software **MUST NOT** include any [blob transaction](https://eips.ethereum.org/EIPS/eip-4844#blob-transaction) within the provided list.
83
116
84
-
### engine_updatePayloadWithInclusionListV1
117
+
4. Client software **MUST** return `-38006: Unknown parent` error if a block with the given `parentHash` does not exist.
1.`payloadId`: `DATA`, 8 Bytes - Identifier of the payload build process.
91
-
2.`inclusionList`: `inclusionList`: `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).
2.`payloadAttributes`: `Object|null` - Instance of [`PayloadAttributesV4`](#payloadattributesv4)or `null`.
127
+
* timeout: 8s
93
128
94
129
#### Response
95
130
96
-
* result: `payloadId`: `DATA|null`, 8 Bytes - identifier of the payload build process or `null`
97
-
* error: code and message set in case an exception happens while getting the inclusion list.
131
+
Refer to the response for [`engine_forkchoiceUpdatedV3`](./cancun.md#engine_forkchoiceupdatedv3).
98
132
99
133
#### Specification
100
134
101
-
1. Given the `payloadId` client software **MUST** update payload build process building with`inclusionList`. The transactions must be part of the execution payload unless it fails to be included at the end of it.
102
-
103
-
2. Client software **SHOULD** ignore any [blob transactions](https://eips.ethereum.org/EIPS/eip-4844#blob-transaction) present in the `inclusionList` when updating the execution payload.
104
-
105
-
### Update the methods of previous forks
106
-
107
-
This document defines how FOCIL payload should be handled by the [`Prague API`](./prague.md).
This method follows the same specification as [`engine_forkchoiceUpdatedV3`](./cancun.md#engine_forkchoiceupdatedv3) with the following changes to the processing flow:
112
136
113
-
a validation **MUST** be added:
137
+
1. Extend point (7) of the `engine_forkchoiceUpdatedV1`[specification](./paris.md#specification-1) by defining the following sequence of checks that **MUST** be run over `payloadAttributes`:
114
138
115
-
1. Client software **MUST** return `-38005: Unsupported fork` error if the `timestamp` of payload or payloadAttributes greater or equal to the FOCIL activation timestamp.
139
+
1.`payloadAttributes` matches the [`PayloadAttributesV4`](#payloadattributesv4) structure, return `-38003: Invalid payload attributes` on failure.
0 commit comments