Skip to content

Commit

Permalink
Add Certora specs
Browse files Browse the repository at this point in the history
  • Loading branch information
sunbreak1211 committed Nov 14, 2024
1 parent 3e37e6d commit 019f67f
Show file tree
Hide file tree
Showing 20 changed files with 1,875 additions and 0 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/certora.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Certora

on: [push, pull_request]

jobs:
certora:
name: Certora
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
alm-controller:
- rate-limits
- mainnet-controller
- foreign-controller

steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: recursive

- uses: actions/setup-java@v2
with:
distribution: 'zulu'
java-version: '11'
java-package: jre

- name: Set up Python 3.8
uses: actions/setup-python@v3
with:
python-version: 3.8

- name: Install solc-select
run: pip3 install solc-select

- name: Solc Select 0.8.21
run: solc-select install 0.8.21

- name: Install Certora
run: pip3 install certora-cli-beta

- name: Verify ${{ matrix.alm-controller }}
run: make certora-${{ matrix.alm-controller }} results=1
env:
CERTORAKEY: ${{ secrets.CERTORAKEY }}
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "spark-alm-controller"]
path = spark-alm-controller
url = https://github.com/marsfoundation/spark-alm-controller.git
38 changes: 38 additions & 0 deletions ForeignController.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"files": [
"spark-alm-controller/src/ForeignController.sol",
"spark-alm-controller/src/ALMProxy.sol",
"harness/CctpMock.sol",
"harness/Psm3Mock.sol",
"spark-alm-controller/src/RateLimits.sol",
"harness/UsdcMock.sol",
"harness/UsdsMock.sol",
"harness/SUsdsMock.sol",
"harness/Auxiliar.sol"
],
"solc": "solc-0.8.21",
"solc_optimize": "200",
"packages": [
"forge-std/interfaces/=spark-alm-controller/lib/forge-std/src/interfaces",
"openzeppelin-contracts/=spark-alm-controller/lib/openzeppelin-contracts",
"lib/openzeppelin-contracts/=spark-alm-controller/lib/openzeppelin-contracts",
"spark-psm/src/interfaces/=spark-alm-controller/lib/spark-psm/src/interfaces",
"erc20-helpers/interfaces/=spark-alm-controller/lib/spark-psm/lib/erc20-helpers/src/interfaces",
"src=spark-alm-controller/src"
],
"link": [
"ForeignController:proxy=ALMProxy",
"ForeignController:cctp=CctpMock",
"ForeignController:psm=Psm3Mock",
"ForeignController:rateLimits=RateLimits",
"ForeignController:usdc=UsdcMock"
],
"verify": "ForeignController:ForeignController.spec",
"rule_sanity": "basic",
"multi_assert_check": true,
"optimistic_loop": true,
"parametric_contracts": ["ForeignController"],
"smt_timeout": "7000",
"build_cache": true,
"msg": "ForeignController"
}
Loading

0 comments on commit 019f67f

Please sign in to comment.