multi: improve resolution lifecycle safety - #11054
Conversation
🔴 PR Severity: CRITICAL
🔴 Critical (10 files)
🟠 High (1 file)
AnalysisThis PR touches multiple To override, add a |
34933ca to
7c564ec
Compare
Add an explicit transaction matching mode while preserving the filter hint used by notifier backends. Keep requests indexed and clean up registrations when setup cannot finish.
Add one validated policy for confirmation requirements and height classification. Cover invalid depths and finality boundaries with focused tests.
Validate spend candidates through confirmation notifications at every configured depth. Preserve filter hints, inclusion details, causal errors, and bounded cancellation.
Exercise replacement, reorg, shutdown, and validation transitions with direct waiter calls and deterministic barriers. Verify matching inputs and authoritative inclusion state.
Route shared resolver spend waits through the stable-spend API while preserving existing one-confirmation behavior. Update legacy notifier fixtures to model that policy explicitly.
Apply the configured spend finality policy to success-resolver transitions through the shared resolver kit. Keep unrelated fixtures at one confirmation.
Keep mempool observation active while requiring a stable block spend for terminal timeout resolution. Add a standalone replacement regression with direct resolver assertions.
Resolve outgoing contests only after the observed spend reaches the configured finality policy. Keep resolver calls and terminal result assertions visible in the regression.
Classify spends with the shared finality policy and reject invalid publisher configuration. Preserve the last broadcast transaction when a candidate cannot be accepted.
Delay monitored input delivery until the shared finality policy is met. Extend notifier fixtures and cover removal followed by a stable replacement.
Require stable spend results before advancing breach output recovery. Preserve configured depth selection and verify removed candidates do not alter persisted recovery state.
Give each breach spend attempt one cancellation and join path. Ensure partial worker sets are released before shutdown or validation errors return.
Retry transient breach spend registration failures with a bounded delay while preserving terminal shutdown and validation errors. Cover cancellation across consecutive attempts.
Document the contract resolution lifecycle hardening included in this release.
7c564ec to
6e0fff8
Compare
Summary
Improve safety across contract resolution lifecycles.
Change Description