sdk-core: regenerate SysioContractTypes for the epoch roster digest (WIRE-342) - #70
Draft
heifner wants to merge 1 commit into
Draft
sdk-core: regenerate SysioContractTypes for the epoch roster digest (WIRE-342)#70heifner wants to merge 1 commit into
heifner wants to merge 1 commit into
Conversation
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
heifner
marked this pull request as draft
August 18, 2026 18:57
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.
Generated-output-only companion to Wire-Network/wire-sysio#568.
That PR stops
sysio.epoch::advancefrom re-broadcasting the full OPERATORS roster onevery 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 queuedfor each outpost.
Regenerated from the resulting ABI:
SysioEpochRosterDigestEntryType—{ chain_code, digest, sent_at_epoch }SysioEpochRosterDigestKeyType—{ chain_code }rosterdigregistered on the epoch contract'stablesand inSysioContractDefinitions14 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
contracts/tools/generate-sysio-contract-types.py -B . -O … -P snake -fagainst wire-sysio at
master+ #568; not hand-edited.pnpm buildclean, androsterdig/SysioEpochRosterDigestEntryTypeconfirmed presentin the compiled
lib/cjsandlib/esmoutput — not just source, sincetsc -bwillhappily keep a stale
lib/.pnpm-lock.yamldeliberately left atmaster. Apnpm installin a worktree rewrites itto drop
@wireio/opp-typescript-models, because the sibling.pnpmfile.cjslink resolvesit from
wire-sysio/build/opp/typescriptrather than the registry. That artifact is notpart of this change.
Merge order
wire-sysio#568 first, then this. An e2e dispatch covering the pair must carry both
BRANCH_WIRE_SYSIOandBRANCH_WIRE_LIBRARIES_TSoverrides — the gate does not regenerateSysioContractTypesitself, so omitting the second builds the flows against the old typesand goes green for the wrong reason.