Skip to content

sdk-core: regenerate SysioContractTypes for the epoch roster digest (WIRE-342) - #70

Draft
heifner wants to merge 1 commit into
masterfrom
fix/wire-342-roster-digest-types
Draft

sdk-core: regenerate SysioContractTypes for the epoch roster digest (WIRE-342)#70
heifner wants to merge 1 commit into
masterfrom
fix/wire-342-roster-digest-types

Conversation

@heifner

@heifner heifner commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Generated-output-only companion to Wire-Network/wire-sysio#568.

That PR stops sysio.epoch::advance from re-broadcasting the full OPERATORS roster on
every epoch, sending it only when its content actually changes. The gate is a new
per-outpost table, sysio.epoch::rosterdig, holding the digest of the last roster queued
for each outpost.

Regenerated from the resulting ABI:

  • SysioEpochRosterDigestEntryType{ chain_code, digest, sent_at_epoch }
  • SysioEpochRosterDigestKeyType{ chain_code }
  • rosterdig registered on the epoch contract's tables and in SysioContractDefinitions

14 insertions, 1 deletion, one file. Nothing else in the ABI surface moved — the other
changes in #568 are validation logic and internals with no ABI delta.

Verified

  • Regenerated with contracts/tools/generate-sysio-contract-types.py -B . -O … -P snake -f
    against wire-sysio at master + #568; not hand-edited.
  • pnpm build clean, and rosterdig / SysioEpochRosterDigestEntryType confirmed present
    in the compiled lib/cjs and lib/esm output — not just source, since tsc -b will
    happily keep a stale lib/.
  • pnpm-lock.yaml deliberately left at master. A pnpm install in a worktree rewrites it
    to drop @wireio/opp-typescript-models, because the sibling .pnpmfile.cjs link resolves
    it from wire-sysio/build/opp/typescript rather than the registry. That artifact is not
    part of this change.

Merge order

wire-sysio#568 first, then this. An e2e dispatch covering the pair must carry both
BRANCH_WIRE_SYSIO and BRANCH_WIRE_LIBRARIES_TS overrides — the gate does not regenerate
SysioContractTypes itself, so omitting the second builds the flows against the old types
and goes green for the wrong reason.

Generated-output-only companion to Wire-Network/wire-sysio#568, which adds the
`sysio.epoch::rosterdig` table -- the per-outpost digest of the last OPERATORS
attestation queued for that outpost, so the roster ships only when its content
changes instead of on every epoch.

Adds `SysioEpochRosterDigestEntryType` / `SysioEpochRosterDigestKeyType` and
registers `rosterdig` on the epoch contract's tables and in
`SysioContractDefinitions`. Nothing else in the ABI surface moved.

Change-Id: I43cb504a510b9752405aedc491ac9793ae0d009b
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