Skip to content

Chore: regenerate SysioContractTypes for sysio.chains outpost addrs - #72

Open
heifner wants to merge 2 commits into
masterfrom
fix/chains-outpost-addrs-types
Open

Chore: regenerate SysioContractTypes for sysio.chains outpost addrs#72
heifner wants to merge 2 commits into
masterfrom
fix/chains-outpost-addrs-types

Conversation

@heifner

@heifner heifner commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Regenerated from the wire-sysio system-contract ABIs with contracts/tools/generate-sysio-contract-types.py -P snake, picking up the sysio.chains change that moves each outpost's remote contract addresses onto its registry row (Wire-Network/wire-sysio#579).

  • sysio.chains: new outpost_addrs type — opp_addr, opp_inbound_addr, operator_registry_addr, source_deposit_addr
  • sysio.chains: new setoutpost action, and it joins the contract's action list
  • sysio.chains: regchain and chain_row gain the nested outpost field

Nothing else in the file changes.

Cross-repo

This needs to publish before the cluster-tool change can land: @wireio/sdk-core is a published dependency there, not a workspace link, and the cluster-tool step that seeds the addresses calls chains.actions.setoutpost.

Merge order: the two wire-sysio PRs, then this and its publish, then wire-tools-ts#77.

…st addrs

Regenerate packages/sdk-core/src/types/SysioContractTypes.ts from the wire-sysio system-contract ABIs (contracts/tools/generate-sysio-contract-types.py -P snake), picking up the sysio.chains outpost-address change.

- sysio.chains: add the outpost_addrs type (opp_addr, opp_inbound_addr, operator_registry_addr, source_deposit_addr) and the setoutpost action
- sysio.chains: regchain and chain_row gain the nested outpost field
- sysio.chains: setoutpost joins the contract's action list

Nothing else in the file changes. Required by the cluster-tool change that seeds each outpost chain's remote contract addresses onto its registry row.
Regenerating the types alone left the hand-written sysio.chains client broken: regchain's action data gained a required `outpost` field, so `createRegisterChainActionData` no longer satisfied its own return type and `tsc -b` failed.

More seriously, `ChainsRegisterChain` is the runtime serializer the contract proxy actually encodes with. Without the nested struct it would have encoded five fields where the ABI now expects six, so every regchain would have been rejected on chain — a typecheck-only fix would have compiled and then failed at runtime.

Adds ChainsOutpostAddrs and ChainsSetOutpost serializers, the setoutpost descriptor entry and action builders, a ChainOutpostAddresses type, and the addresses on ChainRecord. `ChainRegistration.outpost` is optional and every omitted role defaults to empty, matching the protocol's register-then-configure path: empty means not deployed yet, and both operator daemons skip such a chain rather than acting on a wrong address.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant