Fix: source outpost identity from sysio.chains - #77
Open
heifner wants to merge 2 commits into
Open
Conversation
nodeop no longer accepts any per-node outpost declaration, and rejects unknown options outright, so cluster-managed operators fail to start until this matches. Drops batch-enabled, underwriter-enabled, batch-outpost, batch-sol-client-id and both underwriter-{eth,sol}-outpost; the daemons derive enablement from their account and read every outpost's remote contract addresses off its sysio.chains row.
Outpost RPC client ids are now the chain codes. Both daemons look a chain's client up under that chain's sysio.chains code, so eth-default / sol-default would be invisible to them; EthereumClientId and SolanaClientId become aliases of the codenames rather than separate values.
regchain carries an empty outpost struct and the addresses are written afterwards by a new seed-outpost-addresses step. They cannot go inline: RegistrySteps runs before the daemon artifacts are published, so the SOL program id is not resolvable there, and in external-outpost mode it comes from the external config rather than the local keypair. The step runs in OperatorDaemonPrerequisites, after the artifact step and before any daemon starts, which is correct in both modes and exercises setoutpost the way an operator will use it for a redeploy.
Requires the regenerated @wireio/sdk-core types for the setoutpost action and the widened regchain.
This was referenced Aug 20, 2026
Open
The regchain action data gained a required `outpost` field, so the step test's fixture no longer typechecked. Registered empty here for the same reason RegistrySteps registers chains empty: the addresses are seeded afterwards by the setoutpost step, once the daemon artifacts resolve.
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.
Matches the wire-sysio change that moves every outpost's identity onto its
sysio.chainsrow. nodeop rejects unknown options, so cluster-managed batch operators and underwriters will not start until this lands with it.Flags removed
--batch-enabled,--underwriter-enabled(the account is now the enable switch),--batch-outpost,--batch-sol-client-id, and both--underwriter-{eth,sol}-outpost. Nothing about an outpost is declared per node any more.Client ids are the chain codes
Both daemons look a chain's RPC client up under that chain's
sysio.chainscode, soeth-default/sol-defaultwould be invisible to them.EthereumClientIdandSolanaClientIdbecome aliases of the codenames rather than separate values, and the ETH/SOL client specs are emitted asETHEREUM,.../SOLANA,....Addresses are seeded on-chain
regchaincarries an emptyoutpoststruct and the addresses are written afterwards by a newseed-outpost-addressesstep inOperatorDaemonPrerequisites.They cannot go inline at registration:
RegistryStepsruns before the daemon artifacts are published, so the SOL program id is not resolvable there, and in external-outpost mode it comes from the external config rather than the local keypair. Runningsetoutpostafter the artifact step and before any daemon starts is correct in both modes, and exercises the action an operator will actually use for a remote redeploy.sysio.chainssupports register-then-configure for exactly this.Landing order
Blocked on the regenerated
@wireio/sdk-coretypes — it is a published dependency here, not a workspace link, and the new step callschains.actions.setoutpost. Order: wire-sysio, then sdk-core publish, then this.Cross-repo
Plugin: derive operator daemon enablement from the configured account wire-sysio#578 — drop the daemon enable flags
Opp: source outpost identity from sysio.chains instead of operator config wire-sysio#579 — source outpost identity from
sysio.chainsChore: regenerate SysioContractTypes for sysio.chains outpost addrs wire-libraries-ts#72 — regenerated
SysioContractTypesJira: WIRE-363 — https://wire-network.atlassian.net/browse/WIRE-363
Jira: WIRE-364 — https://wire-network.atlassian.net/browse/WIRE-364