Skip to content

[Gloas] Store full expected withdrawals in BeaconState + spec alignment#10196

Merged
StefanBratanov merged 13 commits intoConsensys:masterfrom
StefanBratanov:beacon_state_store_expected_withdrawals
Dec 24, 2025
Merged

[Gloas] Store full expected withdrawals in BeaconState + spec alignment#10196
StefanBratanov merged 13 commits intoConsensys:masterfrom
StefanBratanov:beacon_state_store_expected_withdrawals

Conversation

@StefanBratanov
Copy link
Copy Markdown
Contributor

@StefanBratanov StefanBratanov commented Dec 2, 2025

PR Description

Disabling reference tests for Gloas, since there would be too many changes upcoming in the next release.

Main change:
ethereum/consensus-specs#4745
Refactor of withdrawals:
ethereum/consensus-specs#4765
ethereum/consensus-specs#4766
Other small changes:
ethereum/consensus-specs#4775
ethereum/consensus-specs#4797
ethereum/consensus-specs#4774
ethereum/consensus-specs#4753

Fixed Issue(s)

N/A

Documentation

  • I thought about documentation and added the doc-change-required label to this PR if updates are required.

Changelog

  • I thought about adding a changelog entry, and added one if I deemed necessary.

Note

Aligns Gloas with updated consensus specs by persisting full expected withdrawals and validating payloads against them.

  • Replace latest_withdrawals_root with payload_expected_withdrawals across state, schemas, REST schema, builders, and upgrade path
  • Refactor withdrawals flow: compute/track expected withdrawals (builder, partials, validator sweep), apply to state, update next indices, and compare payload withdrawals to expected list; add helpers like getTotalWithdrawn
  • Update execution processing to verify envelope withdrawals match payload_expected_withdrawals; cache and update related builder payment/withdrawal queues
  • Type/logic cleanups: use UInt64 validator indices in Electra pending withdrawals paths; fix equality checks, quorum >=, attestation indexing API, and various helpers
  • Spec constants: change Gloas BEACON_BUILDER domain to 0x0B000000
  • Testing: adjust expected signatures/APIs; temporarily skip some Gloas reference tests (SSZ, pyspec fork_choice)
  • Minor validator/util predicates and exit rules tweaks (e.g., pending withdrawal checks in exits)

Written by Cursor Bugbot for commit 93655da. This will update automatically on new commits. Configure here.

@StefanBratanov StefanBratanov force-pushed the beacon_state_store_expected_withdrawals branch from a91867b to e6bde4c Compare December 2, 2025 03:30
@StefanBratanov
Copy link
Copy Markdown
Contributor Author

Need to wait for reference tests release, then can merge

@StefanBratanov StefanBratanov changed the title Store full expected withdrawals in BeaconState [ePBS] Store full expected withdrawals in BeaconState Dec 22, 2025
@StefanBratanov StefanBratanov force-pushed the beacon_state_store_expected_withdrawals branch from e6bde4c to c7f14d6 Compare December 22, 2025 09:07
@StefanBratanov StefanBratanov marked this pull request as ready for review December 22, 2025 09:09
@StefanBratanov StefanBratanov changed the title [ePBS] Store full expected withdrawals in BeaconState [ePBS] Store full expected withdrawals in BeaconState + small changes Dec 22, 2025
@StefanBratanov StefanBratanov changed the title [ePBS] Store full expected withdrawals in BeaconState + small changes [Gloas] Store full expected withdrawals in BeaconState + small changes Dec 22, 2025
@StefanBratanov StefanBratanov changed the title [Gloas] Store full expected withdrawals in BeaconState + small changes [Gloas] Store full expected withdrawals in BeaconState + other changes Dec 22, 2025
@StefanBratanov StefanBratanov changed the title [Gloas] Store full expected withdrawals in BeaconState + other changes [Gloas] Store full expected withdrawals in BeaconState + spec alignment Dec 22, 2025
Copy link
Copy Markdown
Contributor

@zilm13 zilm13 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, just few nits

@StefanBratanov StefanBratanov force-pushed the beacon_state_store_expected_withdrawals branch from 186a732 to 8ca9704 Compare December 22, 2025 21:52
@StefanBratanov StefanBratanov force-pushed the beacon_state_store_expected_withdrawals branch from 8ca9704 to e455a82 Compare December 24, 2025 09:00
@StefanBratanov StefanBratanov enabled auto-merge (squash) December 24, 2025 10:16
@StefanBratanov StefanBratanov merged commit 8471406 into Consensys:master Dec 24, 2025
51 of 52 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Dec 24, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants