Skip to content

Commit

Permalink
refactor: improve updatedDelegatedVPLTEqTotalSupply
Browse files Browse the repository at this point in the history
  • Loading branch information
colin-morpho committed Jan 15, 2025
1 parent f55c098 commit 273104e
Showing 1 changed file with 15 additions and 12 deletions.
27 changes: 15 additions & 12 deletions certora/specs/Delegation.spec
Original file line number Diff line number Diff line change
Expand Up @@ -226,21 +226,24 @@ rule updatedDelegatedVPLTEqTotalSupply(env e, address to, uint256 amount) {
// Safe require as since we consider only updates.
require delegatee(to) != delegatee(e.msg.sender);

delegate(e, e.msg.sender);
delegate@withrevert(e, e.msg.sender);

assert delegatee(e.msg.sender) == e.msg.sender && delegatee(e.msg.sender) != 0;
if (!lastReverted) {

// Safe require that follows from delegatedLTEqDelegateeVP.
require amount <= delegatedVotingPower(e.msg.sender) ;
assert delegatee(e.msg.sender) == e.msg.sender && delegatee(e.msg.sender) != 0;

requireInvariant delegatedVotingPowerLTEqTotalVotingPower();
requireInvariant sumOfVotesStartsAtZero();
requireInvariant sumOfVotesGrowsCorrectly();
requireInvariant sumOfVotesMonotone();
requireInvariant totalSupplyIsSumOfVirtualVotingPower();
requireInvariant sumOfTwoDelegatedVPLTEqTotalVP();
// Safe require that follows from delegatedLTEqDelegateeVP.
require amount <= delegatedVotingPower(e.msg.sender) ;

assert isTotalSupplyGTEqSumOfVotingPower();
requireInvariant delegatedVotingPowerLTEqTotalVotingPower();
requireInvariant sumOfVotesStartsAtZero();
requireInvariant sumOfVotesGrowsCorrectly();
requireInvariant sumOfVotesMonotone();
requireInvariant totalSupplyIsSumOfVirtualVotingPower();
requireInvariant sumOfTwoDelegatedVPLTEqTotalVP();

assert delegatedVotingPower(to) + amount <= totalSupply();
assert isTotalSupplyGTEqSumOfVotingPower();

assert delegatedVotingPower(to) + amount <= totalSupply();
}
}

0 comments on commit 273104e

Please sign in to comment.