Created
August 11, 2022 15:17
-
-
Save yuradmt/e84d4e268129f18194161a4b8870280b to your computer and use it in GitHub Desktop.
delegationToZeroAlwaysPossible - aave token v3/certora
This file contains 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
rule delegationToZeroAlwaysPossible() { | |
env e; | |
require e.msg.value == 0; | |
require validDelegationState(e.msg.sender); // _balances[e.msg.sender].delegationState < 4 | |
address v_delegateFrom = getVotingDelegate(e.msg.sender); | |
address p_delegateFrom = getPropositionDelegate(e.msg.sender); | |
mathint dvbFrom = getDelegatedVotingBalance(v_delegateFrom); | |
mathint pvbFrom = getDelegatedPropositionBalance(p_delegateFrom); | |
require dvbFrom >= balanceOf(e.msg.sender) / DELEGATED_POWER_DIVIDER(); | |
require pvbFrom >= balanceOf(e.msg.sender) / DELEGATED_POWER_DIVIDER(); | |
delegate@withrevert(e, 0); | |
assert !lastReverted; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment