Skip to content

feat(slots): show payload build source icon in proposer column#747

Merged
barnabasbusa merged 5 commits into
glamsterdam-devnet-6from
bbusa/slots-proposer-build-source
Jun 19, 2026
Merged

feat(slots): show payload build source icon in proposer column#747
barnabasbusa merged 5 commits into
glamsterdam-devnet-6from
bbusa/slots-proposer-build-source

Conversation

@barnabasbusa

@barnabasbusa barnabasbusa commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator
Screenshot 2026-06-19 at 12 09 52

Summary

In the Slots list view, the proposer icon now indicates the payload build source on Gloas+ (EIP-7732) blocks:

  • 🏠 fa-house — self-built payload
  • 👷 fa-hard-hat — builder-built payload; the icon links to the builder URL (external) when known, otherwise to the internal /builder/{index} page
  • 👤 fa-male (unchanged) — pre-Gloas blocks with no builder info

Both icons carry a tooltip describing the build source. The separate optional Builder column is left untouched.

Changes

  • utils/format.go — new FormatProposerWithBuildSource formatter that selects the icon based on HasBuilder / BuilderIndex (self-built sentinel = MaxUint64) and links builder-built payloads to the builder URL.
  • utils/templateFucs.go — register formatProposerWithBuildSource.
  • handlers/slots.go — populate builder info whenever the Proposer column is shown, not only when the Builder column is enabled.
  • templates/slots/slots.html — use the new formatter in the Proposer cell.

The underlying build-source data and builder-URL lookup (GetBuilderURL) already existed and are reused as-is.

Test plan

  • go build ./... and go vet ./utils ./handlers pass
  • Verify on a Gloas+ network: self-built blocks show the house icon, builder-built blocks show the hard-hat linking to the builder URL, and pre-Gloas blocks are unchanged

@barnabasbusa barnabasbusa requested a review from pk910 June 19, 2026 10:10
@barnabasbusa barnabasbusa enabled auto-merge June 19, 2026 10:10
dependabot Bot and others added 5 commits June 19, 2026 13:01
…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.
@barnabasbusa barnabasbusa force-pushed the bbusa/slots-proposer-build-source branch from a77bb53 to 84d88ed Compare June 19, 2026 11:03
@barnabasbusa barnabasbusa changed the base branch from master to glamsterdam-devnet-6 June 19, 2026 11:03
@barnabasbusa barnabasbusa merged commit 0048a05 into glamsterdam-devnet-6 Jun 19, 2026
5 of 6 checks passed
@barnabasbusa barnabasbusa deleted the bbusa/slots-proposer-build-source branch June 19, 2026 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant