Skip to content

Implement Gloas builder state endpoint - #9682

Merged
mergify[bot] merged 5 commits into
sigp:unstablefrom
jimmygchen:feat-gloas-builder-state-endpoint
Aug 3, 2026
Merged

Implement Gloas builder state endpoint#9682
mergify[bot] merged 5 commits into
sigp:unstablefrom
jimmygchen:feat-gloas-builder-state-endpoint

Conversation

@jimmygchen

Copy link
Copy Markdown
Member

Description

Implements the standard Gloas POST /eth/v1/beacon/states/{state_id}/builders endpoint from ethereum/beacon-APIs#614.

The endpoint follows the existing validator-state API patterns for state loading, ID and status filtering, response metadata, and error handling. Requests without a body or with empty filters return all builders, while pre-Gloas states return 400.

Additional Info

Builder-state requests use the P1 API queue, including requests for head, because listing the builder registry is not required for validator duties.

@jimmygchen
jimmygchen marked this pull request as ready for review July 23, 2026 14:06
@jimmygchen jimmygchen added the ready-for-review The code is ready for review label Jul 24, 2026

@chong-he chong-he left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks pretty good, just a comment below not sure if it is intentional or not

Comment thread common/eth2/src/types.rs
Comment thread beacon_node/http_api/src/builders.rs Outdated
@chong-he chong-he added waiting-on-author The reviewer has suggested changes and awaits thier implementation. and removed ready-for-review The code is ready for review labels Jul 29, 2026
Co-authored-by: chonghe <44791194+chong-he@users.noreply.github.com>
@jimmygchen jimmygchen added ready-for-review The code is ready for review and removed waiting-on-author The reviewer has suggested changes and awaits thier implementation. labels Jul 29, 2026
@mergify

mergify Bot commented Jul 29, 2026

Copy link
Copy Markdown

Some required checks have failed. Could you please take a look @jimmygchen? 🙏

@mergify mergify Bot added waiting-on-author The reviewer has suggested changes and awaits thier implementation. and removed ready-for-review The code is ready for review labels Jul 29, 2026

@chong-he chong-he left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good to me

@mergify

mergify Bot commented Jul 29, 2026

Copy link
Copy Markdown

Queued — the merge queue status continues in this comment ↓.

@mergify mergify Bot added ready-for-review The code is ready for review and removed waiting-on-author The reviewer has suggested changes and awaits thier implementation. labels Jul 29, 2026

@eserilev eserilev left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

claude says theres maybe a chance to extend test coverage a bit:

  1. The truly body-less request path is never exercised — the Rust client always serializes at least {}, so json_no_body's empty-bytes branch (the spec's required: false body) has no coverage here. A raw reqwest POST without a body would cover it.
  2. No status-only filter test (ids: None, statuses: Some([...])) — the code path is symmetric so risk is low, but it's one line to add.
  3. No malformed-id test (e.g. "0xzz" → 400), which would pin down the deserialize-rejection behavior of deny_unknown_fields + BuilderId parsing.

dont think its super important though

@jimmygchen

Copy link
Copy Markdown
Member Author

@chong-he @eserilev thanks for the reviews, addressed the comments above.

@dapplion dapplion added ready-for-merge This PR is ready to merge. and removed ready-for-review The code is ready for review labels Aug 3, 2026
@mergify mergify Bot added the queued label Aug 3, 2026
@mergify

mergify Bot commented Aug 3, 2026

Copy link
Copy Markdown

Merge Queue Status

This pull request spent 31 minutes 20 seconds in the queue, including 29 minutes 4 seconds running CI.

Required conditions to merge

@mergify
mergify Bot merged commit e69fe29 into sigp:unstable Aug 3, 2026
38 checks passed
@mergify mergify Bot removed the queued label Aug 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gloas HTTP-API ready-for-merge This PR is ready to merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants