fix(cluster-tool): pass systemProgram to opp_bootstrap - #86
Merged
Conversation
valthon
force-pushed
the
fix/sol-bootstrap-system-program
branch
2 times, most recently
from
August 28, 2026 15:53
2cbfc03 to
7cf100e
Compare
Every one of the 14 e2e flows failed at the same step -- `EpochBootstrap / seed-solana-roster`, with `Account 'systemProgram' not provided.` -- so no cluster ever finished bootstrapping and the whole gate went red. SOL-385 made `system_program` a required account on `opp_bootstrap`: the operator registry PDA is now created SHORT (`INITIAL_SIZE`, all a CPI may allocate at 128 operators) and the first successful bootstrap GROWS it to full size, topping the rent up from `admin`. wire-solana's own suite was updated for that; this call site was not, and Anchor does not resolve the account for us here, so the instruction is refused before the program ever runs. Verified the fix is COMPLETE rather than merely unblocking the first error: `OppBootstrap` declares exactly `admin`, `global_config`, `config`, `operator_registry`, `system_program`, and the harness now supplies all five (`admin` + `globalConfig` via `getAdminAccounts`). There is no second missing account behind this one -- Anchor reports them one at a time, which is why that check matters. Matches the five existing `systemProgram:` call sites in this file.
valthon
force-pushed
the
fix/sol-bootstrap-system-program
branch
from
August 29, 2026 11:17
7cf100e to
0c218ae
Compare
jglanz
approved these changes
Aug 31, 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.
Unblocks wire-solana #442 (SOL-385). One line, and inert until that lands.
#442 makes
opp_bootstrapgrow the operator registry. AtMAX_OPERATORS = 128the full account is 12 344 B — more than a CPI may allocate — so the PDA is created atINITIAL_SIZE(10 240 B) and the first bootstrap reallocs it to full size, topping up rent fromadmin. That transfer is why the instruction now requiressystem_program.wire-solana's own suite was updated for the new account; this call site was not. It builds the account map explicitly, and the harness holds the program as
Program<Idl>, so nothing resolvessystemProgramfor it — Anchor refuses the instruction before the program runs (Account 'systemProgram' not provided.) and every flow dies atEpochBootstrap / seed-solana-roster. That is what took run 33002424120, dispatched against #442's branch, to zero passing flows.Safe to land before #442. Anchor builds the on-wire account list from the IDL it loads at runtime, so the extra key is ignored against today's
next, which has nosystem_program. #444 is stacked on #442 and inherits the same requirement.Verified by running
flow-operator-collateral-depositend-to-end against a #442 build — 140 steps, 0 non-ok, epochs 1 → 5, OPP circulating in all four directions. That flow covers both the bootstrap and a SOL collateral deposit, so it also exercises theregistry_initializedgate SOL-385 added.🤖 Generated with Claude Code