Skip to content

Chore: regenerate SysioContractTypes for claimable payout actions - #66

Open
heifner wants to merge 2 commits into
masterfrom
sec-150-sdk-types
Open

Chore: regenerate SysioContractTypes for claimable payout actions#66
heifner wants to merge 2 commits into
masterfrom
sec-150-sdk-types

Conversation

@heifner

@heifner heifner commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Companion to Wire-Network/wire-sysio#558 (SEC-150).

sysio.system, sysio.reserv and sysio.opreg no longer push sysio.token::transfer on their never-throw payout paths. sysio.token::transfer notifies its recipient, and the chain runs notified receivers with no exception isolation, so a recipient's on_notify handler could abort the enclosing transaction — which on the epoch-advance paths meant halting epoch advancement chain-wide. Those payouts now credit a claimable balance that the recipient pulls with a self-authorized action.

Regenerated SysioContractTypes.ts from the resulting ABIs.

New actions

Action Pays
sysio.system::claimpay producer, standby, batch-operator and category-bucket epoch pay
sysio.reserv::claimwire swap-to-WIRE payouts and swap-from-WIRE refunds
sysio.opreg::claimremit returned CORE_SYM collateral

New tables: payclaims and payclaimtot on sysio.system, wireclaims on sysio.reserv, remitclaims on sysio.opreg. The per-account tables are readable to show a "you have X to claim" balance.

Without this, SDK consumers cannot call the claim actions or read what they are owed.

Generated with contracts/tools/generate-sysio-contract-types.py -P snake; no hand edits.

…ctions

sysio.system, sysio.reserv and sysio.opreg now credit claimable balances on their
never-throw payout paths instead of pushing sysio.token::transfer, so recipients pull
their funds with a self-authorized claim action. Regenerated from those ABIs.

Adds the three claim actions -- sysio.system::claimpay, sysio.reserv::claimwire and
sysio.opreg::claimremit -- and the four ledger tables backing them: payclaims and
payclaimtot on sysio.system, wireclaims on sysio.reserv, remitclaims on sysio.opreg.

Without these, SDK consumers cannot call the claim actions or read what they are owed.
`SysioContractTypes.ts` is fully generated, so the conflict is resolved by
REGENERATING it from the current wire-sysio ABIs rather than by hand-merging two
generated outputs. Run against wire-sysio `fix/sec-150-claimable-payouts`
(c453c0c0e0), which is itself up to date with wire-sysio master.

That pulls in three things at once:

* master's own regenerations, which conflicted here.
* the swap-fee-distribution surface wire-sysio master has since gained —
  `sysio.reserv::{setconfig,setrsvfee,rsvfeebal,claimrsvfee,uwfeebal,claimuwfee}`
  plus the `uwfees` / `reservcfg` tables. This branch predated that work, so it
  had none of it.
* the SEC-150 claimable-payout surface this PR exists for:
  `sysio.system::claimpay` + `payclaims`/`payclaimtot`,
  `sysio.reserv::claimwire` + `wireclaims`,
  `sysio.opreg::claimremit` + `remitclaims`.

Also picks up today's retention-stamp change (wire-sysio c453c0c0e0):
`SysioSystemPayClaimType` and `SysioOpregRemitClaimType` each gain
`expires_at_sec`, matching `SysioReservWireClaimType`. The field is recorded but
unread on chain — no sweep is wired — so nothing here changes behaviour; the
types just have to carry the column.

Gate: `pnpm build`, `typecheck:strict-null:sdk-core`, and jest (76 suites, 885
tests) all pass.

Change-Id: I1c9d8cff2167a6a1587be2dfe357cc9324beb300
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.

2 participants