Loading
Solvency: unify solvency checks into a single reporter
Closing in favor of !4597.
Reason: same changes were reopened from an upstream source branch instead of a fork. Please continue review/discussion in !4597.
This MR introduces a unified solvency reporter flow inspired by MAYA's unify-solvency-checks work (mayachain/mayanode!698), and adds comprehensive simulation coverage for both "steal" and "restore" paths.
Summary
- Consolidates solvency detection into one reporter-driven path across chains.
- Uses consistent gap evaluation and halt decisioning with shared thresholds.
- Preserves and strengthens automatic unhalt behavior when solvency is restored.
- Improves operational visibility through cleaner, chain-consistent reporting signals.
- Adds simulation validation that induces insolvency, verifies halt, restores solvency, and verifies unhalt.
Simulation status
- Stable end-to-end restore coverage in suite: EVM, UTXO, GAIA, TRON, SOL, and XRP.
- Insolvency and solvency triggering works on these chains (core reporter behavior is validated).
- Current insolvency simulation is designed for single-node mocknet only. It does not run on
mocknet-cluster, because the induced insolvency flow requires direct Asgard signer control for the "steal" step, which is not possible when vault signing is multi-party (TSS-shared).
Why this is valuable
- One solvency reporting model is easier to reason about, operate, and extend.
- Halting and unhalting behavior becomes more predictable across chain types.
- Simulation reflects realistic coverage boundaries while still testing the reporter thoroughly.
Test plan
[x] make test — unit tests pass
[x] make test-simulation — all tests pass
Edited by ZlyDevMaya