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

Merge request reports

Loading
Loading