Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
483e233
refactor: align code for collateral and borrow asset + some gas optim…
sakulstra May 6, 2025
e371a6b
feat: aligning the aaave protocol behavior with 4626
sakulstra May 26, 2025
bea2689
fix: docs & align balance checks
sakulstra May 26, 2025
547589e
fix: remove unnecessary double brackets
sakulstra Jun 3, 2025
3774ca9
fix: forbid unhealthy self repay
sakulstra Jun 3, 2025
62c8e5b
fix: round down accrued to treasury
sakulstra Jun 3, 2025
8913410
fix: typo fix
sakulstra Jun 3, 2025
bde8c47
fix: round in favor of the protocol
sakulstra Jun 3, 2025
8405f6b
opt: optimized assembly
sakulstra Jun 3, 2025
f0e9b38
test: add test to ensure that accrued is rounded down on flashloans
TepNik Jun 4, 2025
98148ea
fix: undermint to treasury
sakulstra Jun 4, 2025
0f889b0
Update src/contracts/protocol/libraries/math/PercentageMath.sol
sakulstra Jun 5, 2025
5f1bff7
Merge pull request #289 from bgd-labs/fix/mixbytes-11
kyzia551 Jun 9, 2025
ab5c706
Merge branch 'v3.5.0' into fix/mixbytes-10
kyzia551 Jun 9, 2025
5177902
Merge pull request #287 from bgd-labs/fix/mixbytes-10
eboadom Jun 9, 2025
0d9c8d2
feat: aligned vToken storage for GHO token
TepNik Jun 11, 2025
b2e8c9f
chore: bump revisions
TepNik Jun 11, 2025
a6cc62d
feat: added instance of vToken for the GHO token
TepNik Jun 16, 2025
a1ef7c3
feat: Implemented additional roundings in debt and collateral calcula…
TepNik Jun 16, 2025
b6567d4
fix: liquidation edge case
sakulstra Jun 16, 2025
1c05598
fix: correctly update rate on same asset liquidation
sakulstra Jun 17, 2025
3031d6e
opt: repayWithAToken skip hf validation if no collateral (#298)
sakulstra Jun 17, 2025
7bdd945
fix: improved precision in the eliminate deficit function + added ret…
TepNik Jun 19, 2025
070cd23
refactor: migrate to using scaled balances were possible
sakulstra Jun 24, 2025
b7beed9
fix: adjust allowance consumption
sakulstra Jun 25, 2025
13effed
fix: minor docs improvements
sakulstra Jun 26, 2025
8e9fae5
docs: improve WadRayMath natsepc
TepNik Jun 26, 2025
c3e88e1
fix: improve presision of HF calculation
TepNik Jun 26, 2025
5970976
fix: address informal mixbytes issues
sakulstra Jul 7, 2025
64fb8e5
perf: transfer gas optimization
sakulstra Jul 7, 2025
06df5aa
style: align style of fetching balances & totalSupply
sakulstra Jul 7, 2025
00cec22
fix: calculateAvailableBorrows should perform same rounding as borrow
sakulstra Jul 7, 2025
1381a73
fix: readd descriptive error
sakulstra Jul 7, 2025
05b185f
fix: add zero division case
sakulstra Jul 7, 2025
61bb283
fix: LiquidationLogic round up the debt in base currency
TepNik Jul 9, 2025
4cc61ba
fix: informal issues
TepNik Jul 9, 2025
10ddd1a
fix: better allowance mechanism + informal issue fixes
TepNik Jul 11, 2025
328ec4b
fix: resolve merge conflicts
sakulstra Jul 11, 2025
6512922
chore: improve comment
sakulstra Jul 15, 2025
a37c630
docs: improve comment
sakulstra Jul 16, 2025
f76f007
docs: align docs
sakulstra Jul 17, 2025
b8117a2
Added Aave v3.5 reports
StErMi Jul 17, 2025
8f52662
docs: added changelog into docs for v3.5 version
TepNik Jul 18, 2025
8b9ef7e
fix: remove duplicate audit
sakulstra Jul 18, 2025
12110a3
Update docs/3.5/Aave-v3.5-features.md
sakulstra Jul 21, 2025
1182c20
fix: lint certora fv
sakulstra Jul 21, 2025
25115b2
fix: abdk report issues
sakulstra Jul 21, 2025
3124e2d
fix: math helpers explicit tests (#2)
sakulstra Jul 24, 2025
f3fc5e0
Merge branch 'main' into v3.5.0
sakulstra Aug 7, 2025
95eb3dd
fix: add changeset
sakulstra Aug 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/eighty-pianos-trade.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@aave-dao/aave-v3-origin": minor
---

Release of Aave v3.5
4 changes: 1 addition & 3 deletions .github/workflows/certora-ATokenWithDelegation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,8 @@ jobs:
- uses: Certora/certora-run-action@v1
with:
cli-version: 7.28.0
cli-version: 7.31.0
configurations: |-
certora/atoken-with-delegation/conf/AToken.conf
certora/atoken-with-delegation/conf/AToken-problematic-rules.conf --rule totalSupplyEqualsSumAllBalance additiveBurn additiveTransfer
certora/atoken-with-delegation/conf/token-v3-general.conf
certora/atoken-with-delegation/conf/token-v3-erc20.conf
certora/atoken-with-delegation/conf/token-v3-delegate-basic.conf
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/certora-basic.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,13 @@ jobs:
- uses: Certora/certora-run-action@v1
with:
cli-version: 7.28.0
cli-version: 7.31.0
configurations: |-
certora/basic/conf/AToken.conf
certora/basic/conf/VariableDebtToken.conf
certora/basic/conf/ReserveConfiguration.conf
certora/basic/conf/UserConfiguration.conf
certora/basic/conf/VariableDebtToken.conf
certora/basic/conf/NEW-pool-no-summarizations.conf
certora/basic/conf/stableRemoved.conf
certora/basic/conf/EModeConfiguration.conf
certora/basic/conf/NEW-pool-simple-properties.conf --rule cannotDepositInInactiveReserve
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/certora-math-calculations.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: certora-math-calculations

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

on:
pull_request:
branches:
- main
- certora
push:
branches:
- main

workflow_dispatch:

jobs:
verify:
runs-on: ubuntu-latest
if:
github.event.pull_request.head.repo.full_name == github.repository || (github.event_name == 'push' &&
github.ref == format('refs/heads/{0}', github.event.repository.default_branch))
permissions:
contents: read
statuses: write
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Munged
run: |
cd certora/math-calculations
touch applyHarness.patch
make munged

- uses: Certora/certora-run-action@v1
with:
cli-version: 7.31.0
configurations: |-
certora/math-calculations/confs/rayMulDiv-CVL-check.conf
certora/math-calculations/confs/gift_cannot_decrease_healthFactor.conf
solc-versions: 0.8.27
comment-fail-only: false
solc-remove-version-prefix: "0."
job-name: "Certora Prover Run"
certora-key: ${{ secrets.CERTORAKEY }}
install-java: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Put back the following rule after ticket 8889 is closed
# certora/basic/conf/NEW-pool-no-summarizations.conf ##### waiting for

75 changes: 75 additions & 0 deletions .github/workflows/certora-solvency.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: certora-solvency

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

on:
pull_request:
branches:
- main
- certora
push:
branches:
- main

workflow_dispatch:

jobs:
verify:
runs-on: ubuntu-latest
if:
github.event.pull_request.head.repo.full_name == github.repository || (github.event_name == 'push' &&
github.ref == format('refs/heads/{0}', github.event.repository.default_branch))
permissions:
contents: read
statuses: write
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- name: Munged
run: |
cd certora/solvency
touch applyHarness.patch
make munged

- uses: Certora/certora-run-action@v1
with:
cli-version: 7.31.0
configurations: |-
certora/solvency/confs/rayMulDiv-CVL-check.conf
certora/solvency/confs/aToken-check.conf
certora/solvency/confs/variableDebtToken-check.conf
certora/solvency/confs/solvency/supply.conf
certora/solvency/confs/solvency/withdraw.conf
certora/solvency/confs/solvency/borrow.conf
certora/solvency/confs/solvency/flashloan.conf
certora/solvency/confs/solvency/repay-lemma.conf
certora/solvency/confs/solvency/repay-main.conf
certora/solvency/confs/solvency/repayWithATokens-lemma.conf
certora/solvency/confs/solvency/repayWithATokens-main.conf --rule_sanity "none"
certora/solvency/confs/solvency/liquidationCall/lemma-revertsIF_totDbt_of_DBTasset_is0.conf
certora/solvency/confs/solvency/liquidationCall/lemma-DBTasset.conf
certora/solvency/confs/solvency/liquidationCall/main-DBTasset.conf
certora/solvency/confs/solvency/liquidationCall/main-COLasset.conf
certora/solvency/confs/solvency/liquidationCall/lemma-COLasset.conf --rule_sanity "none"
certora/solvency/confs/solvency/liquidationCall/main-COLasset-totSUP0.conf --rule_sanity "none"
certora/solvency/confs/solvency/liquidationCall/lemma-COLasset-totSUP0.conf
certora/solvency/confs/solvency/liquidationCall/burnBadDebt-assetINloop.conf
certora/solvency/confs/solvency/liquidationCall/burnBadDebt-assetNOTINloop.conf
certora/solvency/confs/solvency/liquidationCall/main-SAMEasset.conf
certora/solvency/confs/solvency/liquidationCall/lemma-SAMEasset.conf
solc-versions: 0.8.27
comment-fail-only: false
solc-remove-version-prefix: "0."
job-name: "Certora Prover Run"
certora-key: ${{ secrets.CERTORAKEY }}
install-java: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Put back the following rule after ticket 8889 is closed
# certora/basic/conf/NEW-pool-no-summarizations.conf ##### waiting for

2 changes: 1 addition & 1 deletion .github/workflows/certora-stata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- uses: Certora/certora-run-action@v1
with:
cli-version: 7.28.0
cli-version: 7.31.0
configurations: |-
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
certora/stata/conf/verifyERC4626.conf --rule maxMintMustntRevert maxDepositMustntRevert maxRedeemMustntRevert maxWithdrawMustntRevert totalAssetsMustntRevert
Expand Down
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,4 @@ report
_corpus
crytic-export
snapshots
audits
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Parameters
Licensor: Aave DAO, represented by its governance smart contracts


Licensed Work: Aave v3.3
Licensed Work: Aave v3.5
The Licensed Work is (c) 2025 Aave DAO, represented by its governance smart contracts

Additional Use Grant: You are permitted to use, copy, and modify the Licensed Work, subject to
Expand Down
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,17 @@ In addition, Enigma Dark has adapted the Foundry-based fuzzing [invariant suite]

<br>

**-> Aave v3.5 - July 2025**

#### Predictable rounding

- [Certora](./audits/2025-07-14_Certora_AaveV3.5.pdf)
- [StErMi](./audits/2025-07-17_StErMi_Aave-v3.5.md)
- [Mixbytes](./audits/2025-07-18_MixBytes_AaveV3.5.pdf)
- [ABDK](./audits/2025-07-17_ABDK_Aave-v3.5.pdf)

<br>

### Bug bounty

This repository will be subjected to [this bug bounty](https://immunefi.com/bounty/aave/) once the Aave Governance upgrades the smart contracts in the applicable production instances.
Expand Down
Binary file added audits/2025-07-14_Certora_AaveV3.5.pdf
Binary file not shown.
Binary file added audits/2025-07-17_ABDK_Aave-v3.5.pdf
Binary file not shown.
Loading
Loading