ROHME-5: migrate to Governor V2 — make quorum reachable
READ THIS FIRST. Governance is currently DEAD. RohmeGovernor V1 sets MIN_ABSOLUTE_QUORUM as a
`constant` at 1,000 gROHM and its bps parameters as `immutable`. Only about 222 gROHM exists.
No proposal - including this one - can pass until delegated gROHM crosses 1,000, and there is
no admin escape: the Safe renounced timelock admin at genesis, by design. That was the right
instinct against a tiny-float rubber stamp; the floor was simply set above the entire
achievable voting supply.
This is the bootstrap trap, stated honestly: THIS proposal must itself clear V1's 1,000 gROHM
quorum in order to lower the floor to 100. Passing it requires roughly 778 more gROHM staked,
wrapped and DELEGATED. gROHM grants zero voting power until delegated, even to yourself, which
is the step most holders miss. Nothing else on the ballot can execute until this passes.
WHAT V2 CHANGES. Every threshold becomes tunable, with the tuning itself made lockout-proof:
- quorum floor 1,000 -> 100 gROHM, and it is now storage rather than a constant;
- quorum 10 pct of non-excluded circulating gROHM, whichever is greater;
- proposal threshold 0.25 pct of supply;
- voting delay 12h (was 24h), voting period 48h (was 5 days);
- a RAISE must be REACHABLE: it cannot exceed the non-excluded circulating supply at the
time it is set, so governance can never vote itself back into a dead-on-arrival state;
- the param guardian may only ever LOWER thresholds - an escape valve if quorum becomes
unreachable again. Lowering grants no capture power: quorum is participation, not
approval; a proposal still needs FOR > AGAINST, the guardian gains no voting weight, and
every passed proposal still serves the timelock delay under the Safe's CANCELLER veto;
- voting delay and period gain permanent CAPS as well as floors. V1 had only floors, so one
passed proposal could have set a 100-year voting period and soft-bricked governance.
ACTIONS.
1. Timelock.grantRole(PROPOSER_ROLE, 0x006f98318205e3cc570c54775687485c95d7e2d1)
2. Timelock.grantRole(CANCELLER_ROLE, 0x006f98318205e3cc570c54775687485c95d7e2d1)
3. Timelock.revokeRole(PROPOSER_ROLE, 0xaEd67488D40f910eead998067abdC90413d2bA14) (V1)
4. Timelock.updateDelay(86400) (48h -> 24h)
The Timelock itself does NOT change, so anything already queued against it, and every contract
that references it, stays valid. Only which Governor may queue into it changes.
WHAT YOU ARE ACCEPTING. A quorum of 100 gROHM is a far lower bar than 1,000, and a 24h timelock
is half the current delay. That is the point - the present settings cannot pass anything - but
it is a genuine reduction in how much participation a decree needs, and the deployer holds the
param guardian role. If you would rather wait for organic delegation to reach 1,000 under the
existing rules, vote against.
This proposal supersedes the original ROHME-1, which bundled this migration with an unrelated
FeeCollector fix under a single-line description. That fix is now ROHME-6, so each can be
judged on its own.