Repository navigation
feat(types): add EIP-8025 execution proof SSZ types - #10391
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
was implementing on an older commit version, just need osme fixes and should be good |
Use ByteList[MAX_PROOF_SIZE] rather than a progressive byte list. Update root regression tests and retain full Uint64 chain ID support. Spec: https://github.com/ethereum/consensus-specs/blob/12c8b24bc09b12f62688d439ba20ef00b1fdfe1f/specs/_features/eip8025/beacon-chain.md#new-proofdata
|
think this should be ok to review |
|
@lodekeeper please give this a review and check against the latest spec |
|
lodekeeper's spazzing out and giving 👀 on every comment 😆 |
Performance Report✔️ no performance regression detected Full benchmark results
|
lodekeeper
left a comment
There was a problem hiding this comment.
LGTM. Checked against consensus-specs master (12c8b24bc). e42b24931 (#5639), linked in the description, is still the latest change to specs/_features/eip8025, so the types match the current spec:
ProofDataisByteList[MAX_PROOF_SIZE]after #5593, not progressive, and the test pins that through the rootPublicInputis a progressive container with 4 active fields in spec order, andchain_idas bigint is right for chain ids above 2^53ExecutionProof,ExecutionProofEnvelopeandSignedExecutionProofEnvelopefields and order matchMAX_PROOF_SIZE,STATELESS_INPUT_SCHEMA_IDandMAX_SIGNED_EXECUTION_PROOF_ENVELOPE_SIZEmatch, and the envelope max size works out to 4 + 8 + 96 + (4 + 1 + 32 + 4194304) = 4194449
DOMAIN_EXECUTION_PROOF (0x0F000000) isn't added yet, which is fine for a types-only PR. It'll be needed with the signature verification part of #10384.
nflaig
left a comment
There was a problem hiding this comment.
I think this is fine but curious about thoughts from others whether adding eip specific types is something we want
|
On EIP-specific types: I think a separate namespace fits here. EIP-8025 is an opt-in Also, sorry about the 👀 noise. The notification sweep was acking every comment it picked up. It now only does that for comments addressed to me. |
imo, regardless we still probably have to add these anyway (unless we do optional proofs entirely on a separate branch happy to do either |
nah I dislike this, let's try to get the code into our trunk branch, it should be pretty isolated/optional |
|
if/when 8025 goes in, we can rename to something more appropriate, maybe |
Imo all production types should be organized by fork.
rather just move it into heze or whatever fork. |
nflaig
left a comment
There was a problem hiding this comment.
not so sure about the tests but otherwise lgtm
Motivation
extracted from #10384 for reviewability
implements the ssz types for eip-8025
See spec: https://github.com/ethereum/consensus-specs/blob/e42b24931bd08e638016e02b5e63ede3d463cfff/specs/_features/eip8025/beacon-chain.md
Description
Adds the EIP-8025 SSZ types as a standalone change:
and SignedExecutionProofEnvelope.
and signed-envelope size.
round trips.
AI Assistance Disclosure
sol 6.1