Skip to content

Commit 8998603

Browse files
authored
feat: Update Certora Formal Verification Tests
1 parent 49caffa commit 8998603

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

.github/workflows/certora.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
with: { java-version: '11', java-package: jre }
2121

2222
- name: Install certora cli
23-
run: pip install certora-cli==7.20.3
23+
run: pip install certora-cli==7.21.1
2424

2525
- name: Install solc
2626
run: |

certora/confs/ccip.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"certora/harness/SimpleERC20.sol"
55
],
66
"packages": [
7-
"solidity-utils/=contracts/foundry-lib/solidity-utils/src/"
7+
"solidity-utils/=contracts/foundry-lib/solidity-utils/src"
88
],
99
"link": [
1010
"UpgradeableLockReleaseTokenPool:i_token=SimpleERC20"

certora/specs/ccip.spec

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ methods {
99
function getCurrentBridgedAmount() external returns (uint256) envfree;
1010
function getBridgeLimit() external returns (uint256) envfree;
1111
function owner() external returns (address) envfree;
12+
function getRebalancer() external returns (address) envfree;
1213
}
1314

1415

@@ -93,9 +94,9 @@ rule only_lockOrBurn_can_increase_currentBridged(env e, method f)
9394

9495

9596
/* ==============================================================================
96-
rule: only_releaseOrMint_currentBridged
97+
rule: only_releaseOrMint_can_decrease_currentBridged
9798
============================================================================*/
98-
rule only_releaseOrMint_currentBridged(env e, method f)
99+
rule only_releaseOrMint_can_decrease_currentBridged(env e, method f)
99100
filtered { f -> filterSetter(f) }
100101
{
101102
calldataarg args;
@@ -131,3 +132,24 @@ rule only_owner_can_call_setCurrentBridgedAmount(env e) {
131132

132133
assert e.msg.sender==owner();
133134
}
135+
136+
/* ==============================================================================
137+
rule: only_rebalancer_can_call_provideLiquidity
138+
============================================================================*/
139+
rule only_rebalancer_can_call_provideLiquidity(env e) {
140+
uint256 amount;
141+
provideLiquidity(e, amount);
142+
143+
assert e.msg.sender==getRebalancer();
144+
}
145+
146+
147+
/* ==============================================================================
148+
rule: only_rebalancer_can_call_withdrawLiquidity
149+
============================================================================*/
150+
rule only_rebalancer_can_call_withdrawLiquidity(env e) {
151+
uint256 amount;
152+
withdrawLiquidity(e, amount);
153+
154+
assert e.msg.sender==getRebalancer();
155+
}

0 commit comments

Comments
 (0)