Skip to content

[WNS-34] Verify operator termination and collateral withdrawal - #97

Merged
heifner merged 28 commits into
masterfrom
fix/wire-385-schedule-recovery
Oct 23, 2026
Merged

heifner merged 28 commits into
masterfrom
fix/wire-385-schedule-recovery

Conversation

@huangminghuang

@huangminghuang huangminghuang commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Require a complete ordinary rotation on Ethereum and Solana after native WIRE termination and bond claims.
  • Require every observed published window to contain full, distinct groups of standing operators and exclude the terminated account.
  • Verify queued withdrawals preserve the minimum available native WIRE bond after reservations and leave the operator ACTIVE.

Why

A bond claim can finish before a stale roster prevents subsequent delivery. The termination flow therefore checks both inbound cursors through another rotation and inspects the windows it observes. Its existing epoch-derived deadline and assertions remain unchanged.

The collateral flow subtracts pending reservations before checking eligibility. These scenarios assume enough standing operators for ordinary rotation; WIRE-392 owns recovery/resumption policy before deployment.

Merged Tools #111 supplies the Anvil finality configuration and underwriting timing prerequisite in this candidate. The debugging-client test cleanup remains separate in Tools #150.

Validation

  • The native pre-commit gate passed layout/generator checks, lint, the full build and all 4,573 unit tests. The selected cluster suite passed 2,562 tests.
  • Consumer probes verified the paired SDK/model resolution and the rebuilt Solana next binary/IDL/bootstrap interfaces. This PR does not invoke the unpublished finishadv action or read last_paid_round.
  • Current-head registry CI: run 39837096599 (passed).
  • Coordinated candidate E2E: run 39837666494 passed all 14 flows, including operator termination and collateral withdrawal. Build reports confirm all four PR heads and Tools consumption of the paired Libraries checkout.

Companion PRs

  • SYSIO #603: publishes rosters after epoch-close mutations.
  • Ethereum #198: revokes stale authority and checks next-epoch majority admission through the new delivery protocol.
  • Libraries #82: declares the protected continuation. Coordinated testing uses the matching source build; publication remains a separate step.

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
@huangminghuang
huangminghuang marked this pull request as ready for review September 29, 2026 14:14
@huangminghuang
huangminghuang marked this pull request as draft October 16, 2026 19:06
@huangminghuang
huangminghuang marked this pull request as ready for review October 16, 2026 19:07
@huangminghuang huangminghuang changed the title Verify operator termination and collateral withdrawal [WNS-34] Verify operator termination and collateral withdrawal Oct 21, 2026

@jglanz jglanz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

separate the debugging-client-shared changes from the flow-* changes

@huangminghuang

Copy link
Copy Markdown
Contributor Author

Moved the debugging-client-shared subscription cleanup into #150. #97 now contains only the three termination/collateral flow files, with their existing assertions and deadlines unchanged.

I also merged current master to pick up your existing asynchronous LoggingManager test fix; the older test blocked the required pre-commit check with the newly published shared package. The complete PR description now reflects the split. The Tools #111 coordinated E2E prerequisite remains in place, and #97 stays draft pending that combined validation.

@huangminghuang
huangminghuang marked this pull request as ready for review October 21, 2026 18:35
@huangminghuang
huangminghuang requested a review from jglanz October 21, 2026 18:35
@huangminghuang
huangminghuang marked this pull request as draft October 21, 2026 19:39
@huangminghuang
huangminghuang marked this pull request as ready for review October 22, 2026 21:30
@heifner
heifner merged commit 0197216 into master Oct 23, 2026
2 checks passed
@heifner
heifner deleted the fix/wire-385-schedule-recovery branch October 23, 2026 15:27
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.

4 participants