formal-verifiation.yml 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. name: Formal verification
  2. on:
  3. push:
  4. branches:
  5. - master
  6. - release-v*
  7. - formal-verification
  8. pull_request: {}
  9. workflow_dispatch: {}
  10. jobs:
  11. verify:
  12. runs-on: ubuntu-latest
  13. steps:
  14. - uses: actions/checkout@v2
  15. - name: Install python
  16. uses: actions/setup-python@v2
  17. with: { python-version: 3.6, cache: 'pip' }
  18. - name: Install java
  19. uses: actions/setup-java@v1
  20. with: { java-version: "11", java-package: jre }
  21. - name: Install certora
  22. run: pip install certora-cli
  23. - name: Install solc
  24. run: |
  25. wget https://github.com/ethereum/solidity/releases/download/v0.8.4/solc-static-linux
  26. chmod +x solc-static-linux
  27. sudo mv solc-static-linux /usr/local/bin/solc8.4
  28. - name: Verify rule ${{ matrix.script }}
  29. run: |
  30. touch certora/applyHarness.patch
  31. make -C certora munged
  32. echo "key length" ${#CERTORAKEY}
  33. sh certora/scripts/${{ matrix.script }}
  34. env:
  35. CERTORAKEY: ${{ secrets.CERTORAKEY }}
  36. strategy:
  37. fail-fast: false
  38. max-parallel: 4
  39. matrix:
  40. script:
  41. # - old/verifyTimelock.sh
  42. # - old/verifyERC1155.sh
  43. # - old/verifyERC20FlashMint.sh
  44. # - old/verifyERC20Wrapper.sh
  45. # - old/verifyAccessControl.sh
  46. # - old/verifyERC20Votes.sh "checking ERC20Votes.spec on ERC20Votes.sol"
  47. # - old/verifyERC721Votes.sh "checking ERC721Votes.spec on draft-ERC721Votes.sol and Votes.sol"
  48. - Round3/verifyERC1155Burnable.sh
  49. - Round3/verifyERC1155Supply.sh
  50. - Round3/verifyERC1155Pausable.sh
  51. - Round3/verifyInitializable.sh
  52. - Round3/verifyGovernorPreventLateQuorum.sh