chore: flatten eip-7685 requests into a single list #1383
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The three different request fields have been replaced by a single field.
Requests over engine API will now be in an opaquely encoded format as defined by EIP-7685, and they will be in a single list.
See ethereum/execution-apis#577
Solution
Theoretically this allows us to not encode or decode requests on the EL, since system contracts are expected to output requests in a pre-serialized format, ready to be pushed over engine API. We can also compute the requests hash and compare it to the one in the payload (if it is an external block) without encoding or decoding.
However, we decided to retain type safety, so we do not gain from this, and we will still be encoding and decoding in the hot path. This also means we now depend on
alloy-consensus
inalloy-rpc-types-beacon
.Draft Status
This currently lacks
Eip7685Encodable
when serializing the requests as JSON for engine APIPR Checklist