mirror of https://github.com/logos-co/staking.git
fix(Certora specs): ensure prover runs rules on `currentContract`
Since we're implementing rules for `StakeManager` migrations, we need multiple instances inside the certora specs. This results in the prover trying to run rules on the other `StakeManager` instance as well, which isn't always desired, as it causes some rules to fail, even though they'd pass if they'd be executed only on the `currentContract`. This commit makes the filter condition for relevant rules stronger, such that the prover will not run them on the `newStakeManager` contract instance.
This commit is contained in:
parent
bb31a4c80d
commit
450831a613
|
@ -41,7 +41,7 @@ definition blockedWhenNotMigrating(method f) returns bool = (
|
||||||
);
|
);
|
||||||
|
|
||||||
rule rejectWhenMigrating(method f) filtered {
|
rule rejectWhenMigrating(method f) filtered {
|
||||||
f -> blockedWhenMigrating(f)
|
f -> blockedWhenMigrating(f) && f.contract == currentContract
|
||||||
} {
|
} {
|
||||||
calldataarg args;
|
calldataarg args;
|
||||||
env e;
|
env e;
|
||||||
|
@ -68,7 +68,7 @@ rule allowWhenMigrating(method f) filtered {
|
||||||
|
|
||||||
|
|
||||||
rule rejectWhenNotMigrating(method f) filtered {
|
rule rejectWhenNotMigrating(method f) filtered {
|
||||||
f -> blockedWhenNotMigrating(f)
|
f -> blockedWhenNotMigrating(f) && f.contract == currentContract
|
||||||
} {
|
} {
|
||||||
calldataarg args;
|
calldataarg args;
|
||||||
env e;
|
env e;
|
||||||
|
@ -103,8 +103,9 @@ rule startMigrationCorrect {
|
||||||
assert newStakeManager.totalSupplyBalance() == currentContract.totalSupplyBalance();
|
assert newStakeManager.totalSupplyBalance() == currentContract.totalSupplyBalance();
|
||||||
}
|
}
|
||||||
|
|
||||||
rule migrationLockedIn {
|
rule migrationLockedIn(method f) filtered {
|
||||||
method f;
|
f -> !blockedWhenMigrating(f) && f.contract == currentContract
|
||||||
|
} {
|
||||||
env e;
|
env e;
|
||||||
calldataarg args;
|
calldataarg args;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue