helperFunctionArgumentEnv

pull/2997/head
Aleksander Kryukov 3 years ago
parent c38babecd9
commit 38e42f92c2
  1. 20
      certora/specs/GovernorBase.spec

@ -36,17 +36,6 @@ methods {
//////////////////////////////// Definitions ///////////////////////////////// //////////////////////////////// Definitions /////////////////////////////////
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// definition proposalNotExist(uint256 pId) returns bool =
// !isExecuted(pId) && !isCanceled(pId) && proposalSnapshot(pId) == 0 && proposalDeadline(pId) == 0;
// definition proposalCreatedAndRunning(uint256 pId) returns bool =
// !isExecuted(pId) && !isCanceled(pId) && proposalSnapshot(pId) != 0 && proposalDeadline(pId) != 0;
// definition proposalCanceled(uint256 pId) returns bool =
// !isExecuted(pId) && isCanceled(pId) && proposalSnapshot(pId) != 0 && proposalDeadline(pId) != 0;
// definition proposalExecuted(uint256 pId) returns bool =
// isExecuted(pId) && !isCanceled(pId) && proposalSnapshot(pId) != 0 && proposalDeadline(pId) != 0;
// proposal was created - relation proved in noStartBeforeCreation // proposal was created - relation proved in noStartBeforeCreation
definition proposalCreated(uint256 pId) returns bool = proposalSnapshot(pId) > 0; definition proposalCreated(uint256 pId) returns bool = proposalSnapshot(pId) > 0;
@ -56,10 +45,9 @@ definition proposalCreated(uint256 pId) returns bool = proposalSnapshot(pId) > 0
///////////////////////////// Helper Functions /////////////////////////////// ///////////////////////////// Helper Functions ///////////////////////////////
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
function helperFunctionWithRevert(uint256 proposalId, method f) { function helperFunctionsWithRevert(uint256 proposalId, method f, env e) {
address[] targets; uint256[] values; bytes[] calldatas; string reason; bytes32 descriptionHash; address[] targets; uint256[] values; bytes[] calldatas; string reason; bytes32 descriptionHash;
uint8 support; uint8 v; bytes32 r; bytes32 s; uint8 support; uint8 v; bytes32 r; bytes32 s;
env e;
if (f.selector == propose(address[], uint256[], bytes[], string).selector) { if (f.selector == propose(address[], uint256[], bytes[], string).selector) {
uint256 result = propose@withrevert(e, targets, values, calldatas, reason); uint256 result = propose@withrevert(e, targets, values, calldatas, reason);
require(result == proposalId); require(result == proposalId);
@ -296,7 +284,7 @@ rule allFunctionsRevertIfExecuted(method f) filtered { f -> !f.isView && f.selec
requireInvariant noBothExecutedAndCanceled(pId); requireInvariant noBothExecutedAndCanceled(pId);
requireInvariant executedImplyStartAndEndDateNonZero(pId); requireInvariant executedImplyStartAndEndDateNonZero(pId);
helperFunctionWithRevert(pId, f); helperFunctionsWithRevert(pId, f, e);
assert(lastReverted, "Function was not reverted"); assert(lastReverted, "Function was not reverted");
} }
@ -312,7 +300,7 @@ rule allFunctionsRevertIfCanceled(method f) filtered { f -> !f.isView && f.selec
requireInvariant noBothExecutedAndCanceled(pId); requireInvariant noBothExecutedAndCanceled(pId);
requireInvariant canceledImplyStartAndEndDateNonZero(pId); requireInvariant canceledImplyStartAndEndDateNonZero(pId);
helperFunctionWithRevert(pId, f); helperFunctionsWithRevert(pId, f, e);
assert(lastReverted, "Function was not reverted"); assert(lastReverted, "Function was not reverted");
} }
@ -326,7 +314,7 @@ rule executedOnlyAfterExecuteFunc(address[] targets, uint256[] values, bytes[] c
bool executedBefore = isExecuted(pId); bool executedBefore = isExecuted(pId);
require(!executedBefore); require(!executedBefore);
helperFunctionWithRevert(pId, f); helperFunctionsWithRevert(pId, f, e);
require(!lastReverted); require(!lastReverted);
bool executedAfter = isExecuted(pId); bool executedAfter = isExecuted(pId);

Loading…
Cancel
Save