[Add] Add Vault manager
Introducing vault manager. This is intended to replace the pool address manager (in a follow on PR).
To walk through a node churn, here are the steps...
- Wake up every six hours to check if there are any nodes to churn out.
- Wake up every three days to mark nodes to be churned out for either bad behavior or age
- If we have node accounts to churn, we trigger a new keygen.
- Each signer will do a keygen, and report back to thorchain via direct tx
- Once 2/3rds of the signers report back, we create an asgard vault, and trigger
RotateVault() - This detects which vault to change status from "active" from "retiring".
- The vault manager
EndBlock()then moves funds over time from the retiring vault to another active vault. This is triggered every 30 minutes after the vault was set to "retiring", it moves %Release-0.57.0 of its amounts. After the 5th time, it sends the full 100%. We do this to ensure that we don't make large sums of asgard funds unavailable (due to BTC long block times). This will also require a follow on PR of the signer, to know when it doesn't have enough gas to pay for a tx, and reduce the amount being sent to allow it to be sent.