diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml new file mode 100644 index 000000000..6919609d0 --- /dev/null +++ b/.github/workflows/verify.yml @@ -0,0 +1,57 @@ +name: Certora + +on: + push: + branches: + - main + - certora/erc20 + +jobs: + verify: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Install python + uses: actions/setup-python@v2 + with: { python-version: 3.6, cache: 'pip' } + + - name: Install java + uses: actions/setup-java@v1 + with: { java-version: "11", java-package: jre } + + - name: Install certora + run: pip install certora-cli + + - name: Install solc + run: | + wget https://github.com/ethereum/solidity/releases/download/v0.8.2/solc-static-linux + chmod +x solc-static-linux + sudo mv solc-static-linux /usr/local/bin/solc8.2 + + - name: Verify rule ${{ matrix.script }} + run: | + touch certora/applyHarness.patch + make -C certora munged + echo "key length" ${#CERTORAKEY} + sh certora/scripts/${{ matrix.script }} + env: + CERTORAKEY: ${{ secrets.CERTORAKEY }} + + strategy: + fail-fast: false + max-parallel: 4 + + matrix: + script: + - verifyTimelock.sh + - verifyERC1155.sh + - verifyERC20FlashMint.sh + - verifyERC20Wrapper.sh + - verifyAccessControl.sh + - verifyERC20Votes.sh "checking ERC20Votes.spec on ERC20Votes.sol" + - verifyERC721Votes.sh "checking ERC721Votes.spec on draft-ERC721Votes.sol and Votes.sol" + + + diff --git a/.gitignore b/.gitignore index c60c5d945..18817cd29 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ artifacts .certora* .last_confs certora_* +resource_errors.json diff --git a/certora/scripts/verifyAllSasha.sh b/certora/scripts/verifyAllSasha.sh deleted file mode 100644 index e87893bf9..000000000 --- a/certora/scripts/verifyAllSasha.sh +++ /dev/null @@ -1,5 +0,0 @@ -sh certora/scripts/verifyTimelock.sh -sh certora/scripts/verifyERC1155.sh -sh certora/scripts/verifyERC20FlashMint.sh -sh certora/scripts/verifyERC20Wrapper.sh -sh certora/scripts/verifyAccessControl.sh diff --git a/certora/scripts/verifyERC721Votes.sh b/certora/scripts/verifyERC721Votes.sh index 2f089b1c2..e2a7320f9 100644 --- a/certora/scripts/verifyERC721Votes.sh +++ b/certora/scripts/verifyERC721Votes.sh @@ -23,4 +23,4 @@ certoraRun \ --settings -copyLoopUnroll=4 \ --send_only \ --staging "alex/new-dt-hashing-alpha" \ - --msg "${msg}" \ \ No newline at end of file + --msg "${msg}" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 000000000..3373e34c4 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +certora-cli==3.0.0