glamsterdam devnet 6 (spec v1.7.0-alpha.11)#746
Open
pk910 wants to merge 19 commits into
Open
Conversation
…ed execution requests tab (slot details)
qu0b
approved these changes
Jun 17, 2026
…y with 4 updates Bumps the ui-package-dependencies group with 4 updates in the /ui-package directory: [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [viem](https://github.com/wevm/viem) and [sass](https://github.com/sass/dart-sass). Updates `@tanstack/react-query` from 5.100.14 to 5.101.0 - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.101.0/packages/react-query) Updates `@types/react` from 19.2.16 to 19.2.17 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react) Updates `viem` from 2.52.0 to 2.52.2 - [Release notes](https://github.com/wevm/viem/releases) - [Commits](https://github.com/wevm/viem/compare/viem@2.52.0...viem@2.52.2) Updates `sass` from 1.100.0 to 1.101.0 - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](sass/dart-sass@1.100.0...1.101.0) --- updated-dependencies: - dependency-name: "@tanstack/react-query" dependency-version: 5.101.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ui-package-dependencies - dependency-name: "@types/react" dependency-version: 19.2.17 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ui-package-dependencies - dependency-name: viem dependency-version: 2.52.2 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ui-package-dependencies - dependency-name: sass dependency-version: 1.101.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: ui-package-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
Repurpose the proposer icon on the slots list to indicate the payload build source on Gloas+ blocks: a house icon for self-built payloads and a hard-hat icon for builder-built payloads. The hard-hat links to the builder URL when known (otherwise the internal builder page). Pre-Gloas blocks keep the default validator icon. Builder data is now populated whenever the Proposer column is shown, not only when the optional Builder column is enabled.
Scheduled and missing slots have no payload yet, so dbSlot.BuilderIndex defaults to 0 and was incorrectly rendered as a builder-built (hard-hat) icon. Only populate build-source info for slots with an actual block (proposed or orphaned).
EIP-7732 emits a synthetic missing-block row per slot (status Missing, unknown proposer). These have no determinable build source, so render them without any leading icon instead of falling back to the validator person icon. Scheduled/missing slots and unknown proposers now show the proposer label (or 'unknown') with no favicon.
Apply the same proposer build-source icon treatment to the Blocks page as the Slots page: house for self-built, hard-hat (linking to builder) for builder-built, and no icon for scheduled/missing/unknown rows.
…ource feat(slots): show payload build source icon in proposer column
3 tasks
v1.7.0-alpha.11)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Glamsterdam devnet-6 readiness: decoupled builder deposits & exits (EIP-8282)
Summary
Glamsterdam devnet-6 decouples builder deposits and exits from validator
deposits and voluntary exits. Builder onboarding and offboarding now flow through
two dedicated EL system contracts and two new execution-request types, instead of
piggybacking on the regular deposit contract (0x03 credentials) and voluntary
exits.
This PR makes Dora ready for that change end-to-end: the consensus state
transition, EL contract indexing, database schema, and the web UI all understand
the new request types.
Spec references
go-eth2-clientbumped tov0.1.4-0.20260617135310-2e8b958(go-eth2-client PR #30) — adds
gloas.BuilderDepositRequest,gloas.BuilderExitRequest, and a unifiedall.ExecutionRequestscarryingBuilderDeposits/BuilderExits.Behaviour changes for Gloas
process_builder_deposit_request(registers a new builder if the proof-of-possessionis valid under the new
DOMAIN_BUILDER_DEPOSIT, otherwise tops up the existing builder).process_builder_exit_request(source-address authenticated, requires an activebuilder with no pending withdrawals, then initiates the builder exit).
deposit contract is no longer diverted to the builder registry — it is queued as an
ordinary validator pending deposit (the pre-fork 0x03 route was an onboarding hack
only).
branch is gone from both the state transition and the UI.
New system contracts
0x0000884d2AA32eAa155F59A2f24eFa73D90082820x000014574A74c805590AFF9499fc7A690f008282Defaults live in
clients/execution/chainstate.go; they can be overridden via thenode's
eth_configsystem-contract map (BUILDER_DEPOSIT_REQUEST_PREDEPLOY_ADDRESS/
BUILDER_EXIT_REQUEST_PREDEPLOY_ADDRESS). New config knobexecutionapi.gloasDeployBlockcontrols where the contract log crawl starts.What changed
State transition (
indexer/beacon/statetransition/)applyExecutionRequestsnow processesbuilder_depositsthenbuilder_exits(after consolidations), matching the spec
for_opsorder inapply_parent_execution_payload.processBuilderDepositRequest,processBuilderExitRequest,isActiveBuilder,getPendingBalanceToWithdrawForBuilder,initiateBuilderExit.processDepositRequest(now a plain validator queue).depositsig.BuilderDomainimplementscompute_domain(DOMAIN_BUILDER_DEPOSIT).EL contract indexers (
indexer/execution/system_contracts/)builder_deposit_indexer.goandbuilder_exit_indexer.go, modeled on thewithdrawal/consolidation indexers (contract crawler + dequeue-block tx matcher),
registered in
services/chainservice.go.pubkey(48) ++ wc(32) ++ amount(8) ++ signature(96)(no sender prefix; tx sender taken from the tx); exit =
sender(20) ++ pubkey(48).Database (
db/, migration20260617140000_builder-requests.sql)consolidations:
builder_deposits/builder_deposit_request_txs,builder_exits/
builder_exit_request_txs, with CRUD, filters, and dbtypes.Indexing / aggregation (
indexer/beacon/writedb.go)(parent-payload) execution requests and persisted.
toward the combined exit count in both per-slot and per-epoch aggregations.
services/chainservice_deposits.go): removed the now-stalebuilder-deposit exceptions. The previous logic assumed post-Gloas 0x03 deposits were
diverted out of the pending-deposit queue (leaving index gaps to skip and skipping them as
queue anchors). Under EIP-8282 a 0x03 deposit via the regular contract enters the queue
like any validator deposit, and real builder deposits never appear in the regular deposit
stream — so the EL deposit index sequence is contiguous with the queue again. Reverted to a
clean contiguous backward-count; added a table-driven regression test.
Web UI
regrouped), Builder Deposits (
/builders/deposits), Builder Exits(
/builders/exits). The list pages merge unfinalized (cache) + finalized (DB) dataand pair each request with its matching EL transaction.
Execution Requests tab that renders one table per non-empty type (deposit /
withdrawal / consolidation / builder deposit / builder exit), skipping empty types.
The header notes the requests come from the parent payload (EIP-7732).
voluntary-exits page.
Validation
go build ./...,go vet ./..., andgolangci-lint run --new-from-rev=origin/masterare clean.
are queryable; templates parse without errors.
To verify on devnet-6
cmd/statetransition-testagainst devnet-6 — theauthoritative correctness check for the new request processing.
7002/7251 system contracts; confirm against the deployed builder deposit contract.
addresses above if the node serves different
eth_configkeys.