diff --git a/.github/workflows/certora-basic.yml b/.github/workflows/certora-basic.yml index 4e418d0e..98e04274 100644 --- a/.github/workflows/certora-basic.yml +++ b/.github/workflows/certora-basic.yml @@ -25,18 +25,13 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Check key - env: - CERTORAKEY: ${{ secrets.CERTORAKEY }} - run: echo "key length" ${#CERTORAKEY} - - name: Install python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: { python-version: 3.9 } - name: Install java - uses: actions/setup-java@v1 - with: { java-version: "11", java-package: jre } + uses: actions/setup-java@v4 + with: { distribution: "zulu", java-version: "11", java-package: jre } - name: Install certora cli run: pip install certora-cli==7.14.2 diff --git a/.github/workflows/certora-stata.yml b/.github/workflows/certora-stata.yml index 04714798..3f60dc8d 100644 --- a/.github/workflows/certora-stata.yml +++ b/.github/workflows/certora-stata.yml @@ -15,17 +15,17 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: recursive - name: Install python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: { python-version: 3.9 } - name: Install java - uses: actions/setup-java@v1 - with: { java-version: "11", java-package: jre } + uses: actions/setup-java@v4 + with: { distribution: "zulu", java-version: "11", java-package: jre } - name: Install certora cli run: pip install certora-cli==7.14.2 diff --git a/certora/basic/specs/EModeConfiguration.spec b/certora/basic/specs/EModeConfiguration.spec index 5158a2a9..c3823476 100644 --- a/certora/basic/specs/EModeConfiguration.spec +++ b/certora/basic/specs/EModeConfiguration.spec @@ -6,11 +6,37 @@ methods { } +/*===================================================================================== + Rule: setCollateralIntegrity / setBorrowableIntegrity: + We check the integrity of the functions setReserveBitmapBit (which is a setter) and + isReserveEnabledOnBitmap (which is a getter), simply by setting an arbitrary value to arbitrary + location, and then reading it using the getter. + + Note: the functions setCollateral and isCollateralAsset are envelopes to the above setter and getter + and are implemented in the harness. + + Status: PASS + Link: + =====================================================================================*/ rule setCollateralIntegrity(uint256 reserveIndex, bool collateral) { setCollateral(reserveIndex,collateral); assert isCollateralAsset(reserveIndex) == collateral; } +rule setBorrowableIntegrity(uint256 reserveIndex, bool borrowable) { + setBorrowable(reserveIndex,borrowable); + assert isBorrowableAsset(reserveIndex) == borrowable; +} + + + +/*===================================================================================== + Rule: independencyOfCollateralSetters / independencyOfBorrowableSetters: + We check that when calling to setReserveBitmapBit(index,val) only the value at the given + index may be altered. + Status: PASS + Link: + =====================================================================================*/ rule independencyOfCollateralSetters(uint256 reserveIndex, bool collateral) { uint256 reserveIndex_other; @@ -20,13 +46,6 @@ rule independencyOfCollateralSetters(uint256 reserveIndex, bool collateral) { assert (reserveIndex != reserveIndex_other => before == after); } - - -rule setBorrowableIntegrity(uint256 reserveIndex, bool borrowable) { - setBorrowable(reserveIndex,borrowable); - assert isBorrowableAsset(reserveIndex) == borrowable; -} - rule independencyOfBorrowableSetters(uint256 reserveIndex, bool borrowable) { uint256 reserveIndex_other; diff --git a/certora/basic/specs/stableRemoved.spec b/certora/basic/specs/stableRemoved.spec index 59e0bbbc..bbd7f3ee 100644 --- a/certora/basic/specs/stableRemoved.spec +++ b/certora/basic/specs/stableRemoved.spec @@ -89,7 +89,7 @@ rule stableFieldsUntouched(method f, env e, address _asset) uint128 __deprecatedStableBorrowRate_BEFORE = reserve.__deprecatedStableBorrowRate; address __deprecatedStableDebtTokenAddress_BEFORE = reserve.__deprecatedStableDebtTokenAddress; uint128 currentStableBorrowRate_BEFORE = reserveLegasy.currentStableBorrowRate; - address stableDebtTokenAddress_BEFORE = reserveLegasy.stableDebtTokenAddress; + // address stableDebtTokenAddress_BEFORE = reserveLegasy.stableDebtTokenAddress; calldataarg args; f(e,args); @@ -105,6 +105,6 @@ rule stableFieldsUntouched(method f, env e, address _asset) assert __deprecatedStableBorrowRate_BEFORE == __deprecatedStableBorrowRate_AFTER; assert __deprecatedStableDebtTokenAddress_BEFORE == __deprecatedStableDebtTokenAddress_AFTER; assert currentStableBorrowRate_BEFORE == currentStableBorrowRate_AFTER; - assert stableDebtTokenAddress_BEFORE == stableDebtTokenAddress_AFTER; + // assert stableDebtTokenAddress_BEFORE == stableDebtTokenAddress_AFTER; }