feat: add VIP to raise proposal threshold to 1M XVS#726
Open
Debugger022 wants to merge 11 commits into
Open
Conversation
- Upgrade GovernorBravo implementation so MAX_PROPOSAL_THRESHOLD allows 1,000,000 XVS, then raise the proposal threshold on all three routes (normal, fast-track, critical) - Preserve existing voting delays and periods; only the threshold changes - Order actions impl-first since the current cap rejects any threshold above 300,000 XVS
- Assert a sub threshold proposer is rejected and an at/above proposer is accepted, both before (300k) and after (1M) the raise - Show the same account that cleared the old 300k bar is blocked post-VIP, demonstrating the higher cost to submit a proposal - Fund the 1M-vote case by staking XVS and self-delegating in the vault, since no single existing holder has that voting power
734bea8 to
e80d3de
Compare
- testVip now reads the on-chain proposal threshold and quorum at the fork block and picks voters that satisfy them, instead of a fixed proposer that breaks once governance raises the bar - Defaults are returned unchanged whenever they still suffice, so simulations at historical fork blocks are unaffected - Falls back to a high-power voter only when the defaults fall short, keeping post-raise simulations able to propose and reach quorum
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Raises the proposal threshold for all three governance routes (Normal, Fast-track, Critical) from 300,000 XVS → 1,000,000 XVS, and the governance quorum from 600,000 XVS → 1,500,000 XVS.
Why two actions
The current
GovernorBravoDelegatehardcodesMAX_PROPOSAL_THRESHOLD = 300,000 XVS, andsetProposalConfigsreverts for any threshold above that cap. So the change requires, in order:GovernorBravo(0x2d56dC077072B53571b8252008C60e945108c75a) to a newGovernorBravoDelegate(0x9975d7064e40D16E1B76B90e56F606D72B385701) that setsMAX_PROPOSAL_THRESHOLD = 1,000,000 XVSandquorumVotes = 1,500,000 XVS. Storage-safe: only two constants changed, layout is unchanged.proposalThresholdto 1,000,000 XVS on all three routes, preserving existing voting delays and periods.Route is
REGULAR: both functions are admin-only and admin is the Normal Timelock.Why 1,500,000 XVS quorum
Set to 1.5× the new 1,000,000 XVS proposal threshold, keeping quorum above what a single proposer can supply so passing a vote still requires multi-voter consensus. Quorum is a constant in the new implementation, raised by Action 1 — no separate call.
What is NOT changed
1) and voting periods (192384/192384/48096) — unchanged on every route.Once this VIP executes, any account with less than 1,000,000 XVS of voting power can no longer create a proposal on any route. The previous bar was 300,000 XVS.
Testing
Fork simulation (
simulations/vip-636/bscmainnet.ts, fork block106069390, 18 passing) verifies:quorumVotesrises 600,000 XVS → 1,500,000 XVS.proposalThresholdbecomes 1,000,000 XVS on all three routes; voting delays/periods match captured pre-VIP state.src/vip-framework/index.tsso that once this VIP executes,testVipauto selects a proposer/supporters meeting the new 1M threshold and 1.5M quorum, keeping future VIP simulations able to propose and pass.Run:
npx hardhat test simulations/vip-636/bscmainnet.ts --fork bscmainnet