Show payload build source icon on landing page slot/block cards#804
Merged
Conversation
The slots and blocks list pages already indicate the payload build source on Gloas+ blocks via the proposer icon (house = self-built, hard-hat linking to the builder = builder-built), but the landing page cards still showed the plain validator icon. Populate builder info in the index page models and use formatProposerWithBuildSource in the recent slots and recent blocks cards, both for the server-rendered rows and the knockout live-refresh path (mirrored in page-index.js). The models' Status field is narrowed to uint8 to match the formatter signature and the slots page model.
MaxInt64 (unknown proposer) and MaxUint64 (self-built payload) exceed 2^53, so JSON.parse rounds them to the nearest double and equality against the exact sentinel can never match. The >= comparisons against exact BigInt literals match the rounded values instead; real indices never come near the thresholds.
pk910
approved these changes
Jul 22, 2026
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.
The
/slotsand/blockspages indicate the payload build source on Gloas+ blocks via the proposer icon (🏠 house = self-built, 👷 hard-hat linking to the builder = builder-built, introduced in 2048c81), but the landing page's "Most recent slots" and "Most recent blocks" cards still showed the plain validator icon.Changes
IndexPageDataSlots/IndexPageDataBlocks: addHasBuilder,BuilderIndex,BuilderURL(same shape as the slots/blocks page models); narrowStatustouint8to matchformatProposerWithBuildSource's signature and the other list models.handlers/index.go: populate the fields from the dbbuilder_indexvia a smallresolveBuildSourcehelper, mirroring thehandlers/slots.gologic (-1→ self-built /MaxUint64).templates/index/recentSlots.html/recentBlocks.html: swapformatValidator→formatProposerWithBuildSourcein both the server-rendered rows and the knockout template rows.static/js/page-index.js: JS mirror ofutils.FormatProposerWithBuildSourceso the 15s live-refresh path renders the same markup (house/hard-hat icons, builder link, no icon for missed slots).Verified by rendering the exact template cell expression against the new models for self-built, builder-built (with external URL), and missed-slot cases.