11name : certora-stata
22
3+ concurrency :
4+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
5+ cancel-in-progress : true
6+
37on :
4- push :
8+ pull_request :
59 branches :
610 - main
7- pull_request :
11+ - certora
12+ push :
813 branches :
914 - main
1015
@@ -16,65 +21,53 @@ jobs:
1621 if :
1722 github.event.pull_request.head.repo.full_name == github.repository || (github.event_name == 'push' &&
1823 github.ref == format('refs/heads/{0}', github.event.repository.default_branch))
19-
24+ permissions :
25+ contents : read
26+ statuses : write
27+ pull-requests : write
2028 steps :
2129 - uses : actions/checkout@v4
2230 with :
2331 submodules : recursive
2432
25- - name : Install python
26- uses : actions/setup-python@v5
27- with : { python-version: 3.9 }
28-
29- - name : Install java
30- uses : actions/setup-java@v4
31- with : { distribution: "zulu", java-version: "11", java-package: jre }
32-
33- - name : Install certora cli
34- run : pip install certora-cli==7.20.3
35- - name : Install solc
36- run : |
37- wget https://github.com/ethereum/solidity/releases/download/v0.8.20/solc-static-linux
38- chmod +x solc-static-linux
39- sudo mv solc-static-linux /usr/local/bin/solc8.20
40-
41- - name : Verify rule ${{ matrix.rule }}
33+ - name : Munged
4234 run : |
4335 cd certora/stata
4436 touch applyHarness.patch
4537 make munged
46- cd ../..
47- certoraRun certora/stata/conf/${{ matrix.rule }}
48- env :
49- CERTORAKEY : ${{ secrets.CERTORAKEY }}
5038
51- strategy :
52- fail-fast : false
53- max-parallel : 16
54- matrix :
55- rule :
56- - verifyERC4626.conf --rule previewRedeemIndependentOfBalance previewMintAmountCheck previewDepositIndependentOfAllowanceApprove previewWithdrawAmountCheck previewWithdrawIndependentOfBalance2 previewWithdrawIndependentOfBalance1 previewRedeemIndependentOfMaxRedeem1 previewRedeemAmountCheck previewRedeemIndependentOfMaxRedeem2 amountConversionRoundedDown withdrawCheck redeemCheck redeemATokensCheck convertToAssetsCheck convertToSharesCheck toAssetsDoesNotRevert sharesConversionRoundedDown toSharesDoesNotRevert previewDepositAmountCheck maxRedeemCompliance maxWithdrawConversionCompliance previewMintIndependentOfAllowance
57- - verifyERC4626.conf --rule maxMintMustntRevert maxDepositMustntRevert maxRedeemMustntRevert maxWithdrawMustntRevert totalAssetsMustntRevert
58- # Timeout
59- # - verifyERC4626.conf --rule previewWithdrawIndependentOfMaxWithdraw
60- - verifyERC4626MintDepositSummarization.conf --rule depositCheckIndexGRayAssert2 depositATokensCheckIndexGRayAssert2 depositWithPermitCheckIndexGRayAssert2 depositCheckIndexERayAssert2 depositATokensCheckIndexERayAssert2 depositWithPermitCheckIndexERayAssert2 mintCheckIndexGRayUpperBound mintCheckIndexGRayLowerBound mintCheckIndexEqualsRay
61- - verifyERC4626DepositSummarization.conf --rule depositCheckIndexGRayAssert1 depositATokensCheckIndexGRayAssert1 depositWithPermitCheckIndexGRayAssert1 depositCheckIndexERayAssert1 depositATokensCheckIndexERayAssert1 depositWithPermitCheckIndexERayAssert1
62- - verifyERC4626Extended.conf --rule previewWithdrawRoundingRange previewRedeemRoundingRange amountConversionPreserved sharesConversionPreserved accountsJoiningSplittingIsLimited convertSumOfAssetsPreserved previewDepositSameAsDeposit previewMintSameAsMint maxDepositConstant
63- - verifyERC4626Extended.conf --rule redeemSum
64- - verifyERC4626Extended.conf --rule redeemATokensSum
65- - verifyAToken.conf --rule aTokenBalanceIsFixed_for_collectAndUpdateRewards aTokenBalanceIsFixed_for_claimRewards aTokenBalanceIsFixed_for_claimRewardsOnBehalf
66- - verifyAToken.conf --rule aTokenBalanceIsFixed_for_claimSingleRewardOnBehalf aTokenBalanceIsFixed_for_claimRewardsToSelf
67- - verifyStataToken.conf --rule rewardsConsistencyWhenSufficientRewardsExist
68- - verifyStataToken.conf --rule rewardsConsistencyWhenInsufficientRewards
69- - verifyStataToken.conf --rule totalClaimableRewards_stable
70- - verifyStataToken.conf --rule solvency_positive_total_supply_only_if_positive_asset
71- - verifyStataToken.conf --rule solvency_total_asset_geq_total_supply
72- - verifyStataToken.conf --rule singleAssetAccruedRewards
73- - verifyStataToken.conf --rule totalAssets_stable
74- - verifyStataToken.conf --rule getClaimableRewards_stable
75- - verifyStataToken.conf --rule getClaimableRewards_stable_after_deposit
76- - verifyStataToken.conf --rule getClaimableRewards_stable_after_refreshRewardTokens
77- - verifyStataToken.conf --rule getClaimableRewardsBefore_leq_claimed_claimRewardsOnBehalf
78- - verifyStataToken.conf --rule rewardsTotalDeclinesOnlyByClaim
79- - verifyDoubleClaim.conf --rule prevent_duplicate_reward_claiming_single_reward_sufficient
80- - verifyDoubleClaim.conf --rule prevent_duplicate_reward_claiming_single_reward_insufficient
39+ - uses : Certora/certora-run-action@v1
40+ with :
41+ cli-version : 7.28.0
42+ configurations : |-
43+ certora/stata/conf/verifyERC4626.conf --rule previewRedeemIndependentOfBalance previewMintAmountCheck previewDepositIndependentOfAllowanceApprove previewWithdrawAmountCheck previewWithdrawIndependentOfBalance2 previewWithdrawIndependentOfBalance1 previewRedeemIndependentOfMaxRedeem1 previewRedeemAmountCheck previewRedeemIndependentOfMaxRedeem2 amountConversionRoundedDown withdrawCheck redeemCheck redeemATokensCheck convertToAssetsCheck convertToSharesCheck toAssetsDoesNotRevert sharesConversionRoundedDown toSharesDoesNotRevert previewDepositAmountCheck maxRedeemCompliance maxWithdrawConversionCompliance previewMintIndependentOfAllowance
44+ certora/stata/conf/verifyERC4626.conf --rule maxMintMustntRevert maxDepositMustntRevert maxRedeemMustntRevert maxWithdrawMustntRevert totalAssetsMustntRevert
45+ certora/stata/conf/verifyERC4626MintDepositSummarization.conf --rule depositCheckIndexGRayAssert2 depositATokensCheckIndexGRayAssert2 depositWithPermitCheckIndexGRayAssert2 depositCheckIndexERayAssert2 depositATokensCheckIndexERayAssert2 depositWithPermitCheckIndexERayAssert2 mintCheckIndexGRayUpperBound mintCheckIndexGRayLowerBound mintCheckIndexEqualsRay
46+ certora/stata/conf/verifyERC4626DepositSummarization.conf --rule depositCheckIndexGRayAssert1 depositATokensCheckIndexGRayAssert1 depositWithPermitCheckIndexGRayAssert1 depositCheckIndexERayAssert1 depositATokensCheckIndexERayAssert1 depositWithPermitCheckIndexERayAssert1
47+ certora/stata/conf/verifyERC4626Extended.conf --rule previewWithdrawRoundingRange previewRedeemRoundingRange amountConversionPreserved sharesConversionPreserved accountsJoiningSplittingIsLimited convertSumOfAssetsPreserved previewDepositSameAsDeposit previewMintSameAsMint maxDepositConstant
48+ certora/stata/conf/verifyERC4626Extended.conf --rule redeemSum
49+ certora/stata/conf/verifyERC4626Extended.conf --rule redeemATokensSum
50+ certora/stata/conf/verifyAToken.conf --rule aTokenBalanceIsFixed_for_collectAndUpdateRewards aTokenBalanceIsFixed_for_claimRewards aTokenBalanceIsFixed_for_claimRewardsOnBehalf
51+ certora/stata/conf/verifyAToken.conf --rule aTokenBalanceIsFixed_for_claimSingleRewardOnBehalf aTokenBalanceIsFixed_for_claimRewardsToSelf
52+ certora/stata/conf/verifyStataToken.conf --rule rewardsConsistencyWhenSufficientRewardsExist
53+ certora/stata/conf/verifyStataToken.conf --rule rewardsConsistencyWhenInsufficientRewards
54+ certora/stata/conf/verifyStataToken.conf --rule totalClaimableRewards_stable
55+ certora/stata/conf/verifyStataToken.conf --rule solvency_positive_total_supply_only_if_positive_asset
56+ certora/stata/conf/verifyStataToken.conf --rule solvency_total_asset_geq_total_supply
57+ certora/stata/conf/verifyStataToken.conf --rule singleAssetAccruedRewards
58+ certora/stata/conf/verifyStataToken.conf --rule totalAssets_stable
59+ certora/stata/conf/verifyStataToken.conf --rule getClaimableRewards_stable
60+ certora/stata/conf/verifyStataToken.conf --rule getClaimableRewards_stable_after_deposit
61+ certora/stata/conf/verifyStataToken.conf --rule getClaimableRewards_stable_after_refreshRewardTokens
62+ certora/stata/conf/verifyStataToken.conf --rule getClaimableRewardsBefore_leq_claimed_claimRewardsOnBehalf
63+ certora/stata/conf/verifyStataToken.conf --rule rewardsTotalDeclinesOnlyByClaim
64+ certora/stata/conf/verifyDoubleClaim.conf --rule prevent_duplicate_reward_claiming_single_reward_sufficient
65+ certora/stata/conf/verifyDoubleClaim.conf --rule prevent_duplicate_reward_claiming_single_reward_insufficient
66+ solc-versions : 0.8.27
67+ comment-fail-only : false
68+ solc-remove-version-prefix : " 0."
69+ job-name : " Certora Prover Run"
70+ certora-key : ${{ secrets.CERTORAKEY }}
71+ install-java : true
72+ env :
73+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments