parent
ef8013ef79
commit
61fa061ecf
@ -0,0 +1,8 @@ |
||||
certoraRun \ |
||||
certora/harnesses/ERC20VotesHarness.sol \ |
||||
--verify ERC20VotesHarness:certora/specs/ERC20Votes.spec \ |
||||
--solc solc8.2 \ |
||||
--optimistic_loop \ |
||||
--cloud \ |
||||
--settings -strictDecompiler=false,-assumeUnwindCond \ |
||||
--msg "sanityVotes" |
@ -0,0 +1,7 @@ |
||||
certoraRun \ |
||||
certora/harnesses/TimelockControllerHarness.sol \ |
||||
--verify TimelockControllerHarness:certora/specs/TimelockController.spec \ |
||||
--solc solc8.2 \ |
||||
--optimistic_loop \ |
||||
--cloud \ |
||||
--msg "sanity" |
@ -0,0 +1,6 @@ |
||||
rule sanity(method f) { |
||||
env e; |
||||
calldataarg arg; |
||||
f(e, arg); |
||||
assert false; |
||||
} |
@ -0,0 +1,36 @@ |
||||
methods { |
||||
// hashOperation(address target, uint256 value, bytes data, bytes32 predecessor, bytes32 salt) returns(bytes32) => uniqueHashGhost(target, value, data, predecessor, salt) |
||||
} |
||||
|
||||
// ghost uniqueHashGhost(address, uint256, bytes, bytes32, bytes32) returns bytes32; |
||||
// |
||||
// Assuming the hash is deterministic, and correlates the trio properly |
||||
// function hashUniquness(address target1, uint256 value1, bytes data1, bytes32 predecessor1, bytes32 salt1, |
||||
// address target2, uint256 value2, bytes data2, bytes32 predecessor2, bytes32 salt2){ |
||||
// require ((target1 != target2) || (value1 != value2) || (data1 != data2) || (predecessor1 != predecessor2) || (salt1 != salt2)) <=> |
||||
// (uniqueHashGhost(target1, value1, data1, predecessor1, salt1) != uniqueHashGhost(target2, value2, data2, predecessor2, salt2)); |
||||
// } |
||||
// |
||||
// |
||||
// rule keccakCheck(method f, env e){ |
||||
// address target; |
||||
// uint256 value; |
||||
// bytes data; |
||||
// bytes32 predecessor; |
||||
// bytes32 salt; |
||||
// |
||||
// hashUniquness(target, value, data, predecessor, salt, |
||||
// target, value, data, predecessor, salt); |
||||
// |
||||
// bytes32 a = hashOperation(e, target, value, data, predecessor, salt); |
||||
// bytes32 b = hashOperation(e, target, value, data, predecessor, salt); |
||||
// |
||||
// assert a == b, "hashes are different"; |
||||
// } |
||||
|
||||
rule sanity(method f) { |
||||
env e; |
||||
calldataarg arg; |
||||
f(e, arg); |
||||
assert false; |
||||
} |
Loading…
Reference in new issue