Why
The first Gate A implementation PRs intentionally separated a coherent cross-cutting test set from CLI-01, SIGN-01, and API-01. This issue owns those missing tests without reopening the completed implementation scopes.
Genesis
Readiness
Identity and BN errors
BuilderStatusTracker
CLI
x malformed execution fee recipient is rejected (tested in validator)
x valid fee recipient parses to 20 bytes (tested in validator, parser function, cli)
Done when
The missing Gate A lifecycle, readiness, cancellation, diagnostic, identity, tracker, and CLI cases pass against the merged implementation, with each REVIEW-01 behavior represented by a focused regression where applicable.
Evidence
- Source implementation: Lodestar PR #9781
- Current merged baseline refreshed on 1 September 2026: Lodestar
unstable at 1e9a530f9897d50d2d6337cd4143c8dc53667c66, including merged Lodestar PR 9832, with TEST-01 head 239149e288c6ce1d6396a48fb5de2ea4c7be4886
- Existing identity coverage:
packages/builder/test/unit/identity.test.ts
- Existing tracker coverage:
packages/builder/test/unit/services/builderStatusTracker.test.ts
- Upstream PR: ChainSafe/lodestar#9932, open, non-draft, mergeable, and awaiting maintainer review
- Current TEST-01 evidence: 7 readiness tests, 3 genesis tests, 19 identity tests, 5 BuilderStatusTracker tests, and 6 signer tests pass on Node 24.13.0, for 40 focused Builder tests; package type-check, lint, and
git diff --check pass. The source-equivalent pre-refresh head passed unit, type, lint, E2E, browser, spec, CodeQL, and simulation jobs. The refreshed head only merges current unstable; its full fork workflows still require maintainer approval
- Existing activation evidence:
waits for beacon node to return the builder and waits for a pending builder to become active; PR test(builder): cover remaining Gate A lifecycle regressions adds abort-during-wait coverage without duplicating those transitions
- Review implementation: REVIEW-01
- Existing signer and keystore coverage: Lodestar PR #9758
Why
The first Gate A implementation PRs intentionally separated a coherent cross-cutting test set from CLI-01, SIGN-01, and API-01. This issue owns those missing tests without reopening the completed implementation scopes.
Genesis
Readiness
Identity and BN errors
ApiErrorwith HTTP status and useful response detailBuilderStatusTracker
CLI
xmalformed execution fee recipient is rejected (tested in validator)xvalid fee recipient parses to 20 bytes (tested in validator, parser function, cli)Done when
The missing Gate A lifecycle, readiness, cancellation, diagnostic, identity, tracker, and CLI cases pass against the merged implementation, with each REVIEW-01 behavior represented by a focused regression where applicable.
Evidence
unstableat1e9a530f9897d50d2d6337cd4143c8dc53667c66, including merged Lodestar PR 9832, with TEST-01 head239149e288c6ce1d6396a48fb5de2ea4c7be4886packages/builder/test/unit/identity.test.tspackages/builder/test/unit/services/builderStatusTracker.test.tsgit diff --checkpass. The source-equivalent pre-refresh head passed unit, type, lint, E2E, browser, spec, CodeQL, and simulation jobs. The refreshed head only merges currentunstable; its full fork workflows still require maintainer approvalwaits for beacon node to return the builderandwaits for a pending builder to become active; PR test(builder): cover remaining Gate A lifecycle regressions adds abort-during-wait coverage without duplicating those transitions