Electra engine api
Issue Addressed
N/A
Proposed Changes
Implements electra engine api.
Additional Info
The spec does not handle the engine_getPayloadBodies for the new electra fields. We need to add it to the spec and implement it.
This PR currently implements it in the manner that I think it will be implemented (i.e. by extending ExecutionPayloadBodyV1 to include deposit_receipts and withdrawal_requests.
Working on getting a spec out for this.
Is it intentional to merge epoch processing changes into this branch?
Yes since we were planning to merge it into unstable after epoch processing, re-targeted the branch to fix the diff
Something that's missing is the payload bodies by range changes: https://github.com/ethereum/execution-apis/pull/545
This PR implements an extension of the existing V1 endpoint, what's currently spec'd is to actually add a V2 endpoint: https://github.com/ethereum/execution-apis/pull/545#issuecomment-2115215133
There may be further discussion about whether to just extend v1 but for now we won't be able to serve blocks whose payloads we've pruned until we implement this as a v2
We could use the same ExecutionPayloadBody type for both v1 and v2 because v2 is fully backwards compatible but there will be annoying fork-switching logic we we want to query the v2 endpoint after the electra fork so we're sure the EL supports it
Strong agree on extending V1. We can implement the V2 method but its unnecessarily complex and gains us nothing imo.
@mergify queue
queue
✅ The pull request has been merged automatically
The pull request has been merged automatically at 2a13b4f3fa678ce672f0ee30ab55c5d9f3fbac97