Skip to content

Verify operator termination and collateral withdrawal - #97

Draft
huangminghuang wants to merge 20 commits into
masterfrom
fix/wire-385-schedule-recovery
Draft

huangminghuang wants to merge 20 commits into
masterfrom
fix/wire-385-schedule-recovery

Conversation

@huangminghuang

@huangminghuang huangminghuang commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Extend the termination flow beyond bond remittance to require another complete rotation on both Ethereum and Solana.
  • Decode published group attestations and require full, distinct groups of standing operators, with the terminated account absent.
  • Keep the collateral-withdrawal fixture eligible to relay and verify its available collateral and ACTIVE status before remittance.

Why

Bond remits can arrive before a stale schedule prevents later delivery. The termination flow now checks both outpost cursors through another rotation and validates every published window it observes. Its expected group size comes from the same topology resolver used by bootstrap, including default settings.

The collateral fixture previously configured its whole deposit as the minimum and then withdrew half while expecting ACTIVE status. It now deposits 2,000,000 units against a 1,000,000-unit minimum and withdraws 1,000,000, retaining the exact final escrow assertion.

These flows exercise ordinary rotation with standing operators and the existing bootstrap. WIRE-392 is required before deployment for recovery/resumption and duty-frequency policy; automatic recovery remains undecided.

Validation

  • Tools build passed against the compiled sibling SDK; 107 focused tests across eight suites passed for bootstrap/action shapes and canonical code handling.
  • The linked SDK probe encoded chains.regchain, chains.setoutpost, opreg.setconfig and epoch.finishadv against the current SYSIO ABIs and rejected invalid canonical input.
  • Termination-flow lint passed; live continued-rotation and collateral assertions are included in the coordinated run below.
  • Coordinated E2E: 15/15 flows passed. Verified remote checkouts: SYSIO 67fe61c2, Ethereum 3f23632a, Libraries 99c5c14a and Tools d50fc784, with unchanged Solana cbf72188 and CDT a00bd718. Tools installed SDK 1.0.93 directly from the candidate Libraries checkout. Post-remit rotation on both outposts and eligible collateral withdrawal passed; optional flow-swap-epoch-stress is excluded.
  • The known upstream SDK strict-null error (Builtins.ts:89, TS2722) is waived as a prerequisite for this E2E run only; it remains unresolved.

Companion PRs

  • SYSIO #603: produces post-mutation rosters and the canonical continuation ABI; coordinate the consumer update before deploying this producer.
  • Ethereum #198: enforces immediate revocation and usable next-group admission; deploy its matching library and inbound implementation together before the SYSIO producer change.
  • Libraries #82: generates the continuation interface from the SYSIO ABI; candidate E2E links this checkout directly. For published packages, release Libraries before Tools.

Change-Id: I274aebcb28ed8a569d50d0d7e2e436ee8fa62136
Change-Id: I5fda20e3c43fb9d2912410cd953c8bca4e4ba047
Change-Id: I6373a6739601afad27340ae94f90983e7a583f17
Change-Id: I2a4165064a36ac08dbb66a2b1b9e0819883f34c8
Change-Id: I94bcf0f8b1f42c96925f33881467dbe21846d254
Change-Id: I9e54653f069116b4e2c26e46b5bdd0255f279c6d
Change-Id: Idac130820e1541d788243ab0db4deeb0dcc47029
Change-Id: I79aa3c8250781321c1fdfe2164d0ae3f65d5f9a5
@huangminghuang huangminghuang changed the title Add WIRE-385 schedule freeze and recovery scenario Cover WIRE-385 standby absorption and schedule recovery Sep 15, 2026
Change-Id: Ib6bb2ef97fa6de9d560078b8cb12e09c9d732455
Change-Id: I5a3363163ac54c8f9d820cce6e0e96242a50bddd
Change-Id: Ifa65e64377a92a2a51ea84eae70b3fc2c05fba18
…le-recovery

Change-Id: I5c11e737e00c86225ff35477c634ee266fcd1743

# Conflicts:
#	packages/cluster-tool/src/orchestration/ClusterBuildDefaults.ts
#	packages/cluster-tool/src/orchestration/ethereum/EthereumOutpostBootstrapper.ts
#	packages/cluster-tool/src/orchestration/ethereum/EthereumOutpostSteps.ts
#	packages/cluster-tool/tests/orchestration/ClusterBuildDefaultsEpochBootstrap.test.ts
#	packages/cluster-tool/tests/orchestration/ethereum/EthereumOutpostBootstrapper.test.ts
#	packages/cluster-tool/tests/orchestration/ethereum/EthereumOutpostSteps.test.ts
@huangminghuang
huangminghuang marked this pull request as draft September 22, 2026 16:30
…le-recovery

Change-Id: I3c08fff98038b739231639a9150f6b594595d729
Change-Id: Ic0c0ab55561899c47baf557a246aa1cbf9d6c46b
Change-Id: Ife8c43b291260367d861734bc268237913e4ad79
@huangminghuang huangminghuang changed the title Cover WIRE-385 standby absorption and schedule recovery Initialize Ethereum from the actual depot schedule Sep 22, 2026
Change-Id: I7046a9b4d14ba0cf3ce647ab295a1826684bfbe4
Use the upstream bootstrap restored by Ethereum #205 and keep WIRE-385 tooling changes limited to operator lifecycle flow validation.

Change-Id: I4012e2b59685961e9f6d1dddb03b652c015c32cb
@huangminghuang huangminghuang changed the title Initialize Ethereum from the actual depot schedule Verify operator termination and collateral withdrawal Sep 24, 2026
Change-Id: Id6d1c5678e2894b5aba6b7d64f6a04b9781a21df
@huangminghuang
huangminghuang marked this pull request as ready for review September 24, 2026 20:36
@huangminghuang
huangminghuang marked this pull request as draft September 25, 2026 15:22
Change-Id: I75935235bbca7ccd55ce079101a408ddae8226d4
Change-Id: I697691ea336494c4bde147818a84c06c31ae1159

This branch has not been deployed

No deployments
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