From 028d7696b323ae582dc7c43d3678789080a3ba92 Mon Sep 17 00:00:00 2001 From: miguelmtz <36620902+miguelmtzinf@users.noreply.github.com> Date: Thu, 29 Jun 2023 12:54:31 +0200 Subject: [PATCH] feat: Add Certora Review and FV CI (#88) * Certora Review (#87) Co-authored-by: Michael M * docs: Add Certora audit to README * docs: Update Certora audit report * fix: Remove remaining comments from previous iterations of specs * docs: Update audit report of Certora --------- Co-authored-by: Nissan Levi <124057587+nisnislevi@users.noreply.github.com> Co-authored-by: Michael M --- .github/workflows/certora.yml | 72 +++ README.md | 1 + certora/Makefile | 30 ++ certora/applyHarness.patch | 37 ++ certora/conf/accrueYieldCheck.conf | 42 ++ ...geInContractBalanceShouldCauseAccrual.conf | 47 ++ certora/conf/erc4626-previewOPERATIONS.conf | 44 ++ certora/conf/fees_LEQ_ATokenBal.conf | 40 ++ .../lastVaultBalance_LEQ_ATokenBalThis.conf | 43 ++ ...veSupply_imply_positiveAssets-deposit.conf | 40 ++ ...itiveSupply_imply_positiveAssets-mint.conf | 40 ++ ...tiveSupply_imply_positiveAssets-other.conf | 40 ++ ...iveSupply_imply_positiveAssets-redeem.conf | 40 ++ ...eSupply_imply_positiveAssets-withdraw.conf | 40 ++ .../conf/rayMul_rayDiv_mulDiv_properties.conf | 42 ++ certora/conf/totalSupply_EQ_sumAllBal.conf | 42 ++ certora/harness/ATokenVaultHarness.sol | 83 ++++ certora/harness/DummyContract.sol | 9 + certora/harness/DummyERC20A.sol | 5 + certora/harness/DummyERC20B.sol | 5 + certora/harness/DummyERC20Impl.sol | 57 +++ .../harness/DummyERC20_aTokenUnderlying.sol | 5 + certora/harness/SymbolicLendingPoolL1.sol | 122 ++++++ .../harness/pool/SymbolicLendingPoolL1.sol | 86 ++++ certora/harness/tokens/DummyERC20Impl.sol | 71 +++ .../tokens/DummyERC20_aTokenUnderlying.sol | 5 + certora/munged/.gitignore | 2 + .../report/Aave-Vault-Formal-Verification.pdf | Bin 0 -> 800982 bytes certora/scripts/runComplexity.sh | 25 ++ certora/scripts/verify_all.sh | 23 + certora/scripts/verify_basic.sh | 30 ++ ...angeInContractBalanceShouldCauseAccrual.sh | 29 ++ certora/scripts/verify_erc4626.sh | 80 ++++ .../scripts/verify_fees_LEQ_ATokenBal-RW.sh | 75 ++++ certora/scripts/verify_fees_LEQ_ATokenBal.sh | 62 +++ .../verify_lastVaultBal_LEQ_ATokenBalThis.sh | 79 ++++ ...ify_positiveSupply_imply_positiveAssets.sh | 72 +++ .../verify_rayMul_rayDiv_properties.sh | 73 ++++ .../verify_totalSupply_EQ_sumAllBal.sh | 67 +++ certora/specs/accrueYieldCheck.spec | 47 ++ ...geInContractBalanceShouldCauseAccrual.spec | 54 +++ certora/specs/erc20.spec | 12 + certora/specs/erc4626.spec | 411 ++++++++++++++++++ certora/specs/fees_LEQ_ATokenBal.spec | 210 +++++++++ .../specs/lastVaultBal_LEQ_ATokenBalThis.spec | 134 ++++++ certora/specs/methods_base.spec | 216 +++++++++ .../positiveSupply_imply_positiveAssets.spec | 239 ++++++++++ .../rayMul_rayDiv_mulDiv_properties.spec | 61 +++ certora/specs/totalSupply_EQ_sumAllBal.spec | 80 ++++ 49 files changed, 3169 insertions(+) create mode 100644 .github/workflows/certora.yml create mode 100644 certora/Makefile create mode 100644 certora/applyHarness.patch create mode 100644 certora/conf/accrueYieldCheck.conf create mode 100644 certora/conf/changeInContractBalanceShouldCauseAccrual.conf create mode 100644 certora/conf/erc4626-previewOPERATIONS.conf create mode 100644 certora/conf/fees_LEQ_ATokenBal.conf create mode 100644 certora/conf/lastVaultBalance_LEQ_ATokenBalThis.conf create mode 100644 certora/conf/positiveSupply_imply_positiveAssets-deposit.conf create mode 100644 certora/conf/positiveSupply_imply_positiveAssets-mint.conf create mode 100644 certora/conf/positiveSupply_imply_positiveAssets-other.conf create mode 100644 certora/conf/positiveSupply_imply_positiveAssets-redeem.conf create mode 100644 certora/conf/positiveSupply_imply_positiveAssets-withdraw.conf create mode 100644 certora/conf/rayMul_rayDiv_mulDiv_properties.conf create mode 100644 certora/conf/totalSupply_EQ_sumAllBal.conf create mode 100644 certora/harness/ATokenVaultHarness.sol create mode 100644 certora/harness/DummyContract.sol create mode 100644 certora/harness/DummyERC20A.sol create mode 100644 certora/harness/DummyERC20B.sol create mode 100644 certora/harness/DummyERC20Impl.sol create mode 100644 certora/harness/DummyERC20_aTokenUnderlying.sol create mode 100644 certora/harness/SymbolicLendingPoolL1.sol create mode 100644 certora/harness/pool/SymbolicLendingPoolL1.sol create mode 100644 certora/harness/tokens/DummyERC20Impl.sol create mode 100644 certora/harness/tokens/DummyERC20_aTokenUnderlying.sol create mode 100644 certora/munged/.gitignore create mode 100644 certora/report/Aave-Vault-Formal-Verification.pdf create mode 100755 certora/scripts/runComplexity.sh create mode 100644 certora/scripts/verify_all.sh create mode 100644 certora/scripts/verify_basic.sh create mode 100644 certora/scripts/verify_changeInContractBalanceShouldCauseAccrual.sh create mode 100644 certora/scripts/verify_erc4626.sh create mode 100644 certora/scripts/verify_fees_LEQ_ATokenBal-RW.sh create mode 100644 certora/scripts/verify_fees_LEQ_ATokenBal.sh create mode 100644 certora/scripts/verify_lastVaultBal_LEQ_ATokenBalThis.sh create mode 100644 certora/scripts/verify_positiveSupply_imply_positiveAssets.sh create mode 100644 certora/scripts/verify_rayMul_rayDiv_properties.sh create mode 100644 certora/scripts/verify_totalSupply_EQ_sumAllBal.sh create mode 100644 certora/specs/accrueYieldCheck.spec create mode 100644 certora/specs/changeInContractBalanceShouldCauseAccrual.spec create mode 100644 certora/specs/erc20.spec create mode 100644 certora/specs/erc4626.spec create mode 100644 certora/specs/fees_LEQ_ATokenBal.spec create mode 100644 certora/specs/lastVaultBal_LEQ_ATokenBalThis.spec create mode 100644 certora/specs/methods_base.spec create mode 100644 certora/specs/positiveSupply_imply_positiveAssets.spec create mode 100644 certora/specs/rayMul_rayDiv_mulDiv_properties.spec create mode 100644 certora/specs/totalSupply_EQ_sumAllBal.spec diff --git a/.github/workflows/certora.yml b/.github/workflows/certora.yml new file mode 100644 index 0000000..4bf3972 --- /dev/null +++ b/.github/workflows/certora.yml @@ -0,0 +1,72 @@ +name: certora + +on: + push: + branches: + - main + pull_request: + branches: + - main + + workflow_dispatch: + +jobs: + verify: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + + - name: Check key + env: + CERTORAKEY: ${{ secrets.CERTORAKEY }} + run: echo "key length" ${#CERTORAKEY} + + - name: Install python + uses: actions/setup-python@v2 + with: { python-version: 3.9 } + + - name: Install java + uses: actions/setup-java@v1 + with: { java-version: "11", java-package: jre } + + - name: Install certora cli + run: pip3 install certora-cli==3.6.8.post3 + + - name: Install solc + run: | + wget https://github.com/ethereum/solidity/releases/download/v0.8.10/solc-static-linux + chmod +x solc-static-linux + sudo mv solc-static-linux /usr/local/bin/solc8.10 + + - name: Verify rule ${{ matrix.rule }} + run: | + cd certora + touch applyHarness.patch + make munged + cd .. + echo "key length" ${#CERTORAKEY} + certoraRun certora/conf/${{ matrix.rule }} + env: + CERTORAKEY: ${{ secrets.CERTORAKEY }} + + strategy: + fail-fast: false + max-parallel: 16 + matrix: + rule: + - changeInContractBalanceShouldCauseAccrual.conf + - erc4626-previewOPERATIONS.conf + - fees_LEQ_ATokenBal.conf + - lastVaultBalance_LEQ_ATokenBalThis.conf + - positiveSupply_imply_positiveAssets-deposit.conf + - positiveSupply_imply_positiveAssets-mint.conf + - positiveSupply_imply_positiveAssets-other.conf + - positiveSupply_imply_positiveAssets-redeem.conf + - positiveSupply_imply_positiveAssets-withdraw.conf + - rayMul_rayDiv_mulDiv_properties.conf + - totalSupply_EQ_sumAllBal.conf + - accrueYieldCheck.conf + diff --git a/README.md b/README.md index f089fde..0a2cce6 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ You can find all audit reports under the audits folder - [01-03-2023 OpenZeppelin](./audits/01-03-2023_OpenZeppelin_Wrapped_AToken_Vault.pdf) - [03-03-2023 PeckShield](./audits/03-03-2023_Peckshield_Wrapped_AToken_Vault.pdf) +- [18-06-2023 Certora](./certora/report/Aave-Vault-Formal-Verification.pdf) ## License diff --git a/certora/Makefile b/certora/Makefile new file mode 100644 index 0000000..e9ac363 --- /dev/null +++ b/certora/Makefile @@ -0,0 +1,30 @@ +default: help + +PATCH = applyHarness.patch +CONTRACTS_DIR = ../src +MUNGED_DIR = munged + +help: + @echo "usage:" + @echo " make clean: remove all generated files (those ignored by git)" + @echo " make $(MUNGED_DIR): create $(MUNGED_DIR) directory by applying the patch file to $(CONTRACTS_DIR)" + @echo " make record: record a new patch file capturing the differences between $(CONTRACTS_DIR) and $(MUNGED_DIR)" + +munged: $(wildcard $(CONTRACTS_DIR)/*.sol) $(PATCH) + rm -rf $@ + mkdir $@ + cp -r ../lib $@ + cp -r ../src $@ + patch -p0 -d $@ < $(PATCH) + +record: + mkdir tmp + cp -r ../lib tmp + cp -r ../src tmp + diff -ruN tmp $(MUNGED_DIR) | sed 's+tmp/++g' | sed 's+$(MUNGED_DIR)/++g' > $(PATCH) + rm -rf tmp + +clean: + git clean -fdX + touch $(PATCH) + diff --git a/certora/applyHarness.patch b/certora/applyHarness.patch new file mode 100644 index 0000000..5bc62dd --- /dev/null +++ b/certora/applyHarness.patch @@ -0,0 +1,37 @@ +diff -ruN .gitignore .gitignore +--- .gitignore 1970-01-01 01:00:00.000000000 +0100 ++++ .gitignore 2023-04-13 11:36:09.000000000 +0100 +@@ -0,0 +1,2 @@ ++* ++!.gitignore +\ No newline at end of file +diff -ruN lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol +--- lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol 2023-04-16 05:13:16.000000000 +0100 ++++ lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol 2023-04-11 14:54:24.000000000 +0100 +@@ -71,16 +71,16 @@ + + _domainSeparator = _calculateDomainSeparator(); + +- emit Initialized( +- underlyingAsset, +- address(POOL), +- treasury, +- address(incentivesController), +- aTokenDecimals, +- aTokenName, +- aTokenSymbol, +- params +- ); ++ // emit Initialized( ++ // underlyingAsset, ++ // address(POOL), ++ // treasury, ++ // address(incentivesController), ++ // aTokenDecimals, ++ // aTokenName, ++ // aTokenSymbol, ++ // params ++ // ); + } + + /// @inheritdoc IAToken diff --git a/certora/conf/accrueYieldCheck.conf b/certora/conf/accrueYieldCheck.conf new file mode 100644 index 0000000..f27824d --- /dev/null +++ b/certora/conf/accrueYieldCheck.conf @@ -0,0 +1,42 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "verify": ["ATokenVaultHarness:certora/specs/accrueYieldCheck.spec"], + "rule": ["accrueYieldCheck"], + "optimistic_loop": true, + "process": "emv", + "rule_sanity": "basic", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-ruleSanityChecks=basic", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "cloud": "" , + "msg": "accrueYieldCheck" +} \ No newline at end of file diff --git a/certora/conf/changeInContractBalanceShouldCauseAccrual.conf b/certora/conf/changeInContractBalanceShouldCauseAccrual.conf new file mode 100644 index 0000000..4407f32 --- /dev/null +++ b/certora/conf/changeInContractBalanceShouldCauseAccrual.conf @@ -0,0 +1,47 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "msg": "changeInContractBalanceShouldCauseAccrual", + "optimistic_loop": true, + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "process": "emv", + "rule": [ + "changeInContractBalanceShouldCauseAccrual" + ], + "rule_sanity": "basic", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-rule=changeInContractBalanceShouldCauseAccrual", + "-ruleSanityChecks=basic", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "cloud": "" , + "verify": [ + "ATokenVaultHarness:certora/specs/changeInContractBalanceShouldCauseAccrual.spec" + ] +} \ No newline at end of file diff --git a/certora/conf/erc4626-previewOPERATIONS.conf b/certora/conf/erc4626-previewOPERATIONS.conf new file mode 100644 index 0000000..1e654cd --- /dev/null +++ b/certora/conf/erc4626-previewOPERATIONS.conf @@ -0,0 +1,44 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "optimistic_loop": true, + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "process": "emv", + "rule": [ + "previewMint_amount_check","previewDeposit_amount_check","previewWithdraw_amount_check","previewRedeem_amount_check" + ], + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "cloud": "" , + "verify": [ + "ATokenVaultHarness:certora/specs/erc4626.spec" + ], + "msg": "previewOPERATION_amount_check" +} \ No newline at end of file diff --git a/certora/conf/fees_LEQ_ATokenBal.conf b/certora/conf/fees_LEQ_ATokenBal.conf new file mode 100644 index 0000000..195a249 --- /dev/null +++ b/certora/conf/fees_LEQ_ATokenBal.conf @@ -0,0 +1,40 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "cloud": "", + "optimistic_loop": true, + "process": "emv", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "verify": ["ATokenVaultHarness:certora/specs/fees_LEQ_ATokenBal.spec"], + "rule": ["getCLMFees_LEQ_ATokenBAL_DM_other","getCLMFees_LEQ_ATokenBAL_RW"], + "msg": "getclaimablefees LEQ Atoken.Balanceof[Vault]" +} diff --git a/certora/conf/lastVaultBalance_LEQ_ATokenBalThis.conf b/certora/conf/lastVaultBalance_LEQ_ATokenBalThis.conf new file mode 100644 index 0000000..6488adf --- /dev/null +++ b/certora/conf/lastVaultBalance_LEQ_ATokenBalThis.conf @@ -0,0 +1,43 @@ +{ + "disable_auto_cache_key_gen": true, + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "process": "emv", + "optimistic_loop": true, + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-rule=lastVaultBalance_LEQ_ATokenBalThis", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "cloud": "" , + "verify": ["ATokenVaultHarness:certora/specs/lastVaultBal_LEQ_ATokenBalThis.spec"], + "disableLocalTypeChecking": false, + "rule": ["lastVaultBalance_LEQ_ATokenBalThis"], + "msg": "_s.lastVaultBalance LEQ AToken.balance[this] accurate assertion" +} \ No newline at end of file diff --git a/certora/conf/positiveSupply_imply_positiveAssets-deposit.conf b/certora/conf/positiveSupply_imply_positiveAssets-deposit.conf new file mode 100644 index 0000000..f266edf --- /dev/null +++ b/certora/conf/positiveSupply_imply_positiveAssets-deposit.conf @@ -0,0 +1,40 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "cloud": "", + "optimistic_loop": true, + "process": "emv", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "verify": ["ATokenVaultHarness:certora/specs/positiveSupply_imply_positiveAssets.spec"], + "rule": ["positiveSupply_imply_positiveAssets_all_deposit"], + "msg": "positiveSupply_imply_positiveAssets_all_deposit" +} \ No newline at end of file diff --git a/certora/conf/positiveSupply_imply_positiveAssets-mint.conf b/certora/conf/positiveSupply_imply_positiveAssets-mint.conf new file mode 100644 index 0000000..110fe2f --- /dev/null +++ b/certora/conf/positiveSupply_imply_positiveAssets-mint.conf @@ -0,0 +1,40 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "cloud": "", + "optimistic_loop": true, + "process": "emv", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "verify": ["ATokenVaultHarness:certora/specs/positiveSupply_imply_positiveAssets.spec"], + "rule": ["positiveSupply_imply_positiveAssets_all_mint"], + "msg": "positiveSupply_imply_positiveAssets_all_mint" +} \ No newline at end of file diff --git a/certora/conf/positiveSupply_imply_positiveAssets-other.conf b/certora/conf/positiveSupply_imply_positiveAssets-other.conf new file mode 100644 index 0000000..f6930ca --- /dev/null +++ b/certora/conf/positiveSupply_imply_positiveAssets-other.conf @@ -0,0 +1,40 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "cloud": "", + "optimistic_loop": true, + "process": "emv", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "verify": ["ATokenVaultHarness:certora/specs/positiveSupply_imply_positiveAssets.spec"], + "rule": ["positiveSupply_imply_positiveAssets_other"], + "msg": "positiveSupply_imply_positiveAssets_other" +} \ No newline at end of file diff --git a/certora/conf/positiveSupply_imply_positiveAssets-redeem.conf b/certora/conf/positiveSupply_imply_positiveAssets-redeem.conf new file mode 100644 index 0000000..89bbc85 --- /dev/null +++ b/certora/conf/positiveSupply_imply_positiveAssets-redeem.conf @@ -0,0 +1,40 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "cloud": "", + "optimistic_loop": true, + "process": "emv", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "verify": ["ATokenVaultHarness:certora/specs/positiveSupply_imply_positiveAssets.spec"], + "rule": ["positiveSupply_imply_positiveAssets_all_redeem"], + "msg": "positiveSupply_imply_positiveAssets_all_redeem" +} \ No newline at end of file diff --git a/certora/conf/positiveSupply_imply_positiveAssets-withdraw.conf b/certora/conf/positiveSupply_imply_positiveAssets-withdraw.conf new file mode 100644 index 0000000..2863586 --- /dev/null +++ b/certora/conf/positiveSupply_imply_positiveAssets-withdraw.conf @@ -0,0 +1,40 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "cloud": "", + "optimistic_loop": true, + "process": "emv", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "verify": ["ATokenVaultHarness:certora/specs/positiveSupply_imply_positiveAssets.spec"], + "rule": ["positiveSupply_imply_positiveAssets_all_withdraw"], + "msg": "positiveSupply_imply_positiveAssets_all_withdraw" +} \ No newline at end of file diff --git a/certora/conf/rayMul_rayDiv_mulDiv_properties.conf b/certora/conf/rayMul_rayDiv_mulDiv_properties.conf new file mode 100644 index 0000000..19cc1a0 --- /dev/null +++ b/certora/conf/rayMul_rayDiv_mulDiv_properties.conf @@ -0,0 +1,42 @@ +{ + "cloud": "", + "disable_auto_cache_key_gen": true, + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "msg": "rayMul rayDiv mulDiv properties", + "optimistic_loop": true, + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "process": "emv", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "verify": [ + "ATokenVaultHarness:certora/specs/rayMul_rayDiv_mulDiv_properties.spec" + ] +} \ No newline at end of file diff --git a/certora/conf/totalSupply_EQ_sumAllBal.conf b/certora/conf/totalSupply_EQ_sumAllBal.conf new file mode 100644 index 0000000..6b9b69d --- /dev/null +++ b/certora/conf/totalSupply_EQ_sumAllBal.conf @@ -0,0 +1,42 @@ +{ + "files": [ + "certora/harness/ATokenVaultHarness.sol", + "certora/harness/DummyContract.sol", + "certora/harness/pool/SymbolicLendingPoolL1.sol", + "certora/harness/tokens/DummyERC20_aTokenUnderlying.sol", + "certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol" + ], + "link": [ + "AToken:POOL=SymbolicLendingPoolL1", + "AToken:_underlyingAsset=DummyERC20_aTokenUnderlying", + "ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1", + "ATokenVaultHarness:ATOKEN=AToken", + "ATokenVaultHarness:DUMMY=DummyContract", + "ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying", + "SymbolicLendingPoolL1:aToken=AToken", + "SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying" + ], + "msg": "totalSupply EQ sum of all balances: Vault, AToken, Underline", + "optimistic_loop": true, + "packages": [ + "@aave-v3-core=certora/munged/lib/aave-v3-core/contracts", + "@aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts", + "@aave/core-v3=certora/munged/lib/aave-v3-core", + "@openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts", + "@openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts" + ], + "process": "emv", + "settings": [ + "-assumeUnwindCond", + "-depth=15", + "-mediumTimeout=1000", + "-t=2000" + ], + "smt_timeout": "2000", + "solc": "solc8.10", + "cloud": "" , + "verify": [ + "ATokenVaultHarness:certora/specs/totalSupply_EQ_sumAllBal.spec" + ], + "disableLocalTypeChecking": false +} \ No newline at end of file diff --git a/certora/harness/ATokenVaultHarness.sol b/certora/harness/ATokenVaultHarness.sol new file mode 100644 index 0000000..e4d5d3b --- /dev/null +++ b/certora/harness/ATokenVaultHarness.sol @@ -0,0 +1,83 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.10; + +import {ATokenVault} from "../munged/src/ATokenVault.sol"; +import {IPoolAddressesProvider} from "@aave-v3-core/interfaces/IPoolAddressesProvider.sol"; +import {DummyContract} from "./DummyContract.sol"; + +import {SafeERC20Upgradeable} from "@openzeppelin-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol"; +import {IERC20Upgradeable} from "@openzeppelin-upgradeable/interfaces/IERC20Upgradeable.sol"; + +import {MathUpgradeable} from "@openzeppelin-upgradeable/utils/math/MathUpgradeable.sol"; +import {WadRayMath} from "@aave-v3-core/protocol/libraries/math/WadRayMath.sol"; + + + +/** + * @title ATokenVault + * @author Aave Protocol + * @notice An ERC-4626 vault for Aave V3, with support to add a fee on yield earned. + */ +contract ATokenVaultHarness is ATokenVault { + using SafeERC20Upgradeable for IERC20Upgradeable; + using MathUpgradeable for uint256; + DummyContract DUMMY; + + constructor(address underlying, uint16 referralCode, IPoolAddressesProvider poolAddressesProvider) ATokenVault(underlying, referralCode, poolAddressesProvider) { + } + + function havoc_all() public { + DUMMY.havoc_all_dummy(); + } + + function accrueYield() external { + _accrueYield(); + } + + function getAccumulatedFees() external returns(uint128) { + return _s.accumulatedFees; + } + + function maxAssetsWithdrawableFromAave() external view returns (uint256) { + return _maxAssetsWithdrawableFromAave(); + } + + function maxAssetsWithdrawableFromAaveWrapper() external returns (uint256){ + return _maxAssetsWithdrawableFromAave(); + } + + function mulDiv__(uint256 x, uint256 y, uint256 deno, uint8 rounding) external returns(uint256 result) { + if (rounding==0) + result = x.mulDiv(y,deno,MathUpgradeable.Rounding.Down); + else + result = x.mulDiv(y,deno,MathUpgradeable.Rounding.Up); + } + + function rayMul__(uint256 a, uint256 b) external returns (uint256) { + return WadRayMath.rayMul(a,b); + } + + function rayDiv__(uint256 a, uint256 b) external returns (uint256) { + return WadRayMath.rayDiv(a,b); + } + + function handleDeposit_wrapper(uint256 assets, address receiver, address depositor, bool asAToken) + external returns (uint256) { + return _handleDeposit(assets,receiver,depositor,asAToken); + } + function handleMint_wrapper(uint256 shares, address receiver, address depositor, bool asAToken) + external returns (uint256) { + return _handleMint(shares,receiver,depositor,asAToken); + } + function handleWithdraw_wrapper(uint256 assets, address receiver, address owner, address allowanceTarget, bool asAToken) + external returns (uint256) { + return _handleWithdraw(assets,receiver,owner,allowanceTarget,asAToken); + } + function handleRedeem_wrapper(uint256 shares, address receiver, address owner, address allowanceTarget, bool asAToken) + external returns (uint256) { + return _handleRedeem(shares,receiver,owner,allowanceTarget,asAToken); + } + + + +} diff --git a/certora/harness/DummyContract.sol b/certora/harness/DummyContract.sol new file mode 100644 index 0000000..32e7fca --- /dev/null +++ b/certora/harness/DummyContract.sol @@ -0,0 +1,9 @@ + + +contract DummyContract { + function havoc_all_dummy() public { + havoc_all_dummy_internal(); + } + + function havoc_all_dummy_internal() public {} +} diff --git a/certora/harness/DummyERC20A.sol b/certora/harness/DummyERC20A.sol new file mode 100644 index 0000000..188b926 --- /dev/null +++ b/certora/harness/DummyERC20A.sol @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: agpl-3.0 +pragma solidity ^0.8.0; +import "./DummyERC20Impl.sol"; + +contract DummyERC20A is DummyERC20Impl {} \ No newline at end of file diff --git a/certora/harness/DummyERC20B.sol b/certora/harness/DummyERC20B.sol new file mode 100644 index 0000000..0f97f1e --- /dev/null +++ b/certora/harness/DummyERC20B.sol @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: agpl-3.0 +pragma solidity ^0.8.0; +import "./DummyERC20Impl.sol"; + +contract DummyERC20B is DummyERC20Impl {} \ No newline at end of file diff --git a/certora/harness/DummyERC20Impl.sol b/certora/harness/DummyERC20Impl.sol new file mode 100644 index 0000000..42e7f23 --- /dev/null +++ b/certora/harness/DummyERC20Impl.sol @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: agpl-3.0 +pragma solidity ^0.8.0; + +// with mint +contract DummyERC20Impl { + uint256 t; + mapping (address => uint256) b; + mapping (address => mapping (address => uint256)) a; + + string public name; + string public symbol; + uint public decimals; + + function myAddress() public returns (address) { + return address(this); + } + + function add(uint a, uint b) internal pure returns (uint256) { + uint c = a +b; + require (c >= a); + return c; + } + function sub(uint a, uint b) internal pure returns (uint256) { + require (a>=b); + return a-b; + } + + function totalSupply() external view returns (uint256) { + return t; + } + function balanceOf(address account) external view returns (uint256) { + return b[account]; + } + function transfer(address recipient, uint256 amount) external returns (bool) { + b[msg.sender] = sub(b[msg.sender], amount); + b[recipient] = add(b[recipient], amount); + return true; + } + function allowance(address owner, address spender) external view returns (uint256) { + return a[owner][spender]; + } + function approve(address spender, uint256 amount) external returns (bool) { + a[msg.sender][spender] = amount; + return true; + } + + function transferFrom( + address sender, + address recipient, + uint256 amount + ) external returns (bool) { + b[sender] = sub(b[sender], amount); + b[recipient] = add(b[recipient], amount); + a[sender][msg.sender] = sub(a[sender][msg.sender], amount); + return true; + } +} \ No newline at end of file diff --git a/certora/harness/DummyERC20_aTokenUnderlying.sol b/certora/harness/DummyERC20_aTokenUnderlying.sol new file mode 100644 index 0000000..0646038 --- /dev/null +++ b/certora/harness/DummyERC20_aTokenUnderlying.sol @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: agpl-3.0 +pragma solidity ^0.8.10; +import "./DummyERC20Impl.sol"; + +contract DummyERC20_aTokenUnderlying is DummyERC20Impl {} \ No newline at end of file diff --git a/certora/harness/SymbolicLendingPoolL1.sol b/certora/harness/SymbolicLendingPoolL1.sol new file mode 100644 index 0000000..27b338b --- /dev/null +++ b/certora/harness/SymbolicLendingPoolL1.sol @@ -0,0 +1,122 @@ +pragma solidity ^0.8.10; +pragma experimental ABIEncoderV2; + +import {IERC20} from '../../lib/aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20.sol'; +import {IAToken} from "../../lib/aave-v3-core/contracts/interfaces/IAToken.sol"; + +contract SymbolicLendingPoolL1 { + // underlying asset address -> AToken address of that token. + mapping(address => address) public underlyingAssetToAToken_L1; + // underlying asset -> pool liquidity index of that asset + // This index is used to convert the underlying token to its matching + // AToken inside the pool, and vice versa. + mapping(address => uint256) public liquidityIndex; + + /** + * @dev Deposits underlying token in the Atoken's contract on behalf of the user, + and mints Atoken on behalf of the user in return. + * @param asset The underlying sent by the user and to which Atoken shall be minted + * @param amount The amount of underlying token sent by the user + * @param onBehalfOf The recipient of the minted Atokens + * @param referralCode A unique code (unused) + **/ + function deposit( + address asset, + uint256 amount, + address onBehalfOf, + uint16 referralCode + ) external { + IERC20(asset).transferFrom( + msg.sender, + underlyingAssetToAToken_L1[asset], + amount + ); + IAToken(underlyingAssetToAToken_L1[asset]).mint( + msg.sender, //TODO: review added argument + onBehalfOf, + amount, + liquidityIndex[asset] + ); + } + + /** + * @dev Burns Atokens in exchange for underlying asset + * @param asset The underlying asset to which the Atoken is connected + * @param amount The amount of underlying tokens to be burned + * @param to The recipient of the burned Atokens + * @return The `amount` of tokens withdrawn + **/ + function withdraw( + address asset, + uint256 amount, + address to + ) external returns (uint256) { + IAToken(underlyingAssetToAToken_L1[asset]).burn( + msg.sender, + to, + amount, + liquidityIndex[asset] + ); + return amount; + } + + /** + * @dev A simplification returning a constant + * @param asset The underlying asset to which the Atoken is connected + * @return liquidityIndex the `liquidityIndex` of the asset + **/ + function getReserveNormalizedIncome(address asset) + external + view + virtual + returns (uint256) + { + return liquidityIndex[asset]; + } + + + // Original code from AAVE LendingPool: + // The version we use above assumes timestamp == uint40(block.timestamp) + // or alternatively, a very small value for LiquidityRate. + /* + * @dev Returns the ongoing normalized income for the reserve + * A value of 1e27 means there is no income. As time passes, the income is accrued + * A value of 2*1e27 means for each unit of asset one unit of income has been accrued + * @param reserve The reserve object + * @return the normalized income. expressed in ray + */ + /* + function getNormalizedIncome(DataTypes.ReserveData storage reserve) + internal + view + returns (uint256) + { + uint40 timestamp = reserve.lastUpdateTimestamp; + + //solium-disable-next-line + if (timestamp == uint40(block.timestamp)) { + //if the index was updated in the same block, no need to perform any calculation + return reserve.liquidityIndex; + } + + uint256 cumulated = + MathUtils.calculateLinearInterest(reserve.currentLiquidityRate, timestamp).rayMul( + reserve.liquidityIndex + ); + + return cumulated; + } + */ + + // Returns the Atoken address of an underlying asset. + // function underlyingtoAToken(address asset) external view + // returns(address){ + // return underlyingAssetToAToken_L1[asset]; + // } + + // // Returns the pool liquidity index of an underlying asset. + // function liquidityIndexByAsset(address asset) external view + // returns(uint256){ + // return liquidityIndex[asset]; + // } +} diff --git a/certora/harness/pool/SymbolicLendingPoolL1.sol b/certora/harness/pool/SymbolicLendingPoolL1.sol new file mode 100644 index 0000000..5422131 --- /dev/null +++ b/certora/harness/pool/SymbolicLendingPoolL1.sol @@ -0,0 +1,86 @@ +pragma solidity ^0.8.10; +pragma experimental ABIEncoderV2; + +import {IERC20} from '../../munged/lib/aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20.sol'; +import {IAToken} from "../../munged/lib/aave-v3-core/contracts/interfaces/IAToken.sol"; + +contract SymbolicLendingPoolL1 { + IERC20 public underlyingToken; + IAToken public aToken; + // This index is used to convert the underlying token to its matching + // AToken inside the pool, and vice versa. + uint256 public liquidityIndex; + + /** + * @dev Deposits underlying token in the Atoken's contract on behalf of the user, + and mints Atoken on behalf of the user in return. + * @param asset The underlying sent by the user and to which Atoken shall be minted + * @param amount The amount of underlying token sent by the user + * @param onBehalfOf The recipient of the minted Atokens + * @param referralCode A unique code (unused) + **/ + function supply( + address asset, + uint256 amount, + address onBehalfOf, + uint16 referralCode + ) external { + require(asset == address(underlyingToken)); + underlyingToken.transferFrom( + msg.sender, + address(aToken), + amount + ); + aToken.mint( + msg.sender, //TODO: review added argument + onBehalfOf, + amount, + liquidityIndex + ); + } + + /** + * @dev Burns Atokens in exchange for underlying asset + * @param asset The underlying asset to which the Atoken is connected + * @param amount The amount of underlying tokens to be burned + * @param to The recipient of the burned Atokens + * @return The `amount` of tokens withdrawn + **/ + function withdraw( + address asset, + uint256 amount, + address to + ) external returns (uint256) { + require(asset == address(underlyingToken)); + aToken.burn( + msg.sender, + to, + amount, + liquidityIndex + ); + return amount; + } + + /** + * @dev A simplification returning a constant + * @param asset The underlying asset to which the Atoken is connected + * @return liquidityIndex the `liquidityIndex` of the asset + **/ + function getReserveNormalizedIncome(address asset) + external + view + virtual + returns (uint256) + { + return liquidityIndex; + } + + function getLiquidityIndex() + external + view + virtual + returns (uint256) + { + return liquidityIndex; + } +} diff --git a/certora/harness/tokens/DummyERC20Impl.sol b/certora/harness/tokens/DummyERC20Impl.sol new file mode 100644 index 0000000..7e1aebd --- /dev/null +++ b/certora/harness/tokens/DummyERC20Impl.sol @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: agpl-3.0 +pragma solidity ^0.8.0; + +import {IERC20Upgradeable} from "@openzeppelin-upgradeable/interfaces/IERC20Upgradeable.sol"; + +// with mint +contract DummyERC20Impl is IERC20Upgradeable { + uint256 t; + mapping (address => uint256) b; + mapping (address => mapping (address => uint256)) a; + + string public name; + string public symbol; + uint public decimals; + + function myAddress() public returns (address) { + return address(this); + } + + function add(uint a, uint b) internal pure returns (uint256) { + uint c = a +b; + require (c >= a); + return c; + } + function sub(uint a, uint b) internal pure returns (uint256) { + require (a>=b); + return a-b; + } + + function totalSupply() external view returns (uint256) { + return t; + } + function balanceOf(address account) external view returns (uint256) { + return b[account]; + } + function transfer(address recipient, uint256 amount) external returns (bool) { + b[msg.sender] = sub(b[msg.sender], amount); + b[recipient] = add(b[recipient], amount); + return true; + } + function allowance(address owner, address spender) external view returns (uint256) { + return a[owner][spender]; + } + function approve(address spender, uint256 amount) external returns (bool) { + a[msg.sender][spender] = amount; + return true; + } + + function transferFrom( + address sender, + address recipient, + uint256 amount + ) external returns (bool) { + b[sender] = sub(b[sender], amount); + b[recipient] = add(b[recipient], amount); + a[sender][msg.sender] = sub(a[sender][msg.sender], amount); + return true; + } + + /* + function safeTransferFrom( + address sender, + address recipient, + uint256 amount + ) external returns (bool) { + b[sender] = sub(b[sender], amount); + b[recipient] = add(b[recipient], amount); + a[sender][msg.sender] = sub(a[sender][msg.sender], amount); + return true; + }*/ +} diff --git a/certora/harness/tokens/DummyERC20_aTokenUnderlying.sol b/certora/harness/tokens/DummyERC20_aTokenUnderlying.sol new file mode 100644 index 0000000..0646038 --- /dev/null +++ b/certora/harness/tokens/DummyERC20_aTokenUnderlying.sol @@ -0,0 +1,5 @@ +// SPDX-License-Identifier: agpl-3.0 +pragma solidity ^0.8.10; +import "./DummyERC20Impl.sol"; + +contract DummyERC20_aTokenUnderlying is DummyERC20Impl {} \ No newline at end of file diff --git a/certora/munged/.gitignore b/certora/munged/.gitignore new file mode 100644 index 0000000..c96a04f --- /dev/null +++ b/certora/munged/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file diff --git a/certora/report/Aave-Vault-Formal-Verification.pdf b/certora/report/Aave-Vault-Formal-Verification.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f750a5be51c8ea48c1a1efb0a2d8047d72e897de GIT binary patch literal 800982 zcmb@t1ymeeyXOmyy9Sp=LvZ)t!QI^(cXt|hhv4q+5P}4P6C`MGcXtSS`~A+Db-p|I zo>^P^PQk>?+QH4y)k**;pvf$ znu&#pi}inA^a+_o*~QV^-3$b|3pHD76BfwL0_`E*kTd_fJ!?k?2@^LEkWPZ1ot2$~ zm7AT9m5-B^or{5$^&@11_$fG=|F2zygpffF=KqN1_%HEhCO|f17BK}Ni=v~8y@}m_ zIdT4%le)JP2*{$XWNHI4b3b50YAqJz;oO`$sh(WX(|g=~^>ObdrZaYez=1*&EVv?^wdDwUb< zzLS|9sH_SNiKkst-sc>vzULhWInQtFE|brOw@=}>wkTzix$cP}B)dR_ZsVt;tzzPh zcdzI3ZavTQwj97~kfDaUX3zPN^Y4qyDqGtvUaO}r#lEdIG57aGt8C5hk(>t9%NSxm z-%S`ViF0vz8b#?0`Y8*vq^5Er$QBm(87UFEajUATg3ZQDbOe*WepJ647&~CnPYPyG zcT*0%5mR?7h($`~2r3!jA8B<;#^Nm1QGax)Q+B0($RQJL-FH_?3kk?qSBukTa2O+r zPgu3JZh9GN+WcAbTMp%nkpjQz=NP_RJ@egU-kc1n;o8iDcStB*t%H^%%)d3mTMHkA~}UCZM(JeaafP~WF^kvH%0D3=F8w3KRYqL482s=isYO&e<}?TJ6V;I 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%0DkA}fu}q?3V3Tx_ z>Pk}Sy=_p8j(o*Ono+%6C$Qd;mb<>_#kha4-n?af>L884|ZGdjTms z>}vWnNa(NAj2%J{d=uhO#$Z!#UW*?^S)x%19x~pdR^Ny#JNj(qoYtR4w$eubm{VFq z74ED^&lDd!Q&YtnBT);L`j3`->8+yFx43@F#i3|JA9U{WZamn9e{^na5(AZc`BNeLJ^5* z$CXC06=}BvSU|AaSfzjG!NnD=fk4GK!qXN-sI>~y@jx&j z8RJg99x}@{pDu#nOt=f!pi+vG1;87<-T@c7kmxX@w&{gOxA!8=n8tfe-Wud8X zDMThp3X5nPrT|gpk%QDW+@u@nyL4(KTvKY1ssyT^!x&lkhzMpmv4OL@bn^|9gf-^w zUog7UB4!gy@s9F(a`NOmORQ>%`Y~80_e<+)>jp6-)d&@j2bJO07Uy0?>-!z_<*8Y< zh7~cjHaTaoXPJLEV?x)Mua#FcmtdEgH6Jy6mel!l^mfz`H8lc;HO}1I$GWKLXrnmj zWfUH!kK@;M_~%o^C{0K1?Gn~4C<%UJls9u+1)u8+JzkH;H+F6*Br(ljE;y%u+2;+% zx-hg{_4lq7$LZ`@ZRJ*nsbVeyuLPMF>HFpj-i2a!-Ye7vOxsf+J{0-CLfH&{FL6cen%pTc4*tWR97-j*wmV|8On)RWUXMI)8W|pUm zzub?mLums=pu;P-O*JNzS+*xJ>Vy&cd4fNWLsHcJ@%;pG6%Y1X1mkK_2kqZB`t*|s@;(kMI2 zvm{V;QT093QtNV2nCH$ zU^U+qVUq0n?l9HTQGiaAg*GZ^{YwP-R4RiHX%tKR-g0KxUIm|28;8=>} z8~UOJ#^LT!)Y{T{h^b8N!-|{Veo-t>B_x0_hDlftR3xwfjOCMAH{<`XzJ0qcz4LTU*ZD=rd zr}xn`JQBWotPW2hzjriF7YU>8@w5I~(Aaq7kJe#q$}-;FABdg|!M1pJ;#VHF8W=M* z!l@?Op+CE>&vw>yWQ9N9K;;WqYuNV)0}+&|{_zl^@FpoLdvcFl@xZj#!>&QJWBCzD zay)N5*8@y$UQFh^C(ZHV@(JYNG|>}zuH|hjG8{YIvzfB)nRce@Gaw0YJwI<07l+z~ z9XMK@WW3g;IX&9fbf}#kGA64xasYnS_ECAmW^=aXK^jd>GWB7;)%m{8I)jL@WmkX4 zJwC_%dM<+D>qmIV$M9e;Ywf$AQ;rwkb2WTp>JF;$HT51;wbFrbnSW4eN8-Dw8D|DO zEapdPKBPe|AZ6VOfrnlTi1W$f8JILuwB@Da{O&eo?lON3-u_wTB0-Sg7IHhwjLM2tJ{$_ebd=* z>0$RL=Ww|#4=d)gk8QowEBnD)Z3js1Pj~6DOS$L`B_J24HNK0ZVj0N1Bf8_%$l71C z=6Uw%8|+9BFN^8+J|*6TY|e|B5tqMMJCKq2)-u-H&3(a#^|!7zynF0o()o`xuUihz zdyLi`;}3E(ykT)3{P{}tvPzR;Vp*Oomj5i?1I$cE5-rW81}6BOT^`H^)jvZ+0Tk)1t}gzsPDp}b+!{RKMDChz(?+b!daSWKPcbKgHs`12i6 zH9DE-)_gLw?gajTBm51HN3%y{J~7d<+-Up!;FtbygC$Ik zfKi#e;X$hDst)+5uj?||tIy%kJ(Dk_@8?!bDwQSe!*(8e)?ddIypscsHXSF`HDZ5{ zVDC7KK;_?;^p=`*x9w-he#Q>_xG!O?&p>!kz~brD5>AJDp6?{{3Y=duz5n`!?&TRJ z<@c*(q6b{LJq2x>&8wB=`xct)$m#TS^o%pRy z&mG#@yDgz5&vZS0LIB+;O`QD7^YCQP@TBf#yh+s&fkBvG_iTv(@4hvgkXee}rl-dq zg2B{UykfoWFNcLA1=s`=QViu~l3m!FfbL7kJ+#!!yF`W<1i-3snHZOL!aq6aS?ZnN zeXS<;72r3lJBpqddv{x9c^8YAFm>4N+4QLS2zytq8R8UqMHT8Ado4coraMQI+raH= zR~|GQ=kt|~nfL1@g}LP|>nqsETq8U)AKPnJE?dVrpq}KQEkrqcs2%tE;XgzXj|s6^;!=Gya^8j`!d-?6T!zEdfAR6T7;N&3?f>U}rnB-1E@; zgV#lczooW-2XT_V1}OGw&z2L?%Q5YH6Y8QqXteQsMPzh+4WyXP+x__ON6`jUmU0tL zP)9w`LZ%eoHO+4Y?4d3e8D8Iqk1o@&#>R7mnh_2{1|FQho~!b^dKD14Hk=qV`LfLX zI(g3bp36xdWY<1@dnpKA+2=+c0F&x-rng|b@-afB7DM-7kT@5fE_k{q2R1;w263zx}RYv8A95c_JWrpG~; z6vg>4Xo+=?s)6kp<2sJ8Gl}QN1)Zy$G!I264&H~JoszYsIq%i1>ZriZW%1t0+h+N{ zTFpXT-HWdsBzILdtBu=repv@<3n5p6>}h9-6b)89WpCSW1Zi2a+f-#59CSr9k!}F| zs|vfV4lX|J{k<;4nH&$O+o`YaH;JsP$Aap?D)*o+!V0!0=?t*iBs-T?!n|{(CttlQ zxwmiB=tDa~upQ6ze{8XD1oHZ)Iqhrr#4#+3@wrsw7CNe)r}y3?)l72*E_+A727l8@ zA!N$JK8(xv^P4VHxW5F?^{8)ohGK`^jmr0NSdBuWOJY$hriyoM+ycXFZnnev>G?Jx zW~GTRVVP_6Hvwf2N-fzqI%SHTN6BdYvcWyelBoz)S924;90-$v8|H_M-pB0rbV6J1 zygkQX#+yxfE19a{PB_?WnYq*ny`Z?kYTae!)3b1KAg+%>jkKq@m9veYj5KX+brL(U zn6UcCOK01v9+jM6vIN++I>vh@ zZ-5uad0D&gP7M-35`xQ@Y#*>*?poWAtiMyePT_n;{>`%l?M>UMSJ=qqcsR~$6wtJ% zsFkBub3>}2y~~Y9p}bS28LL#?j6$a{9(SdpOg~2Ol`25)RZrzEH zP4s@N^9TEm%)-cn9#dX(kyoztBk8Yj4$ow#sJ;WYx9bVmm}k@q|5}m_u1$+dz!{Uy z)4r5JbxNy6K|?xSNBzOZyaHd&vCRr7EaCl&%zRG)0g{^=(t5ZG13MAV#mV15$LCEI z?t9vOPpa5zk@PM$dEKPU1>F84(~0wISpGZEwn-eXMG0|>*yvQg#AVj5EA@vB=#E}C zW0#q-8N%14EC6tK=d~Lx`SX2I=QGtW*V^RMncLgJakSRdfb+%n=D@;rk294=NPtGj zMmN=cYv^B@+V7v4`dbZm&-=f+M|1usPhk@yB1RYnVL2iOc?V}ZBisMmiM0fCe7YhX*NXlu)oS4ZQlcTxEJ^OW{$YCAiMiahV@Ze#J=lbIry^i$@Ej9(i! zHK~y*FDB;c;klRp^WKl=6Y_Ht87bAQ{&D1~v{LbSEY)xm$L z0!N@QFzl}!K{G}xBa6a=>u_;uyO((Sz1H~_4KF$S<8ivE@csF4KP&LLALjQW$?|fT z_Dm?i`}xqGT_x}tNu?T?rGhUDS7zYn&CNicj%1hb;QP6&4XwBUR_p>YzL9ce_JO@ zsLtP+JjtAUH(motFf*>hLTDur=TscuuuD_Dg>8@*O|CnxX&jorrYHTLMj-^4X% zy`Wt)+WO`6HHD|1s2hn3_34gn+3j;Z=vCYVwVj$AnR{g(o1;Y*)#Y-o#JSKKr8ys@ z)HciGMRc4F7iX+dHTX`K!7=F-F{E*@E3!Eeq-r2SsltmS{qA%R=7(TE?m2h6r4CtB z?!L(T-PiSX`qO=YH#akBdD92dI|nqP4eC@{2y|rFBs%^Cv|`8Bv2p&=y};MW+g^lR0s&-f*N9p zQt`<<6qd?K^to7p(P8)vLJsc*n$^sva{PMbRPyl{P_!@>VlQ2h4 zk0LfTM3a2m3pfnn4Ow6$1Obm|;|{#SmvfSOG1IJ)dbGv~FN#1hH<3ouRG(7rTC35| zcIgQ)D)@!l5k_}O6>=rFNIVrLN#Hejmw4733U|0CXKm?3oIMbD3yI1juEZh~@Ku&#<;* zfn>yUqjvy}tw;6E=rptP2My)#GU$vU*Y}~1Q1?rF$e&ME(H2vDwpX5JoZhk0zjG@G z6Vi#4wmB7TNc8m*E#NMC`fMDGBP*^a-`-re`TZW}K0Liweg}=dVZHk{E7D&4aE!~j z`FzVC?PXZ1OuB=@x{1yKZ1{|xM0huSdcezW%j1myFuWR&`&wuD$AfU~XAbPqH8 zlZbAx75mUxxnA2j*;g|vyUzw2&nD24-qC*f&pr3YaIhP(`L@FmmTM*x#T>?uIs~C2 zrgJ2;Ic~6+-)Su{LIDXTy+3K9Nv-glBy|{`H%+&v;e%FKK9B~nW!0%0ejvyor7IMS zD}JE5ZE$`)I3i2tZmk#;_Z5k-;w>+7U~EE!Wz;XC0cIv8|o$+2twnbw!(^r51#0OAZo;v{%%k((IfwU z(w{e>jGRm5sX}S@qTn&rV05wMk+w%mko``Opv!QdQE1>$5sv6@fEM~?m16qHrYS{~ zY7KLu4|P@>oIii@rvnpS=vt;{eO8CGdOyF`-e=nwM70}kzJ2aF>ju4cR)6-|E1A4z z1e6pxA;?koo%L{&z9&r+cYNH^K5yP!kWuRqyB4&jqiE464^$CUApdz-w^ci&je+C2 zdSFBpC$p~#CR26V8Upg|uAuI#qoq4rrJDeae|EN)Z^y}?;|l$*KxS2ov)w*zY4aA1 zFlpgj4gFpFY?*ctIL2deff2ygQ~tEnwf1K1Kr8ds!F|e)d2!}bd-V6&ZNgXlpE@|_ z>0Nx;)0_EGMUZo4RApDtd7uXmu|W;x0rvPHX$ZeamX%d*5=d+ori3-f%G5?pk{94_ z>sj!4^DJeY=eA9vhJL@std?JM*RehKYeVAJbF)V4%SUd`Zr5Xh0Z~@^07aJM97R_8 z9($JLYD+%&Nk=|;X%m$taLdoHZHA(>X_^8hHLYug0!2GJjyfwnaf)KW(3QR3kFGJo z2Qx!1dp2oJlpsSk`w@B!ZX^58)G(8j=}fHDuO#oJF=qI&N#e$kE?c%N%``O&R25Ck zrlA84aJs&hHBpdiSba0pq#`Tt964G0vV8DA3`(Y`(D~pCYoY@!;Bc3aNN>5DvT2UG|DdR)XNAai z{reAqVW#3^H>Dy+zyXd}@5mj6pQCHsXPKvICrjfQ9`A7%LVAFp4Ov6)PM{0-wv)2D z`v`6G7-T0$w*4OeGDvK0he+$IJNbhK!%ID3#3Kdswcg-}3ztlv)~JbO>`}W%CuZ5+ zi&0Msv6S34r}lk2X6QjW^d!?4kn%Pd<)%?t&=V`vxt7&!7VBOUNU|qBhy^2b#~$UW zb`wiOzc22AJ%f(Lg?nGHBY6tDBV?60An^o!$P-srWVwV$(Y;U5JvjO(J9x>Ura%4; zP$F=A=XG=oF)&1mO9k%%zx1{+z9tW9keCefc>Pkck~Qb+a&6%e?YU1G<%?asXRq|h zI(QuvH%Y_R7tw>9QKq!hWS?}oG51J29n>HtA#ojc4RAC#|0`Q`W@IrK4%;g2miRe zT)BlJeFLv!T!H26TB?sfdqTHR6DxB^#rpS$(mbhJMF*{!U(e+odE13$qCBeI!)C0q z7C6I=Zi^|g0K(ObYm8E$pDip5O=U#DDwNAfB7z%v4_{I_5W#pn(ePlfKtwGbS9Ffs zl1|=SDRVo5n_r9{fx)!DCoaA+p3XF{Ydq++WhshG2H#*HQ!M>!psP%w$4FEeF*^Jr z=o||H+YKF!oNVDK197JmmtgD{x|ngkt5ZT0a8uj>lSv;XbecE66FtbH z)we1vc*u5SPG^slxF2r&CnDF7)Hf4Hy6WL#CDnKh;9*KaM-+mlpJBK%o58& z3r;$!F>B!iKKI%~gHtS{wC#>hit2MT(ix!OOYdRs5sjb$?PO)h>dwxe*5*?lGeTG>;9fk z!6<*TOiGF{{g%;2GZ(h%cTCm`u8gCUb#Maz= zokYz-8npd>i1v91@xHRu)+{eNweMx1_m8GA06-!Q%)*MX>^ch5i(WK~+WOv6qr_2&I^} z9#GF|WgaV696*|l%9K+NNChcisY)fs0vjoE>$fAhYgKqP46Ff#ZlLWZ0|gDhP5^*m zmMD2eJF!msbc1=o;4;~%M#t$}&JHMbX$|ML7R10H=w>zV*Dm(XyngR)0#{NLwfnW~ zg!*2toBktR7`67w>~$Z=v(0(o&n<0sLIFL#o@2X)s(%Z+OSAPlz+V#`w@@&l zfEZVImK)Fk%Sn?N{qom6IOURbHzX8kfPW`R>@Qs* z!AjV|9k0EBV6uQbrFVnYOuVTqF0T6~7q#ZLR(@J7N!pXrH$dGy!)AA?sVP8n#gtdZ zya5z1rz<4Cg@jQ&A}I)2S21anucuQggEHS1*JP`vYNxD-SnupE!1B>$`xVSfq!Y1z zL;dQAm~#rNBPSI^X14%i9^j6MmsqVw#)J0e2>fG?Rs96N7A(CpcQO|Pe;d^nV&2}* z05*8>8gexT>T>iC*82c+eNZQ)hz0?FgfwrO0N}*C=>chwUPR;DHo>q@jqB2{L9zc> z3NSN(*LzIa7(Ju$?zE+AU_L`m;o;+ z?#Z4~1rEwoxr%I7BlJ34(PYKHDyMMwhYAXGTTmc@t5~&;n;4LTn|3hUiDKLwks^#? zOb5Q4(z5+}j(T{jsx>E<+KFdeCCpKMWLK3rEa{cPqRmXPr!vxs%jgR2AedMrhYM{o zD$`cp;5|AC9hD`ll(IMB-<@q9mFQp$35Zr|ts|OAm%tsmQ@x)M{#-Pk7Avr|> zxTz)P9e_5uWd_vbm>ZIF$J%JKZ(egv3+{Sq^~3dz2~FxV!q>&D;C(LJK(st%2H16* z=N|+nlZgVYPB_#cz1HZDqbagxQwqOPi+^{;FPwz!Z1S%^C7OOY7uycuTUcB0>yQO} zj5wsaU~7^09&^dOMa!n_c+DjKV|gT3H$NB~f{E45+_}#o*NFbe-g%ozoE05WU_2Ou zhZ(`=67An(S)nvFA|nr(iascbr%yO?)w$M+q~;ot3;&7!Dcb2Zt9+uzDb?NgoPcA> zuXL8Vy9%4b3IbHnZC*_DcN2;#m>sWRR5go46#2~!j71nRE?>gZ7MTEgiywr_2vodp zDJCRgb69;CiamMR0?cbbJ|bRGvk93OW|BjA%AT|+k*cLs`K@>ff1YmRIL)cx5}uy5 z&3rbbMM6H8#~F4jfz(QXZ=;p}&NyysgA{R*(D&AsVVMwqg)s3TZ1Iy>zO~b59d;Y! zD*K7~yl}(_1bY4bjSI-z0!~wzZ=P@eA<4mwa+DuhVl?mjwfFl_01EJ&_Wj}aeRsIh z`}O_J`}y&@cs!f>Q97H4;kC`sn~hU#L+vhdaY0@0cg180SieFY43UJEO1W@%2k%zA zoowU)?edDc*&?uIsFOQH?1?(=!Ff(QN4Pa6e|WZY?`=GBA_Q2TuX%J`pIq9Cd8$ep zl*v2*D(sr$K5SYIdpgqkL+lnK0PZ}wXEQaJ7Z2SXz~A#Y^E?}F_!n1R?YVfJ!)1qw z$C%fSI__~6!qand_ED<}s0^E9hBj@hUdi^8TVIa0Uy{>1elJ=KhZdhVTwj0qNA0{B zYOdru>?Ut>=sJ6@0{vEWS`7}HT8^(SdIyqPpRxg^+U=_eUv8^b!y+y$n}=T$=UcU{ z=ersWq?m|DQ!BhJ4UM23wsZ7h#7}neB>u#oW4ar+_H9#R=-dDj0_GB-d#Xd zAtL#jt9NzAWu@17{h+m5&@XVBVo&e8Efg#rI- zT^g!y&DCop*UNS1_j>nneRsJpk%JhUPslUBL0X0ZZ7bG{H_ma7?urJl_~Y|T31as% zckUyb8v667+c;B`%cLMdsVrA$`J1ai+V5S8r$7@*`vxz%$3d14@!Z|(CG>ZUL)K@4 z*Y~kg<_shG>)xD}#m zTL*YQN)-~6djHs9W%sg2?*GBpHwI_c1dTqiHny{IHn#02wzaWsW5bPY z;AZP>#O>HOjpmGKGQv?P7S(yx-ScdvUiuguClttI&=vJLfr~q z$KN6xi%JIdHmZhNjADgDdo%D^&K&b6|Asv87~TWjr**0V%|n5T)wI=1*d?v#6tCHw ztb3ujt85uf`Z0O-&wb1*BS8w!maWJlOLq#gD=S_g+8(sG1Q_ECh4FiuU%GrXk?au2 z@=Q*bQ&F!=77ddxk4`+NGD8)U0f-~K!M|^TxhZYdT5$fP+Hp$1O(|F^4z_nOdb0K^ zA7j9>V*e72EKnKU4~Il2CywSWJj$EfIAj~2CtT0~L$O?11aAt!Fb;8(2_axxd=EYD zwom3!FEpFhE-@|X8q@r&7e<+^2Qcu?C9H0rgjXs!uOw;4Nq?*UwdYXhy%v);9q*lN z+4t1GcZg%iMP^yRcX6BDpVzrhUAR{Dw?NWB}pe&u3=oW)zs*4e5-A{ zM(*`M5Bjd2!+z!xev4CpGu}9z_@UL=xm`}jiK2iG#I~PC?#eP(O9;#NZ0rqn5n2dO~u5=*mizq)m3_%N4;26=g zbJYz!Lwqtk8hXM?i{H%CSRa_FLW}=9Fv^$~Y|w4c=#?6|%4V3aPI=9UNDGw1Fbe9(Y zk3e^Qz8Hl2jI;3SX`IF_$CD_r(X!!=mOx)Un2Wb(s3`A`m#rNa8S#VR%L#;?PEg4I}X{YMT2PqkE5S5)x z(bo@l7Z8{taS-&S`Ir*wN5?)6th|NbBhX_eq^UNAuS~pa$I87xZG1N7Kq5U?VW*&LK&xP+NhhW*8!3Z)GoSW$U}46D;n^6 zbkk??y(RS!5^s1OriXXlkh`=xpL>AP^Uyu+B*QTumQ~izM zy@LnW_SP$j$q2f`%x`Ky-b|Ym(xiLTu=n6)0Fx8bL4Syx`Fx%=$T<`0-g35IT}F9Z z&p?l8R~yiJ?XQr8kf8FU9fGTEUch86hwuDLaeS;1thl;_pd4TJ==Ydd)}xszdjlcf zP)eN&Pr_3U-C9<}VGTi3iVJY4Es1SnMG(4kc1@@P6kOBZYVQgq6t5fsnQ4VIY~o}Q zD+vekAOTGBj1J10fM#Q)5KXn(obWs`6bI`V+M=eQ`y{CEi_J17AdTc|*e*U0@nU>p zphipaBpXge*cQAyk8(f79}aP4bh27E1!b`-1WxUQJJQBx6XlTml6$)y_9IQ}ng*WTAA{}ea0cB2(XF}#eT9l+#YutLzInI+iN{oGnOn#)D_7IBsYr*sUp2_G+3{1#L8*mAzftH7)J0 z-2C`;&p*n~u7NyLWD(@X0zN_65svE6+NAk}j-hYz%+4$bI5k8WrXW0eq_S#~E zwD?c#5pn?uUeN^Rw~1kj z48}>FNfyUh6mE*5%5PytzOD3_Gg)v4N(NqDFq=|xsecGEXNNSflu%1Z`Y31LY6*QS zG>NaIhU(J*1Q9w|W$*_NJ4T~KihIEgNwc-oS_gu9@4hF%t+BT?Wu+5!$c2ATH=t?9 zpE8JXhC2an?`iOX1L<5P>vmh*4TI!A2&=WYD9v7NEuP!tAJ^(qmQ`pmL}kFso5*WR z5a!!6j>5=y z(l^6R#F2wr530ix)~2kh-9#k1#KWtL{B|#w>uL8Jd%sPkD#o}v(X~SAN}pl5?FEuu z<0N0~EK~DyQdX;y&PpB2Qx?xOB%T4OZqaDYC!#=X@46nQm}$~U?}l#5C1wse^}zAM zQ9ou*S{+VqgJtoQ1Uq3~xHi7Jrul->Z>%yPmTkJp*^O>lyXAG4An|g$_}%G=xts0Y zZ~jHPRo!#UW)Z#+$HKb4I{z+P@!c3XD6n^RKeuRK`t40~FO&Z~Ep!b1sy$r)+a}vQgAp!yenl{_eK6vxVk*F|KgVaC^$0q|Bll{aa_WBphX_Bz!8}R7VWf zp)?%jsw6zl?hidF?R z%=;3>B?c;Z6~6zRZpxf50=GRlI_{?$>UTqftvd(I?~dg5OaMSe*XiNaX!8SPy} zjsq|NGT^$$5wPc${E3yMY)u-f!SVX1#w<819s#GK7%@lEoFJf|+LZMZ>=(&pGHRPg z)$cg7X0=*JW4MO$egE?=!q_#BX4tfHMS(}x3Ou<~pn_MEzrKTJPJVbkgFZU(W}m9D zcPnHedkPdhBUe+CtFD2XW3?lsepFpR45?&ZlN~~tq0N}M{@?@45YnO$F$v$>oaSm{ z+QyRlPc$6cYe7RXBo4Pfn*|!xF12Qu08)};Q5`NQBOBTX=HH9;TzRlAEQMG_5IjKJ z00yq)wsiiTg3sGobyLYPHu!SXe5VHDp?)PK|kk~aZw0`&U0=PGs|5QSs@{_T1Cy2bni{Y*z#LdzNPlGv00AZmF<#)fq zfe*vwez(CK?-I0zZo^PnxbobvU5dg1731u!AkO36J4UIkbtze zYDGyN8fNILiQCa;?R-8aK?<_PNm5!qi%@5bkYXQ>oa2a=6Dwj${gOI$)@8Lcg~)vL z!Ao+460+qBDnd4YK_5zIw~*(?0;pX9X2JHDCaM=h!801hUyDUFh(?ZU zByaA3Bz>kN9K@jHR2uy zoUOc;U*oZ<(rl>LXfekr-QN``L(g2K{;{IU8T$RWzlQ8EQ<9H`I5+fEOE<+ohtni) z92XNm`I88`Y>Y=PYiEvuph4e(piN=%*+*5HyP*n&WnNi{b5sAC#*&oJG+#Ai;T?iVS2F36({CL%N zb58Hj#)4rLnQg&!?MJMxQhI=1i#bzcm06lbPgk^n8~PSW^W+o; zkxR(0Ccayo=1s1Nv*<6!lDU?W=AI7D3E z9!^((veNT-#H1t=yM@bp;rlef(cVVl5l=j5vtN62saHQ2t986wLHtXbH}`~YSS5ot z^^M`QRLO;~QOVtvt1d1%LDt>_Q4MMAw^@9A=<*$lq_CK6_I+1PAuoot?rPeA7EO~_?G>vKRZ<2Pp zYFrue3Wvd;FMKIFi^l*R&et1CyDzt|wS{9q6T=Y?VQebi^x=HR$h?*PceV&{1`Jmo zq2Y)bR~~@-i3`B~#N|pkb8$IDEnEIw*->U`;W)h1lHrU@Wo>1s2G@IB4MDgx3M*A! zm|oklRNlODOj}>Fol$?=Hao_B@x-NLeKqBU*ZT37^qrdlhK6H1<4r`%c^9C1)%V%X zLcVQ1wPwL|`l~^?vTW7YQ+0v9#2twHRp)KQ!#eMJ1CMSvax(xJSGK||CqaEBb&@Bc(;BK?Kt1D}A=a|6Rc-RwBZa2oLowdj z4?Io8=9JFr5ZK`^O;KGFn5yrZ^{Xi;BFpL4!xd-S?BuI%={9mDKnrtqxJ@ot(9+MPi4p|h773Z4uC=px+p25xsPKE z0$%Tbn%b`aEaCN=N0i#AcrBXbc*D_xIk&M>OlBb&!j_`ixgCOfWZ;w=9m5=PX(UPiXj zFf(Xn&t&>acjFeN(*OrjMwy zXz>1v4DiJM6V6_{n&$pH_75b9J+0)`%m!K$3032nFrt%4RhcV6S=JS2tE@~CC&Hbf zQ;pf&e5M@A_`tAn9H7<4Q9>xg{kPNp%fY63lqhl5sp> zM@>I|47awhL&GDg80MS7k_-n}8W;P}8)Tf!IMgMSD%G7IdaweRQ+Gt~G+=uhf8sr0 z1nTT&kphZj2bxA1vk;}<`WoWPOHo5B0)9r2@fXisZH1c*&fv*d;tR94*h%vl8|b?% zj7&_59y2?=+X@C;NpR`#z`s0Fy7p)*)RHI=*6($trpB{BKRD9ltAFCUg=0F`ovz_d z*X$6C)St!EZkTQAjRa=npM(rM$mWGa^}|qvvo0u#j0Hv{*ywx`Im$0Wv;R}d=u1gd zrt)De_Bseo&e##I7rAxfseCKQXq`!vB`;P?&r*Jr@1td(h$_P1VJubta6T^1{@S`h z|9Xyyj-Bop3XR+zEgdalmTY)-&Uj4*nMf;1B%18d#!k_QhR0=4E|I>YzoB97m7yjSE%d)U?aWVgY;bnc7 ztLZrt)?c3^-)-^~C`t(c!U07ywoknQ=U7{ZLArMRTvm;%^Fsbztv`Q?nO$suOSqud z!&F={U++wpWub%)j+$(>x!W{7`FssCe>~Kly-jJh?Rx`=E_xd7cqUPs?x<*>Z$$uS<}he*+jOaV^{oH zDfir}=jUnloUZSQWkavh2B34crVZ?Tb*%y{T4pZF^{i;Oz5RwhV6TzhHqF8EY2i%4 zvda@tpui09)KB4tTiWzLfG$x6Vm59+gE$j8Jyp+$FDolbt)3E|u zW>$*j-o=$=8iIV~c^8f*Lk;A76&Ko`80XGCt91NB>_Nd*DIEt-b4Z6Qr?t|^r!O7% z?&Tk9Jk3d2w`c}!{jNG*#(n`jnllLpXJPfhmYFvxyS45f88XRkrjaL3Ea|RI#}|UD zzJIASVdBaLP9(JqxD$D2j=B ziB7n*g{tc^1vY+anr1hn+*4?K6 z_{*i*MZ?@)3e!M zzT(|E{UKK2zSX8Wcr)4e)%WNn>u?u+bQyg?;cn8}=Uk8qw~Fm~J0a{m$6@1d=_TAb zN6+M*Cjtxi1%=x!n|?t~=ii&%55m>kYz@%nrH<|{S!(~^Xb!)!*H9R#Qb~oy%c4@HjeY5=)u{b4iu1^nwc`)>O+v(;y>@^1wi2MhQOvlY8-HW_ z<&rmyfIpAGcTfJO?W=%?HNs(~KmKowU*6VFvnrg+>p(%qR{v*D%Ug-Md9b1~da4lH zb)s;icX5G5B48I^vMbqZCrUlvq{<`BJHk4s(iEMk)b19nWX|ck!v#cb?h z&Gj8|yu9|5KnW zP{O%r^E_4v884?C@veKnZf_*h$FKMBg5FC5s&})Kk%n#I<}E7)#BkjkphG+`?~Z1e zTWxt=GwXz1IN?=TgXED@3VJfKYNdUcdvgFkQIgl%8HTtJ+|0>d5Tlierj|ATN1<$uPex#xAsT;Tgl?StZJE1O9S6ui5fwx zjNecmgb-*inbJU_GIA`Bc4G`KmWs*^0L;lFUQ@Bo| z^V*T{Ds+_RR4$`4h11^{vZJ`M_l9ylbUxF76JkSk)yA{X?)HQ*AQ9}6PFBA|hk4|N z$YMCpU7fOeqbl9d8~Z4!r(H$`=TcLysRP|j`-rfarqcbqWQ7cAD|vZW3vcA}Z?SHD zvF-)q%AseUKRewq2?7SpPV3lhg1Yv)?`)F<#5)mfm36(Qxz+io;N1NRW3zSl)Aqca zulqjn&CN+kb(dk+1M;o)W})8c{M~z#|5NW!f}_Z7bd%>Jeo^-R3fg-elLz+eXxmmT z4p;Pi_vbcFL@qsvd}`g{*lT-K4hM1J1%&N8!G+_;5QuF>@}JW?&Wx6$jUvo*mqX881wrZP`6?ksmo!Mc@VevQg`~ zFo6}zktOg&hAg2&?768QIA($}Bn*i*vrbb-nmXmIt?DJ1MDUp$lx{`Rc&iLvpO8!R<0Q-EV%(eldw-WJC)HgTc=6tb zN$F97;vpevq8Z;*YNR)kA9;V4zn!q;4^@XI42{T)a2|+8 zt&oPWR@^YM!^Og~2e^wPXKsWV*Wb!yM3_y(@u0HWYs;X65zMmdjK$3of9ybPkV1xD zjr2g(NF7dimQ6DgFk+*XW9hl|tKFC%BfF5)r8YM7DE?Sh^0g;9N~1bvx;ehwNZp~T z66RJ@*(GgfJ8yyi3Ol)!0-zHVbZ^3hMhKT8whFIq&c~@qeQsQ9`ohwCvFz=Q03ySn z1AQ}PYBQb-4qU*6FVQ_@Nqc9$>=iHj4QXC5gYgyvr|+Qjqp&v}#0E3ONiN7GJ)f{8 zua+BhO4x?I)_7v+a8y2h@G5A6t3;$J;UZmLA9>_hW+1MM5KsfNtO4=tbxtgx_Z;R# zuWw&tfUf%*R)K84xBzJn|9%=h)vfb%IHM;PuhotEk{i0=u5w!g7jJ+0*}qgM7%-;2x%fj zlTfPrHJOx+Xzl);$M zlP~wHLrZ8?F!3<4_9m!Xa!?MB)|4m0A}~fQ=MHtNBtp?MeMW9YS_}b4-v1$ZE_>j6 z0aS?^z<4Q;^g#0+1B?JyA$|N~wIKk@A@w4wBMu`{D$$5>qitO7BUG5i*vxIrWlL_L$-0PzMZg zJ_}k$1Tc{&huWi867(C|zGQ}gZ!_*~i$YCiF4rna=7qeP^Adbzt3*v9SX3jLXya3q zbmc)vOr~D!ms_reY-Y{-j+N7k*TRbxhR;1z4f}mbni~=Gc}J`z0=Y6L<-eaR=W#ZE za#{;>F{rk~@Si|60Ry}A@k8ZYm&5lB{Zu!7-N*HhVvc(Fhu5$NzKxC(%bmcwllaNT zlj%t`!h1n(_N`s&0H(GKP-~HM=Np|hqEy4IT#!UQt~UXzVwhiY7UH{ z&`Ji6fS6952t}|MJ^ct%OVJs(5c-P&x8o)L6rA)2MfzoiX||p^D%*HYLl4W`o*}>U zrK22IUCtINyFfvXFjR^Vaqu4PTP(Ca0IK&9XA=w6Gy(mKUiD6|fLktv-YT13KgoTe zHRVd*NVSh)*Vbi!qM`j;AC(1PRtJ>Pym1pEr#t@95v^zN}e;idQ;+U=IgYn;4Sa-Hxd+ zAritph~gtOoAGfiQJkC98ou!Kt}JK5^p^!=(3Sl*V`?_u3N~7hhNsjmWlei!zVBr( zOM|2;0LOfbj?j0I`%&B*0pf!R;}jF*l2l9Fl2FT^+qc>f8oTQ7Ru^YqWKi=xI2JVd z)xcNV7l_ex&S(AE^l<20@vdc`JqGHCRMfa$K@4aQvncA>Z!}(AhY+Jnr5>=I+fpr2BQGvREbl@eg2IVG=H2xT>zi4rYPRRIUhlVm6^D(9^u5Bu=5&5};ZfRfhJc z(>XP!^5m3h+C9vCm4s0!fZayel=0h1K ziWN;J-re3_F-xjo=GjHK&`JHZOew+wL!c{D@G>C;v25c%C8h(O%-*ZmbYyvvV)8%e z$)#JKvNu7A%HI($WCytabbWv6l`GGH3@eAn%(_(U+A3313YO7GCi?g^mRFWVKF8^u znK9PUl$EPlf3sY~g7pviB@b+A{^eBor&U)+!=^>s?U1T@H&n$QO)Eq+k%dIl>S_FQ z2}P@ze)vp#(d%0$Cqicn!>KjT8FbadFN(9%;mG1axdP+<@C|bx$y5yq-rA$619R*< z|IG)5i_tCva$Bsmu+r6_-r#y&E@JlzlDAU-_pxr5yY}4Ahf9CY=i{2s>y|OjT)($F z8b*-ci{r^ysC{?m73BA#OnJ((diDLw!CiUcVyvVJ*9FAgB~`-UMrie@znfD0-)=>X zC7rF1O_17y>fA3c>zk`}KG$huQfx$DY-U}(1-{?H3SzS$D`CNxADHsS@qp>bL>9^4 zu8`HWi7QhDxXJs}&W)?)=8}SDJ08SkkqICk5qro$=u`Y4^jZke>^K$bLy>#{a*;eM zvA1GYbY64t zF22;Jex%5kEayV%1d?t-hQ#$`+J-p9^l=G^NIE;Fmli9BE>mC9+OrgdM+m@nQ1{&zD!={-j96cCil_-|**-;sm(H`u8I zV`LPu348OjIhKSGT=gGbBH>)%eI-tkRyxVg*ES!wkSNN}oOfFt)oFyTv92X=S%O6^ z5j}^8ERr^|u2wY>tXj<9>RR3kh-uv>S4?$0@XfxC-2(W8b2E*eG;MMSjjNLhkR_F3 zFm*mOnE^@NM|p`^m90nxZki_@@UouqNHe%-eTI&0gZ8xaO=eJ@xn4T0zZnsLIxB=l z_p78N=f3V!G3|GDM*`2y*KH1{X%BOp8*3XFMeC2YyEkICLiIkYgS0AMHLZ*m)4dVu zwMo1Hi9&dcigh)iI(bWABTGq}JuUY z09|ZLs^v&ln7%_bam)Bp6jt~ekslitXf~42vbTrU6;NjXW(pRiR za>ARS{VpWk>iG-G2)g*NL!C8hP`uGEbJzmo`RxWn?w1d@Hm0q*ts-q5vQ?e-J)!z3 z2ll6(8T>9&*?Qw+-gg9Obr?>ZU1ro?htn)5^qL0zwcfapEgn^?phTr-H2=mUPI0Vx zSEyD@suniJ?H!a^ye8qS(r<+pF>T8er)iJFqJ+V>>Jw@;lcToGJwtnM2QW^4am7Wh zqjOb^&EW;Qaw_^0uf>~`-~X(^>d)`wiq)VghgKcOC)UCT3)Dr`d=vZ&T8CB7rG09= zSPiIyHHD2`r14p3T6kuafGwMpx2`SBgRvd8DC-s+aU};nS*LJf}?wJ{eX3cPh zc@W=p%hK%I?SGLxi`e}bxKY7Qa;QeJJ0RI$Byho2;mM=9d%m&OB@(^C-cCHK&0AvD z#lapsI(R8$>-{6fe4#uWBUqe5cR>`~{jq^nwARLac`=h+)?OuFLwX1E^z}7aKbu!u z!`R}2*(4%`h?@A#Mj&m9=x^6g@|th|S~2~Hme!c>?bVhZc~2jw!+g!=mg{Mg;<)cc zZtyzOPCk;|l&^$`+Nx84T@!>w!Q^LE{e@6vi}ZbIyEsa3JVTrMN=&a8nswPxJMFDa zmW4(}cD5TXOK}8qleFgX@F&wn62v6?nE)%?(KYNmpbkLO>J!X)L>uNl2_VE^Cn}t2 zLuK1A-@CmQK_CDaXLlx?Glsui;M!Gpuo8!N1i(8&05|up`eg|Qw>-)w%Dn+jjs`II zM^7DUw2+kzYKUNFDG@w6zNkV6g=GzdCxEizaIQVFLqRi?p#qCK2JKDA@Ubf%30*~S ztMBCJob;!pOccss$_3&=qkq8XwCTW$(a>MTrM6+m)iPZRO=1I5XDFZVZdE441-iFx zrAS;M{mI5K@J>~LxFBu;oLbYG#zX-7M6tb!Gd^71^+CY>aD24#L_V6xgGed){nTZCfj3SzH z5|FICG9qADoXf!uM$I>0q7WkeUOd|gOq$ZIu=E1vsk&xJ$dre}4?W$A6s>%WMX_AI zm|>6dq!6^#eiJZQT>X`p{^spl^{YO|5=pf7n~0I1EWje{wV*1!X^A?xupiXL~#vj7y zaR}eV^(-1ZlwK@rG!aZUR(}G^qDja4Ms48R6-7RGT)j|pY!;q>aW{=%(T#)7&qDkb z@i8oCGKn4?>`N*OH}aNgJ$E@bHqxc>sqE#k$>!WjQekpW?X%OHBW|GAOXl$XIo~&w z(#kwie~RpP#wH40f@D=Y6sdzxK5kY_A>3by~uP1H4PeX?+5I0u|AQsGFs?j ziRHrAG~azRS?(8RUde4;IG3AqvxY)<&X>z}vo=!8bjY_`5`GCAEvF~Bl)XZ@mA&c! z1s2}H_*%zNueMo+ij#ItV*s(P{z5usFAyw+MdOQRV0@q#og>YM>XX^ZB&@3_+TibES1a~|s}l!TSHZu~Y3$9`?~lK{IQY8?CMoNyIp*sQ zke5D4hoGTNe8D%A1F#Q```y9FOAz$Os6gvx%`G*21I? z2N9Fiq^Q&?qlW_sZtNe=bnFq}tc$(}eKEhp+pi)8Osl~yBjKU^4kA&JhU@lrC>QGT zhQ-70S+NVG7VGP-%&WDfBQ*+qCv~^#f2{D%!8Tc?{rX3EqXtNqF=yG0utJZjkkdU% zBgVS@h2Uhum551&#jpvIcIax&a{$HOaZ5Y?-0mY`RwI;?-P8Z`yKFqj`Ku+e@b3w- zP)@X0Nx>0snfuFN>kCHN z0Jt{;L$?pm&Nx&Bt4+C1-vG=7392xI?-N0m#s<(E6phN{sS;%5m^*r@&eNcRGowB+ zV)Hj2WkP8oB~t;hm)hvmbC23}?zW2j>k1_4-bs=i31*QsrwcRvETV{RDhmZr^Ri&> zZ`JOO%5s+r!el!!<{U}pWn}03EA*SoiJYs{b6{mJuv7v~H5DekrmMaFEmR0Mp||QA zmlJK=x2d5Yx(5+~@98Q|X?dl~D4vd%0>#c-vEn9#i&wdVs^SZ!s6C=G`$#4HIF$T>RcED%-N0mU ziYds4tZp|?OX}WwrH5F0{g|qV=fQ7qgOADdrnler5q>Y3f39*;TBF9-t%Nzb`uCE| zn%2Oepuze?R0W32_|v29T-xTWiRTO--V2mz4Yz}lAf7pax z;gS|S=ew2rn7&fI?7mX1xL+a+AHdKWEz~Yl+Nq*X*n>FeSs)^c0%Mn!Z72$?i8hNp z89jT6Conj_Uc!NTv|^gAuU<{=~Cj701ROTRT>YvyTQIj0AWx+PS4uNII3B!7Gd z{fJ)x6jzGgz)KuyQzY{@qH^8fcHrih%TOy5Pgr~IpdohAB?(TtgfjYg=a?L0XhRb& zWZYI0vmTDL;up>u?pbL9!>}P=v1vSTVz^JAo47m(OX0(~rkuBb!loyRx9Q$pj4}lh z9t@P_p0*B;E{=(FMz#STSmuoMmAx%bNz_8brbD!no4n$7?G`;uiA{(O&`fERL=Q@a zaD#bz^%Lsg%NLadsBkeb%d*P9S@Cmn2je#S+hw7|SBq3HTaDjdFvz@H)$*-a)G8Ok z^cGmU2cOS!BDl>+^y;V*)*5=c+5{&Pp`+5Z{nM^}=jrZM_@)IbAihuOL7ZH>RVIa( z=+U-4r|J^?szQTY?Nlb_P*E<}3szAMWo~PQ`_@+O5DrjXrPq8)u-yhe?t7eiuz!id-(;{qQ;zk=8#l+t3~enmmKzwPP<0}<}kf0l@Sp|of5r+?);*0>l4D4Esht==E@gF91%Y7aW@?lz!a)QOnyzNjz+W3<%~#XO5-`Q?jA*JF%HH^u)- zQ48_9udT4m2u6HjxQMsJxY%aiJ;(UOqiH>|*xOe6!lQYb&v-khagCXOQS5tPh8S1F z+LV7s0kT{2eJ+=auW@b~DZ)TiaIXx3YOV><8}s@?Jif}xP+kadDY<&rstyfnOPYdi z>qArn4xy-sTfGmQ4-^9BQx;mMKhPEqy=%_9Q?braYLDNt_|33iYsyz=c`y$$0ZHhOF6Oj9vbg*&K+^z~ z>h;7ju%cHLzHL0Aku7hhX3VB_6Bu0(hR_C%!(A$1@`y2z_?R(}=$H|XKfhb|7WaKW zBl*K=BKQL>m+YMaWwOM)%JYE#(PDDO{N2UH??EExX|l763a&B##wCcSEXHFBvHOs^ z5p-h{$^puGo`MT7mu54%_KBoakNI$d%`>-T)4KPGp`6S4n4t+cj9@dp{+&>w9^*4( znRf_cGrj+vQnDZ$0R2njWh~ikrtizn*HqdK`KPp7_muBq#UXn@F58DO%$uG-dmo=q z!t*$iR`|XdnNxSEU@KF2t*7tuhLE(d!=>03

q1DzyK@o3mz5M#iLDcU$IpXPAW1 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 z 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

OKL1@EABO2l=( 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 z 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 literal 0 HcmV?d00001 diff --git a/certora/scripts/runComplexity.sh b/certora/scripts/runComplexity.sh new file mode 100755 index 0000000..0bd2abb --- /dev/null +++ b/certora/scripts/runComplexity.sh @@ -0,0 +1,25 @@ +certoraRun src/ATokenVault.sol \ + certora/harness/SymbolicLendingPoolL1.sol \ + certora/harness/DummyERC20_aTokenUnderlying.sol \ + lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVault:certora/specs/complexity.spec \ + --link ATokenVault:AAVE_POOL=SymbolicLendingPoolL1 \ + AToken:POOL=SymbolicLendingPoolL1 \ + ATokenVault:ATOKEN=AToken \ + ATokenVault:UNDERLYING=DummyERC20_aTokenUnderlying \ + --solc solc8.10 \ + --optimistic_loop \ + --staging \ + --packages @openzeppelin-upgradeable=lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=lib/aave-v3-core/contracts \ + @aave-v3-periphery=lib/aave-v3-periphery/contracts \ + @openzeppelin=lib/openzeppelin-contracts/contracts \ + --msg "$1" \ + --send_only \ + --rule noRevert \ + --method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/scripts/verify_all.sh b/certora/scripts/verify_all.sh new file mode 100644 index 0000000..ecb1097 --- /dev/null +++ b/certora/scripts/verify_all.sh @@ -0,0 +1,23 @@ +certoraRun --send_only certora/conf/erc4626-previewOPERATIONS.conf + +certoraRun --send_only certora/conf/totalSupply_EQ_sumAllBal.conf + +certoraRun --send_only certora/conf/changeInContractBalanceShouldCauseAccrual.conf + +certoraRun --send_only certora/conf/rayMul_rayDiv_mulDiv_properties.conf + +certoraRun --send_only certora/conf/lastVaultBalance_LEQ_ATokenBalThis.conf + +certoraRun --send_only certora/conf/fees_LEQ_ATokenBal.conf + +certoraRun --send_only certora/conf/positiveSupply_imply_positiveAssets-mint.conf + +certoraRun --send_only certora/conf/positiveSupply_imply_positiveAssets-deposit.conf + +certoraRun --send_only certora/conf/positiveSupply_imply_positiveAssets-withdraw.conf + +certoraRun --send_only certora/conf/positiveSupply_imply_positiveAssets-redeem.conf + +certoraRun --send_only certora/conf/positiveSupply_imply_positiveAssets-other.conf + +certoraRun --send_only certora/conf/accrueYieldCheck.conf diff --git a/certora/scripts/verify_basic.sh b/certora/scripts/verify_basic.sh new file mode 100644 index 0000000..02aa0d5 --- /dev/null +++ b/certora/scripts/verify_basic.sh @@ -0,0 +1,30 @@ +certoraRun src/ATokenVault.sol \ + certora/harness/SymbolicLendingPoolL1.sol \ + certora/harness/DummyERC20_aTokenUnderlying.sol \ + lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVault:certora/specs/basic.spec \ + --link ATokenVault:AAVE_POOL=SymbolicLendingPoolL1 \ + AToken:POOL=SymbolicLendingPoolL1 \ + ATokenVault:ATOKEN=AToken \ + ATokenVault:UNDERLYING=DummyERC20_aTokenUnderlying \ + --solc solc8.10 \ + --optimistic_loop \ + --staging pre_cvl2 \ + --packages @openzeppelin-upgradeable=lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=lib/aave-v3-core/contracts \ + @aave-v3-periphery=lib/aave-v3-periphery/contracts \ + @openzeppelin=lib/openzeppelin-contracts/contracts \ + --msg "$1" \ + --send_only \ + + + # --rule inv_atoken_scaled_balanceOf_leq_totalSupply \ + #--typecheck_only \ + + + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/scripts/verify_changeInContractBalanceShouldCauseAccrual.sh b/certora/scripts/verify_changeInContractBalanceShouldCauseAccrual.sh new file mode 100644 index 0000000..ef57f64 --- /dev/null +++ b/certora/scripts/verify_changeInContractBalanceShouldCauseAccrual.sh @@ -0,0 +1,29 @@ +certoraRun certora/harness/ATokenVaultHarness.sol \ + certora/harness/DummyContract.sol \ + certora/harness/pool/SymbolicLendingPoolL1.sol \ + certora/harness/tokens/DummyERC20_aTokenUnderlying.sol \ + certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVaultHarness:certora/specs/changeInContractBalanceShouldCauseAccrual.spec \ + --link ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1 \ + ATokenVaultHarness:ATOKEN=AToken \ + ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying \ + ATokenVaultHarness:DUMMY=DummyContract \ + AToken:POOL=SymbolicLendingPoolL1 \ + AToken:_underlyingAsset=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:aToken=AToken \ + --solc solc8.10 \ + --optimistic_loop \ + --staging pre_cvl2 \ + --packages @openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=certora/munged/lib/aave-v3-core/contracts \ + @aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts \ + @openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts \ + @aave/core-v3=certora/munged/lib/aave-v3-core \ + --msg "accrueYieldCheck" \ + --settings -t=2000,-mediumTimeout=1000,-depth=15 \ + --settings -enableEventReporting \ + --send_only \ + --rule_sanity basic \ + --rule changeInContractBalanceShouldCauseAccrual \ + diff --git a/certora/scripts/verify_erc4626.sh b/certora/scripts/verify_erc4626.sh new file mode 100644 index 0000000..4267bfe --- /dev/null +++ b/certora/scripts/verify_erc4626.sh @@ -0,0 +1,80 @@ +certoraRun certora/harness/ATokenVaultHarness.sol \ + certora/harness/DummyContract.sol \ + certora/harness/pool/SymbolicLendingPoolL1.sol \ + certora/harness/tokens/DummyERC20_aTokenUnderlying.sol \ + certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVaultHarness:certora/specs/erc4626.spec \ + --link ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1 \ + ATokenVaultHarness:ATOKEN=AToken \ + ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying \ + ATokenVaultHarness:DUMMY=DummyContract \ + AToken:POOL=SymbolicLendingPoolL1 \ + SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:aToken=AToken \ + AToken:_underlyingAsset=DummyERC20_aTokenUnderlying \ + --solc solc8.10 \ + --optimistic_loop \ + --cloud \ + --packages @openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=certora/munged/lib/aave-v3-core/contracts \ + @aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts \ + @openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts \ + @aave/core-v3=certora/munged/lib/aave-v3-core \ + --msg "previewMint_amount_check By Script mulDiv3 and mulDiv4 " \ + --settings -t=2000,-mediumTimeout=1000,-depth=15 \ + --send_only \ + --rule previewMint_amount_check \ + +# --rule previewDeposit_amount_check previewMint_amount_check previewWithdraw_amount_check previewRedeem_amount_check \ + + #--typecheck_only + + + + + + + + + + #--disable_auto_cache_key_gen \ + + +# --method "mintWithATokens(uint256,address)" \ + +# --rule must_not_revert \ + +# --method "deposit(uint256,address)" \ + + + +# --rule accumulated_fee_better \ + + + +# --rule lastVaultBalance_OK_2 \ + +# --rule inv_nonZero_shares_imply_nonZero_assets \ + + + + + + + +# --rule larger_deposit_imply_more_shares \ + + + #--typecheck_only \ + + + + + + + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/scripts/verify_fees_LEQ_ATokenBal-RW.sh b/certora/scripts/verify_fees_LEQ_ATokenBal-RW.sh new file mode 100644 index 0000000..e759cb9 --- /dev/null +++ b/certora/scripts/verify_fees_LEQ_ATokenBal-RW.sh @@ -0,0 +1,75 @@ +certoraRun certora/harness/ATokenVaultHarness.sol \ + certora/harness/DummyContract.sol \ + certora/harness/pool/SymbolicLendingPoolL1.sol \ + certora/harness/tokens/DummyERC20_aTokenUnderlying.sol \ + certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVaultHarness:certora/specs/fees_LEQ_ATokenBal-RW.spec \ + --link ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1 \ + ATokenVaultHarness:ATOKEN=AToken \ + ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying \ + ATokenVaultHarness:DUMMY=DummyContract \ + AToken:POOL=SymbolicLendingPoolL1 \ + SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:aToken=AToken \ + AToken:_underlyingAsset=DummyERC20_aTokenUnderlying \ + --solc solc8.10 \ + --optimistic_loop \ + --cloud \ + --packages @openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=certora/munged/lib/aave-v3-core/contracts \ + @aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts \ + @openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts \ + @aave/core-v3=certora/munged/lib/aave-v3-core \ + --msg "$1:: $2" \ + --settings -t=2000,-mediumTimeout=1000,-depth=15 \ + --settings \ + --rule $1 \ + --send_only \ + + + + + + + +# --method "withdraw(uint256,address,address)" +# --method "withdrawATokens(uint256,address,address)" +#--method "withdrawATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" +#--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" +#--method "redeemAsATokens(uint256,address,address)" +#--method "redeemAsATokens(uint256,address,address)" +#--method "depositATokens(uint256,address)" +#--typecheck_only + +# --method "redeemAsATokens(uint256,address,address)" +# --method "depositATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" +# --method "depositATokens(uint256,address)" +# --method "depositATokens(uint256,address)" \ +# --method "deposit(uint256,address)" \ +# --method "My_baseDeposit(uint256,uint256,address,address,bool)" \ +# --method "redeem(uint256,address,address)" \ + + + + + + #--disable_auto_cache_key_gen \ + +# --method "mintWithATokens(uint256,address)" \ +# --rule must_not_revert \ +# --method "deposit(uint256,address)" \ + +# --rule accumulated_fee_better \ +# --rule lastVaultBalance_OK_2 \ + +# --rule inv_nonZero_shares_imply_nonZero_assets \ + +# --rule larger_deposit_imply_more_shares \ + + #--typecheck_only \ + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/scripts/verify_fees_LEQ_ATokenBal.sh b/certora/scripts/verify_fees_LEQ_ATokenBal.sh new file mode 100644 index 0000000..06f19c7 --- /dev/null +++ b/certora/scripts/verify_fees_LEQ_ATokenBal.sh @@ -0,0 +1,62 @@ +certoraRun certora/harness/ATokenVaultHarness.sol \ + certora/harness/DummyContract.sol \ + certora/harness/pool/SymbolicLendingPoolL1.sol \ + certora/harness/tokens/DummyERC20_aTokenUnderlying.sol \ + certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVaultHarness:certora/specs/fees_LEQ_ATokenBal.spec \ + --link ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1 \ + ATokenVaultHarness:ATOKEN=AToken \ + ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying \ + ATokenVaultHarness:DUMMY=DummyContract \ + AToken:POOL=SymbolicLendingPoolL1 \ + SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:aToken=AToken \ + AToken:_underlyingAsset=DummyERC20_aTokenUnderlying \ + --solc solc8.10 \ + --optimistic_loop \ + --cloud \ + --packages @openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=certora/munged/lib/aave-v3-core/contracts \ + @aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts \ + @openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts \ + @aave/core-v3=certora/munged/lib/aave-v3-core \ + --msg "$1:: $2" \ + --settings -t=2000,-mediumTimeout=1000,-depth=15 \ + --rule $1 \ + --send_only \ + + + #--typecheck_only + +# --method "depositATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" +# --method "depositATokens(uint256,address)" +# --method "depositATokens(uint256,address)" \ +# --method "deposit(uint256,address)" \ +# --method "withdraw(uint256,address,address)" \ +# --method "My_baseDeposit(uint256,uint256,address,address,bool)" \ +# --method "redeem(uint256,address,address)" \ + + + + + + #--disable_auto_cache_key_gen \ + +# --method "mintWithATokens(uint256,address)" \ +# --rule must_not_revert \ +# --method "deposit(uint256,address)" \ + +# --rule accumulated_fee_better \ +# --rule lastVaultBalance_OK_2 \ + +# --rule inv_nonZero_shares_imply_nonZero_assets \ + +# --rule larger_deposit_imply_more_shares \ + + #--typecheck_only \ + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/scripts/verify_lastVaultBal_LEQ_ATokenBalThis.sh b/certora/scripts/verify_lastVaultBal_LEQ_ATokenBalThis.sh new file mode 100644 index 0000000..f5ee7b7 --- /dev/null +++ b/certora/scripts/verify_lastVaultBal_LEQ_ATokenBalThis.sh @@ -0,0 +1,79 @@ +certoraRun certora/harness/ATokenVaultHarness.sol \ + certora/harness/DummyContract.sol \ + certora/harness/pool/SymbolicLendingPoolL1.sol \ + certora/harness/tokens/DummyERC20_aTokenUnderlying.sol \ + certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVaultHarness:certora/specs/lastVaultBal_LEQ_ATokenBalThis.spec \ + --link ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1 \ + ATokenVaultHarness:ATOKEN=AToken \ + ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying \ + ATokenVaultHarness:DUMMY=DummyContract \ + AToken:POOL=SymbolicLendingPoolL1 \ + AToken:_underlyingAsset=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:aToken=AToken \ + --solc solc8.10 \ + --optimistic_loop \ + --staging pre_cvl2 \ + --packages @openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=certora/munged/lib/aave-v3-core/contracts \ + @aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts \ + @openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts \ + @aave/core-v3=certora/munged/lib/aave-v3-core \ + --msg "_s.lastVaultBalance LEQ AToken.balance[this]" \ + --settings -t=2000,-mediumTimeout=1000,-depth=15 \ + --settings \ + --send_only \ + --disable_auto_cache_key_gen \ + --rule inv_lastVaultBalance_LEQ_ATokenBalThis \ + + + #--typecheck_only + +# --msg "$1:: $2" \ + + + + + + +#--method "mintWithATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + + + # --method "redeem(uint256,address,address)" \ + + + + #--method "depositATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + #--method "depositATokens(uint256,address)" + +# --method "depositATokens(uint256,address)" \ +# --method "deposit(uint256,address)" \ +# --method "withdraw(uint256,address,address)" \ +# --method "My_baseDeposit(uint256,uint256,address,address,bool)" \ +# --method "redeem(uint256,address,address)" \ + + + + + + +# --method "mintWithATokens(uint256,address)" \ +# --rule must_not_revert \ +# --method "deposit(uint256,address)" \ + +# --rule accumulated_fee_better \ +# --rule lastVaultBalance_OK_2 \ + +# --rule inv_nonZero_shares_imply_nonZero_assets \ + +# --rule larger_deposit_imply_more_shares \ + + #--typecheck_only \ + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/scripts/verify_positiveSupply_imply_positiveAssets.sh b/certora/scripts/verify_positiveSupply_imply_positiveAssets.sh new file mode 100644 index 0000000..95a30a7 --- /dev/null +++ b/certora/scripts/verify_positiveSupply_imply_positiveAssets.sh @@ -0,0 +1,72 @@ +certoraRun certora/harness/ATokenVaultHarness.sol \ + certora/harness/DummyContract.sol \ + certora/harness/pool/SymbolicLendingPoolL1.sol \ + certora/harness/tokens/DummyERC20_aTokenUnderlying.sol \ + certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVaultHarness:certora/specs/positiveSupply_imply_positiveAssets.spec \ + --link ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1 \ + ATokenVaultHarness:ATOKEN=AToken \ + ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying \ + ATokenVaultHarness:DUMMY=DummyContract \ + AToken:POOL=SymbolicLendingPoolL1 \ + SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:aToken=AToken \ + AToken:_underlyingAsset=DummyERC20_aTokenUnderlying \ + --solc solc8.10 \ + --optimistic_loop \ + --cloud \ + --packages @openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=certora/munged/lib/aave-v3-core/contracts \ + @aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts \ + @openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts \ + @aave/core-v3=certora/munged/lib/aave-v3-core \ + --msg "$1:: $2" \ + --settings -t=2000,-mediumTimeout=1000,-depth=15 \ + --send_only \ + --rule $1 \ + + + + #--method "initialize(address,uint256,string, string, uint256)" + + + #--typecheck_only + + #--method "withdrawATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + #--method "redeemAsATokens(uint256,address,address)" + #--method "redeemAsATokens(uint256,address,address)" + #--method "depositATokens(uint256,address)" + #--typecheck_only + +# --method "redeemAsATokens(uint256,address,address)" +# --method "depositATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" +# --method "mintWithATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" +# --method "depositATokens(uint256,address)" +# --method "depositATokens(uint256,address)" \ +# --method "deposit(uint256,address)" \ +# --method "withdraw(uint256,address,address)" \ +# --method "My_baseDeposit(uint256,uint256,address,address,bool)" \ +# --method "redeem(uint256,address,address)" \ + + + #--disable_auto_cache_key_gen \ + +# --method "mintWithATokens(uint256,address)" \ +# --rule must_not_revert \ +# --method "deposit(uint256,address)" \ + +# --rule accumulated_fee_better \ +# --rule lastVaultBalance_OK_2 \ + +# --rule inv_nonZero_shares_imply_nonZero_assets \ + +# --rule larger_deposit_imply_more_shares \ + + #--typecheck_only \ + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/scripts/verify_rayMul_rayDiv_properties.sh b/certora/scripts/verify_rayMul_rayDiv_properties.sh new file mode 100644 index 0000000..33069d7 --- /dev/null +++ b/certora/scripts/verify_rayMul_rayDiv_properties.sh @@ -0,0 +1,73 @@ +certoraRun certora/harness/ATokenVaultHarness.sol \ + certora/harness/DummyContract.sol \ + certora/harness/pool/SymbolicLendingPoolL1.sol \ + certora/harness/tokens/DummyERC20_aTokenUnderlying.sol \ + certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVaultHarness:certora/specs/rayMul_rayDiv_properties.spec \ + --link ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1 \ + ATokenVaultHarness:ATOKEN=AToken \ + ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying \ + ATokenVaultHarness:DUMMY=DummyContract \ + AToken:POOL=SymbolicLendingPoolL1 \ + AToken:_underlyingAsset=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:aToken=AToken \ + --solc solc8.10 \ + --optimistic_loop \ + --cloud \ + --packages @openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=certora/munged/lib/aave-v3-core/contracts \ + @aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts \ + @openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts \ + @aave/core-v3=certora/munged/lib/aave-v3-core \ + --msg "$1:: $2" \ + --settings "-t=2000,-mediumTimeout=1000,-depth=15" \ + --send_only \ + --disable_auto_cache_key_gen \ + +# --rule $1 \ + + + #--typecheck_only + +# --msg "$1:: $2" \ + + +#--method "mintWithATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + # --method "redeem(uint256,address,address)" \ + + + + #--method "depositATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + #--method "depositATokens(uint256,address)" + +# --method "depositATokens(uint256,address)" \ +# --method "deposit(uint256,address)" \ +# --method "withdraw(uint256,address,address)" \ +# --method "My_baseDeposit(uint256,uint256,address,address,bool)" \ +# --method "redeem(uint256,address,address)" \ + + + + + + +# --method "mintWithATokens(uint256,address)" \ +# --rule must_not_revert \ +# --method "deposit(uint256,address)" \ + +# --rule accumulated_fee_better \ +# --rule lastVaultBalance_OK_2 \ + +# --rule inv_nonZero_shares_imply_nonZero_assets \ + +# --rule larger_deposit_imply_more_shares \ + + #--typecheck_only \ + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/scripts/verify_totalSupply_EQ_sumAllBal.sh b/certora/scripts/verify_totalSupply_EQ_sumAllBal.sh new file mode 100644 index 0000000..613e377 --- /dev/null +++ b/certora/scripts/verify_totalSupply_EQ_sumAllBal.sh @@ -0,0 +1,67 @@ +certoraRun certora/harness/ATokenVaultHarness.sol \ + certora/harness/DummyContract.sol \ + certora/harness/pool/SymbolicLendingPoolL1.sol \ + certora/harness/tokens/DummyERC20_aTokenUnderlying.sol \ + certora/munged/lib/aave-v3-core/contracts/protocol/tokenization/AToken.sol \ + --verify ATokenVaultHarness:certora/specs/totalSupply_EQ_sumAllBal.spec \ + --link ATokenVaultHarness:AAVE_POOL=SymbolicLendingPoolL1 \ + ATokenVaultHarness:ATOKEN=AToken \ + ATokenVaultHarness:UNDERLYING=DummyERC20_aTokenUnderlying \ + ATokenVaultHarness:DUMMY=DummyContract \ + AToken:POOL=SymbolicLendingPoolL1 \ + AToken:_underlyingAsset=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:underlyingToken=DummyERC20_aTokenUnderlying \ + SymbolicLendingPoolL1:aToken=AToken \ + --solc solc8.10 \ + --optimistic_loop \ + --staging pre_cvl2 \ + --packages @openzeppelin-upgradeable=certora/munged/lib/openzeppelin-contracts-upgradeable/contracts \ + @aave-v3-core=certora/munged/lib/aave-v3-core/contracts \ + @aave-v3-periphery=certora/munged/lib/aave-v3-periphery/contracts \ + @openzeppelin=certora/munged/lib/openzeppelin-contracts/contracts \ + @aave/core-v3=certora/munged/lib/aave-v3-core \ + --msg "totalSupply EQ sum of all balances: Vault, AToken, Underline" \ + --settings -t=2000,-mediumTimeout=1000,-depth=15 \ + --settings \ + --send_only \ + +# --rule $1 \ + +# --method "redeem(uint256,address,address)" \ + + #--typecheck_only + + + #--method "depositATokensWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + #--method "depositATokens(uint256,address)" + +# --method "depositATokens(uint256,address)" \ +# --method "deposit(uint256,address)" \ +# --method "withdraw(uint256,address,address)" \ +# --method "My_baseDeposit(uint256,uint256,address,address,bool)" \ +# --method "redeem(uint256,address,address)" \ + + + + + + #--disable_auto_cache_key_gen \ + +# --method "mintWithATokens(uint256,address)" \ +# --rule must_not_revert \ +# --method "deposit(uint256,address)" \ + +# --rule accumulated_fee_better \ +# --rule lastVaultBalance_OK_2 \ + +# --rule inv_nonZero_shares_imply_nonZero_assets \ + +# --rule larger_deposit_imply_more_shares \ + + #--typecheck_only \ + #--method "withdrawWithSig(uint256,address,address,(uint8,bytes32,bytes32,uint256))" + + +#wrapped-atoken-vault complexity checks + + diff --git a/certora/specs/accrueYieldCheck.spec b/certora/specs/accrueYieldCheck.spec new file mode 100644 index 0000000..ebc52fd --- /dev/null +++ b/certora/specs/accrueYieldCheck.spec @@ -0,0 +1,47 @@ +import "methods_base.spec" + + +methods{ + mulDiv(uint256 x, uint256 y, uint256 denominator, uint8 rounding) returns (uint256) envfree => mulDiv_g(x,y,denominator,rounding); + rayMul(uint256 x, uint256 y) returns (uint256) envfree => rayMul_g(x,y); + rayDiv(uint256 x, uint256 y) returns (uint256) envfree => rayDiv_g(x,y); +} + +ghost mulDiv_g(uint256, uint256, uint256, uint8) returns uint256 { + axiom forall uint256 x. forall uint256 y. forall uint256 denominator. forall uint8 rounding. + rounding == 0 => mulDiv_g(x, y, denominator, rounding)*denominator <= x*y; + + axiom forall uint256 x. forall uint256 y. forall uint256 denominator. forall uint8 rounding. + rounding == 1 => mulDiv_g(x, y, denominator, rounding)*denominator <= x*y+denominator; + + axiom forall uint256 x. forall uint256 y. forall uint256 denominator. forall uint8 rounding. + rounding == 0 => x*y < mulDiv_g(x,y,denominator, rounding)*denominator + denominator; + + axiom forall uint256 x. forall uint256 y. forall uint256 denominator. forall uint8 rounding. + rounding == 1 => x*y < mulDiv_g(x,y,denominator, rounding)*denominator; +} + +ghost rayMul_g(uint256, uint256) returns uint256{ + axiom forall uint256 x. forall uint256 y. rayMul_g(x,y)*RAY()<= x*y + RAY()/2; + axiom forall uint256 x. forall uint256 y. x*y - RAY()/2< rayMul_g(x,y)*RAY(); +} + +ghost rayDiv_g(uint256, uint256) returns uint256{ + axiom forall uint256 x. forall uint256 y. rayDiv_g(x,y)*y<= x*RAY() + y/2; + axiom forall uint256 x. forall uint256 y. x*RAY() - y/2 < rayDiv_g(x,y)*y; +} + + +// Rule to check the _accrueYield function +// 1. _s.accumulatedFees can only monotonically increase + +// STATUS: Verified +rule accrueYieldCheck(env e){ + uint128 _accumulatedFees = getAccumulatedFees(); + accrueYield(e); + uint128 accumulatedFees_ = getAccumulatedFees(); + + assert _accumulatedFees <= accumulatedFees_,"accumulated fee can only increase or stay the same"; +} + + diff --git a/certora/specs/changeInContractBalanceShouldCauseAccrual.spec b/certora/specs/changeInContractBalanceShouldCauseAccrual.spec new file mode 100644 index 0000000..4759b26 --- /dev/null +++ b/certora/specs/changeInContractBalanceShouldCauseAccrual.spec @@ -0,0 +1,54 @@ +import "methods_base.spec" + + +methods{ + // mulDiv(uint256 x, uint256 y, uint256 denominator, uint8 rounding) returns (uint256) envfree => mulDiv_g(x,y,denominator,rounding); + mulDiv(uint256 x, uint256 y, uint256 denominator, uint8 rounding) returns (uint256) envfree => mulDiv4_g(x,y,denominator,rounding); + rayMul(uint256 x, uint256 y) returns (uint256) envfree => rayMul_g(x,y); + rayDiv(uint256 x, uint256 y) returns (uint256) envfree => rayDiv_g(x,y); + + _accrueYield() envfree => accrueYieldSummary() +} + +ghost mulDiv4_g(uint256 , uint256 , uint256, uint8) returns uint256 { + axiom 1==1; +} + +ghost rayMul_g(uint256, uint256) returns uint256{ + axiom 1==1; + // axiom forall uint256 x. forall uint256 y. rayMul_g(x,y)*RAY()<= x*y + RAY()/2; + //axiom forall uint256 x. forall uint256 y. x*y - RAY()/2< rayMul_g(x,y)*RAY(); +} + +ghost rayDiv_g(uint256, uint256) returns uint256{ + axiom 1==1; + // axiom forall uint256 x. forall uint256 y. rayDiv_g(x,y)*y<= x*RAY() + y/2; + //axiom forall uint256 x. forall uint256 y. x*RAY() - y/2 < rayDiv_g(x,y)*y; +} + + +// STATUS: Verified +// rule to check that accrueYield function is called everytime some function causes a change +// in the contract balances. This is crucial for correct accrual of fee. +rule changeInContractBalanceShouldCauseAccrual(env e, method f) +filtered { f -> !harnessOnlyMethods(f) && !f.isView } +{ + uint256 _contractATokenBal = _AToken.balanceOf(currentContract); + uint256 _contractULBal = Underlying.balanceOf(currentContract); + // uint256 _lastUpdated = getLastUpdated(); + // require _lastUpdated + e.block.timestamp <= 0xffffffffff; + + calldataarg args; + f(e, args); + + // uint256 lastUpdated_ = getLastUpdated(); + // uint256 lastVaultBalance_ = getLastVaultBalance(); + uint256 contractATokenBal_ = _AToken.balanceOf(currentContract); + uint256 contractULBal_ = Underlying.balanceOf(currentContract); + assert (contractATokenBal_ != _contractATokenBal || _contractULBal != contractULBal_) && + (f.selector != withdrawFees(address, uint256).selector && + f.selector != emergencyRescue(address, address, uint256).selector) => + accrueYieldCalled == true, + "contract balance change should trigger yield accrual"; +} + diff --git a/certora/specs/erc20.spec b/certora/specs/erc20.spec new file mode 100644 index 0000000..e03d6e6 --- /dev/null +++ b/certora/specs/erc20.spec @@ -0,0 +1,12 @@ +// erc20 methods +methods { + name() => DISPATCHER(true) + symbol() => DISPATCHER(true) + decimals() => DISPATCHER(true) + totalSupply() => DISPATCHER(true) + balanceOf(address) => DISPATCHER(true) + allowance(address,address) => DISPATCHER(true) + approve(address,uint256) => DISPATCHER(true) + transfer(address,uint256) => DISPATCHER(true) + transferFrom(address,address,uint256) => DISPATCHER(true) +} diff --git a/certora/specs/erc4626.spec b/certora/specs/erc4626.spec new file mode 100644 index 0000000..97cc50b --- /dev/null +++ b/certora/specs/erc4626.spec @@ -0,0 +1,411 @@ +import "methods_base.spec" + +//using DummyContract as _DummyContract + +methods { + rayMul(uint256 a,uint256 b) returns (uint256) => rayMul_g(a,b); + rayDiv(uint256 a,uint256 b) returns (uint256) => rayDiv_g(a,b); + havoc_all() envfree; + + havoc_all_dummy() => HAVOC_ALL; + mulDiv(uint256 x, uint256 y, uint256 denominator) returns uint256 => mulDiv3_g(x,y,denominator); + //mulDiv(uint256 x, uint256 y, uint256 denominator, uint8 rounding) returns uint256 => mulDiv4_g(x,y,denominator,rounding) ; +} + +/* +function mulDiv4_g(uint256 x, uint256 y, uint256 denominator, uint8 rounding) returns uint256 { + uint256 result = mulDiv3_g(x, y, denominator); + + require (denominator != 0); + mathint mulmod = (x*y) % denominator; + if (rounding == 1 && mulmod > 0) { + result = result + 1; + } + return result; + }*/ + +ghost mulDiv3_g(uint256 , uint256 , uint256) returns uint256 { + axiom 1==1; +} +ghost rayMul_g(uint256 , uint256) returns uint256 { + axiom 1==1; +} +ghost rayDiv_g(uint256 , uint256) returns uint256 { + axiom 1==1; +} + + +// **************************************************************** +// By EIP4626, the following functions must not revert +// **************************************************************** +function f_must_NOT_revert(method f) returns bool { + return + f.selector == asset().selector || + f.selector == totalAssets().selector || + f.selector == maxDeposit(address).selector || + f.selector == maxMint(address).selector || + f.selector == maxWithdraw(address).selector || + f.selector == maxRedeem(address).selector + ; +} + + +// **************************************************************** +// By EIP4626, the following functions: +// MUST NOT revert unless due to integer overflow caused by an unreasonably large input. +// **************************************************************** +function f_must_NOT_revert_unless_large_input(method f) returns bool { + return + f.selector == convertToShares(uint256).selector || + f.selector == convertToAssets(uint256).selector + ; +} + + +// **************************************************************** +// By EIP4626: the functions: asset, totalAssets, maxDeposit, maxMint, maxWithdraw, maxRedeem +// must not revert. +// +// STATUS: fail +// - asset() indeed does not revert. +// - All the other function may revert due to arithmetical calculations. +// **************************************************************** +rule must_not_revert(method f) { + env e; + calldataarg args; + + require f_must_NOT_revert(f); + require e.msg.value == 0; + + f@withrevert(e, args); + bool reverted = lastReverted; + + assert !reverted, "A function that should not revert has reverted"; +} + + +// **************************************************************** +// By EIP4626, the function convertToShares(uint256) should comply with: +// MUST NOT revert unless due to integer overflow caused by an unreasonably large input. + +// STATUS: fail +// there are arithmetical calculations that may revert in the function totalAssets() +// **************************************************************** +rule must_not_revert_unless_large_input__convertToShares() { + env e; + require e.msg.value == 0; + uint256 assets; + require (assets <= maxUint128()); + + convertToShares@withrevert(e, assets); + bool reverted = lastReverted; + + assert !reverted, "Conversion to shares reverted"; +} + + +// **************************************************************** +// By EIP4626, the function convertToAssets(uint256) should comply with: +// MUST NOT revert unless due to integer overflow caused by an unreasonably large input. + +// STATUS: fail +// there are arithmetical calculations that may revert in the function totalAssets() +// **************************************************************** +rule must_not_revert_unless_large_input__convertToAssets() { + env e; + require e.msg.value == 0; + uint256 shares; + require (shares <= maxUint128()); + + convertToAssets@withrevert(e, shares); + bool reverted = lastReverted; + + assert !reverted, "Conversion to shares reverted"; +} + + + + +// **************************** +// * previewDeposit * +// **************************** + +// Rule to check the following for the previewDeposit function: +// 1. MUST return as close to and no more than the exact amount of Vault shares that would +// be minted in a deposit call in the same transaction. +// I.e. deposit should return the same or more shares as previewDeposit if called in the +// same transaction. + +// STATUS: pass +// The amount returned by previewDeposit is exactly equal to that returned by the deposit function. + +rule previewDeposit_amount_check() { + env e1; + env e2; + uint256 assets; + address receiver; + uint256 previewShares; + uint256 shares; + + require e1.block.timestamp <= e2.block.timestamp; + require e2.block.timestamp <= 0xffffff; + + require _AToken.balanceOf(currentContract) <= maxUint128(); + require getAccumulatedFees() <= maxUint128(); + require getLastVaultBalance() <= maxUint128(); + require totalSupply() <= maxUint128(); + + require(getFee() <= SCALE()); // SCALE is 10^18 + + + previewShares = previewDeposit(e1, assets); + shares = deposit(e2, assets, receiver); + + assert previewShares == shares, "preview shares should be equal to actual shares"; +} + + + +/* + The EIP4626 spec requires that the previewDeposit function must not account for maxDeposit + limit or the allowance of asset tokens. + The following rule checks that the value returned by the previewDeposit depends only on + totalSupply() and totalAssets(). + + STATUS: fail + The value depends on the value returned by _maxAssetsSuppliableToAave(). +*/ + +rule previewDeposit_has_NO_threshold(env e1, env e2) { + require e1.block.timestamp <= e2.block.timestamp; + require e2.block.timestamp <= 0xffffff; + + uint256 assets; + + uint256 total_supply_1 = totalSupply(); + uint256 total_assets_1 = totalAssets(e1); + uint256 previewShares1 = previewDeposit(e1, assets); + + havoc_all(); + require (total_supply_1 == totalSupply()); + require (total_assets_1 == totalAssets(e2)); + uint256 previewShares2 = previewDeposit(e2, assets); + + assert (previewShares1 == previewShares2); +} + + +// **************************** +// * previewMint +// ************************** + +// Rule to check the following for the previewMint function: +// 1. MUST return as close to and no more than the exact amount of Vault shares that would +// be minted in a deposit call in the same transaction. +// I.e. deposit should return the same or more shares as previewDeposit if called in the +// same transaction. + +// STATUS: pass +// The amount returned by previewMint is exactly equal to that returned by the mint function. + +rule previewMint_amount_check() { + env e1; + env e2; + uint256 shares; + address receiver; + uint256 previewAssets; + uint256 assets; + + require e1.block.timestamp <= e2.block.timestamp; + require e2.block.timestamp <= 0xffffff; + + require _AToken.balanceOf(currentContract) <= maxUint128(); + require getAccumulatedFees() <= maxUint128(); + require getLastVaultBalance() <= maxUint128(); + require totalSupply() <= maxUint128(); + + require(getFee() <= SCALE()); // SCALE is 10^18 + + previewAssets = previewMint(e1,shares); + require (shares <= convertToShares(e2,maxDeposit(receiver)) => convertToAssets(e2,shares) <= maxDeposit(receiver)); + assets = mint(e2, shares, receiver); + assert previewAssets == assets || previewAssets == assets+1 || previewAssets+1 == assets, "preview should be equal to actual - mint"; +} + + + +/* + The EIP4626 spec requires that the previewMint function must not account for mint limits + like those returned from maxMint and should always act as though the mint would be accepted, + regardless whether the user has approved the contract to transfer the specified amount of assets. + The following rule checks that the value returned by the previewDeposit depends only on + totalSupply() and totalAssets(). + + STATUS: fail + The value depends on the value returned by _maxAssetsSuppliableToAave(). +*/ + +rule previewMint_has_NO_threshold(env e1, env e2) { + require e1.block.timestamp <= e2.block.timestamp; + require e2.block.timestamp <= 0xffffff; + + uint256 shares; + + uint256 total_supply_1 = totalSupply(); + uint256 total_assets_1 = totalAssets(e1); + uint256 preview_assets_1 = previewMint(e1, shares); + + havoc_all(); + require (total_supply_1 == totalSupply()); + require (total_assets_1 == totalAssets(e2)); + uint256 preview_assets_2 = previewMint(e2, shares); + + assert (preview_assets_1 == preview_assets_2); +} + + + + +// ******************************** +// * previewWithdraw * +// ******************************** + +// rule to check the following for the previewWithdraw function: +// 1. MUST return as close to and no fewer than the exact amount of Vault shares that +// would be burned in a withdraw call in the same transaction. +// I.e. withdraw should return the same or fewer shares as previewWithdraw if called in +// the same transaction. + +// STATUS: pass +// The amount returned by previewWithdraw is exactly equal to that returned by the withdraw function. + +rule previewWithdraw_amount_check(env e1, env e2) { + require e1.block.timestamp <= e2.block.timestamp; + require e2.block.timestamp <= 0xffffff; + + uint256 assets; + address receiver; + address owner; + uint256 shares; + uint256 previewShares; + + require _AToken.balanceOf(currentContract) <= maxUint128(); + require getAccumulatedFees() <= maxUint128(); + require getLastVaultBalance() <= maxUint128(); + require totalSupply() <= maxUint128(); + require(getFee() <= SCALE()); // SCALE is 10^18 + + previewShares = previewWithdraw(e1, assets); + shares = withdraw(e2, assets, receiver, owner); + + assert previewShares == shares,"preview should be equal to actual - withdraw"; +} + + + +/* + The EIP4626 spec requires that the previewWithdraw function must not account for withdrawal + limits like those returned from maxWithdraw and should always act as though the withdrawal + would be accepted, regardless of whether or not the user has enough shares, etc. + The following rule checks that the value returned by the previewWithdraw depends only on + totalSupply() and totalAssets(). + + STATUS: fail + The value depends on the status of the user. +*/ + +rule previewWithdraw_has_NO_threshold(env e1, env e2) { + require e1.block.timestamp <= e2.block.timestamp; + require e2.block.timestamp <= 0xffffff; + + uint256 assets; + + uint256 total_supply_1 = totalSupply(); + uint256 total_assets_1 = totalAssets(e1); + uint256 previewShares1 = previewWithdraw(e1, assets); + + havoc_all(); + require (total_supply_1 == totalSupply()); + require (total_assets_1 == totalAssets(e2)); + uint256 previewShares2 = previewWithdraw(e2, assets); + + assert (previewShares1 == previewShares2); +} + + + + + + + +// ***************************** +// * previewRedeem * +// ***************************** + +// rule to check the following for the previewRedeem function: +// 1. MUST return as CLOSE to and no more than the exact amount of assets that would be +// withdrawn in a redeem call in the same transaction. +// I.e. redeem should return the same or more assets as previewRedeem if called in the +// same transaction. + +// STATUS: pass +// The amount returned by previewRedeem is exactly equal to that returned by the redeem function. + +rule previewRedeem_amount_check(env e1, env e2){ + uint256 shares; + address receiver; + address owner; + uint256 previewAssets; + uint256 assets; + + require e1.block.timestamp <= e2.block.timestamp; + require e2.block.timestamp <= 0xffffff; + + require _AToken.balanceOf(currentContract) <= maxUint128(); + require getAccumulatedFees() <= maxUint128(); + require getLastVaultBalance() <= maxUint128(); + require totalSupply() <= maxUint128(); + require (getFee() <= SCALE()); // SCALE is 10^18 + + previewAssets = previewRedeem(e1, shares); + require (shares <= convertToShares(e2,maxAssetsWithdrawableFromAave()) => + convertToAssets(e2,shares) <= maxAssetsWithdrawableFromAave()); + assets = redeem(e2, shares, receiver, owner); + + assert previewAssets == assets + || previewAssets + 1 == assets + // || previewAssets + 2 == assets + ,"preview should the same as the actual assets received"; +} + + +/* + The EIP4626 spec requires that the previewRedeem function must not account for redemption + limits like those returned by the maxRedeem function and should always act as though the + redemption would be accepted, regardless if the user has enough shares, etc. + The following rule checks that the value returned by the previewRedeem depends only on + totalSupply() and totalAssets(). + + STATUS: fail + The value depends on the status of the user. + +*/ + +rule previewRedeem_has_NO_threshold(env e1, env e2) { + require e1.block.timestamp <= e2.block.timestamp; + require e2.block.timestamp <= 0xffffff; + + uint256 shares; + + uint256 total_supply_1 = totalSupply(); + uint256 total_assets_1 = totalAssets(e1); + uint256 preview_assets_1 = previewRedeem(e1, shares); + + havoc_all(); + require (total_supply_1 == totalSupply()); + require (total_assets_1 == totalAssets(e2)); + uint256 preview_assets_2 = previewRedeem(e2, shares); + + assert (preview_assets_1 == preview_assets_2); +} + diff --git a/certora/specs/fees_LEQ_ATokenBal.spec b/certora/specs/fees_LEQ_ATokenBal.spec new file mode 100644 index 0000000..73a0422 --- /dev/null +++ b/certora/specs/fees_LEQ_ATokenBal.spec @@ -0,0 +1,210 @@ +import "methods_base.spec" + + +methods { + Underlying.totalSupply() envfree; + havoc_all() envfree; + _SymbolicLendingPoolL1.getLiquidityIndex() envfree; + + rayMul(uint256 a,uint256 b) returns (uint256) => rayMul_g(a,b); + rayDiv(uint256 a,uint256 b) returns (uint256) => rayDiv_g(a,b); + + havoc_all_dummy() => HAVOC_ALL; + mulDiv(uint256 x, uint256 y, uint256 denominator, uint8 rounding) returns uint256 => + mulDiv4_g(x,y,denominator,rounding); +} + +ghost mulDiv4_g(uint256 , uint256 , uint256, uint8) returns uint256 { + axiom forall uint256 x. forall uint256 y. forall uint256 denominator. forall uint8 rounding. + ( + (mulDiv4_g(x,y,denominator,rounding)*denominator <= x*y) + && + (y<=denominator => mulDiv4_g(x,y,denominator,rounding)<=x) + ); +} + +ghost rayMul_g(uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y. + ( + ((x==0||y==0) => rayMul_g(x,y)==0) + && + x <= rayMul_g(x,y) && rayMul_g(x,y) <= 2*x + ); +} +ghost rayDiv_g(uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y. + ( + x/2 <= rayDiv_g(x,y) && rayDiv_g(x,y) <= x + ); +} + + +function max_possible_fees() returns uint256 { + return to_uint256(getAccumulatedFees() + + + (_AToken.balanceOf(currentContract)-getLastVaultBalance()) + ); +} + + + + + +// ****************************************************************************** +// The following 3 invariants are proved in totalSupply_EQ_sumAllBal.spec +// ****************************************************************************** +invariant inv_sumAllBalance_eq_totalSupply__underline() + sumAllBalance_underline() == Underlying.totalSupply() + +invariant inv_sumAllBalance_eq_totalSupply__atoken() + sumAllBalance_atoken() == _AToken.scaledTotalSupply() + +invariant inv_sumAllBalance_eq_totalSupply() + sumAllBalance() == totalSupply() + + +// ****************************************************************************** +// The following invariant is proved in lastVaultBalance_OK.spec +// ****************************************************************************** +invariant lastVaultBalance_OK() + getLastVaultBalance() <= _AToken.balanceOf(currentContract) + + + +// ****************************************************************************** +// Proving the solvency rule: +// getClaimableFees() <= ATOKEN.balanceOf(theVault). +// We do it by proving the stronger invariant: +// max_possible_fees() <= _AToken.balanceOf(currentContract) +// +// In this file we prove all method exept the following +// withraw*\redeem*\withdrawFees. (those methods are treated in fee_LEQ_ATokenBal-RW.spec +// Note: the reason for the seperation is that different methods require different summarizations. +// +// Status: pass for all methods that are checked in this file, but FAIL of the others. +// See in fee_LEQ_ATokenBal-RW.spec +// +// Note: We require that the totalSupply of currentContract, AToken, Underlying to be +// less than maxUint128() to avoid failures due to overflows. +// ****************************************************************************** + +function getCLMFees_LEQ_ATokenBAL_1(method f) { + env e; + require e.msg.sender != currentContract; + + require getFee() <= SCALE(); // SCALE is 10^18 + require _AToken.balanceOf(currentContract) <= maxUint128(); + require totalSupply() <= maxUint128(); + require Underlying.totalSupply() <= maxUint128(); + require _AToken.scaledTotalSupply() <= maxUint128(); + requireInvariant inv_sumAllBalance_eq_totalSupply__underline(); + requireInvariant inv_sumAllBalance_eq_totalSupply__atoken(); + requireInvariant inv_sumAllBalance_eq_totalSupply(); + requireInvariant lastVaultBalance_OK(); + + uint256 ind = _SymbolicLendingPoolL1.getLiquidityIndex(); + uint256 s_bal = _AToken.scaledBalanceOf(currentContract); + + + // The following require means: (s_bal - ass/ind)*ind == s_bal*ind - ass + require (forall uint256 ass. + rayMul_g(to_uint256(s_bal-rayDiv_g(ass,ind)),ind) == to_uint256(rayMul_g(s_bal,ind)-ass) + ); + + // The following require means: (x/ind+z)*ind == x+z*ind + require (forall uint256 x. forall uint256 ind. forall uint256 z. + rayMul_g(to_uint256(rayDiv_g(x,ind)+z),ind) == to_uint256(x+rayMul_g(z,ind)) + ); + + require(max_possible_fees() <= _AToken.balanceOf(currentContract)); + + if (f.selector == depositATokensWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector) { + uint256 assets; address receiver; address depositor; + _ATokenVaultHarness.EIP712Signature sig; + + require depositor != currentContract; + depositATokensWithSig(e,assets,receiver,depositor,sig); + } + else if (f.selector == mintWithATokensWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector) { + uint256 shares; address receiver; address depositor; + _ATokenVaultHarness.EIP712Signature sig; + + require depositor != currentContract; + mintWithATokensWithSig(e, shares, receiver, depositor, sig); + } + else { + calldataarg args; + f(e,args); + } + + require _AToken.balanceOf(currentContract) <= maxUint128(); + require totalSupply() <= maxUint128(); + // require Underlying.totalSupply() <= maxUint128(); + //require _AToken.scaledTotalSupply() <= maxUint128(); + + assert(max_possible_fees() <= _AToken.balanceOf(currentContract)); +} + +rule getCLMFees_LEQ_ATokenBAL_DM_other(method f) filtered {f -> + !harnessOnlyMethods(f) && + !f.isView && + !is_withdraw_method(f) && + !is_redeem_method(f) && + f.selector != withdrawFees(address,uint256).selector +} +{ + getCLMFees_LEQ_ATokenBAL_1(f); +} + + + +function getCLMFees_LEQ_ATokenBAL_2(method f) { + env e; + require e.msg.sender != currentContract; + + require getFee() <= SCALE(); // SCALE is 10^18 + require _AToken.balanceOf(currentContract) <= maxUint128(); + require totalSupply() <= maxUint128(); + require Underlying.totalSupply() <= maxUint128(); + require _AToken.scaledTotalSupply() <= maxUint128(); + requireInvariant inv_sumAllBalance_eq_totalSupply__underline(); + requireInvariant inv_sumAllBalance_eq_totalSupply__atoken(); + requireInvariant inv_sumAllBalance_eq_totalSupply(); + requireInvariant lastVaultBalance_OK(); + + uint256 ind = _SymbolicLendingPoolL1.getLiquidityIndex(); + uint256 s_bal = _AToken.scaledBalanceOf(currentContract); + + + // The following require means: (s_bal - ass/ind)*ind == s_bal*ind - ass + require (forall uint256 ass. + rayMul_g(to_uint256(s_bal-rayDiv_g(ass,ind)),ind) == to_uint256(rayMul_g(s_bal,ind)-ass) + ); + + // The following require means: (x/ind+z)*ind == x+z*ind + //require (forall uint256 x. forall uint256 ind. forall uint256 z. + // rayMul_g(to_uint256(rayDiv_g(x,ind)+z),ind) == to_uint256(x+rayMul_g(z,ind)) + // ); + + //require(_AToken.balanceOf(currentContract) < 1000); + //require(getAccumulatedFees()*2 <= _AToken.balanceOf(currentContract)); + require(max_possible_fees() <= _AToken.balanceOf(currentContract)); + + calldataarg args; + f(e,args); + + assert(max_possible_fees() <= _AToken.balanceOf(currentContract)); +} + +rule getCLMFees_LEQ_ATokenBAL_RW(method f) filtered {f -> + !harnessOnlyMethods(f) && + !f.isView && + (is_withdraw_method(f) || is_redeem_method(f) || + f.selector == withdrawFees(address,uint256).selector + ) +} +{ + getCLMFees_LEQ_ATokenBAL_2(f); +} diff --git a/certora/specs/lastVaultBal_LEQ_ATokenBalThis.spec b/certora/specs/lastVaultBal_LEQ_ATokenBalThis.spec new file mode 100644 index 0000000..66a05c8 --- /dev/null +++ b/certora/specs/lastVaultBal_LEQ_ATokenBalThis.spec @@ -0,0 +1,134 @@ +import "methods_base.spec" + +methods { + Underlying.totalSupply() envfree; + havoc_all() envfree; + _SymbolicLendingPoolL1.getLiquidityIndex() envfree; + + rayMul(uint256 a,uint256 b) returns (uint256) => rayMul_g(a,b); + rayDiv(uint256 a,uint256 b) returns (uint256) => rayDiv_g(a,b); + mulDiv(uint256 x, uint256 y, uint256 denominator) returns uint256 => mulDiv3_g(x,y,denominator); + + havoc_all_dummy() => HAVOC_ALL; +} + +ghost mulDiv3_g(uint256 , uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y. forall uint256 denominator. + mulDiv3_g(x,y,denominator)*denominator <= x*y; +} + +ghost rayMul_g(uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y. + ( + ((x==0||y==0) => rayMul_g(x,y)==0) + && + x <= rayMul_g(x,y) && rayMul_g(x,y) <= 2*x + ); +} +ghost rayDiv_g(uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y. + ( + x/2 <= rayDiv_g(x,y) && rayDiv_g(x,y) <= x + ); +} + + + +// ****************************************************************************** +// The following 3 invariants are proved in totalSupply_EQ_sumAllBal.spec +// ****************************************************************************** +invariant inv_sumAllBalance_eq_totalSupply__underline() + sumAllBalance_underline() == Underlying.totalSupply() + +invariant inv_sumAllBalance_eq_totalSupply__atoken() + sumAllBalance_atoken() == _AToken.scaledTotalSupply() + +invariant inv_sumAllBalance_eq_totalSupply() + sumAllBalance() == totalSupply() + + + + +// ****************************************************************************** +// The main invariant of this file: +// _s.lastVaultBalance <= ATOKEN.balanceOf(theVault). +// +// Status: pass for all methods. +// +// Note: We require that the totalSupply of currentContract, AToken, Underlying to be +// less than maxUint128() to avoid failures due to overflows. +// ****************************************************************************** + + +rule lastVaultBalance_LEQ_ATokenBalThis(env e, method f) filtered {f -> + f.selector != initialize(address,uint256,string,string,uint256).selector && + !harnessOnlyMethods(f) && + !f.isView + // f.selector != havoc_all().selector +} +{ + require e.msg.sender != currentContract; + require getFee() <= SCALE(); // SCALE is 10^18 + //require _AToken.balanceOf(currentContract) <= maxUint128(); + //require totalSupply() <= maxUint128(); + //require Underlying.totalSupply() <= maxUint128(); + //require _AToken.scaledTotalSupply() <= maxUint128(); + requireInvariant inv_sumAllBalance_eq_totalSupply__underline(); + requireInvariant inv_sumAllBalance_eq_totalSupply__atoken(); + requireInvariant inv_sumAllBalance_eq_totalSupply(); + + // The following require means: (x/ind+z)*ind == x+z*ind +-1 + + require (forall uint256 x. forall uint256 ind. forall uint256 z. + rayMul_g(to_uint256(rayDiv_g(x,ind)+z),ind) == to_uint256(x+rayMul_g(z,ind)) + || + rayMul_g(to_uint256(rayDiv_g(x,ind)+z),ind) == to_uint256(x+rayMul_g(z,ind))+1 + || + rayMul_g(to_uint256(rayDiv_g(x,ind)+z),ind)+1 == to_uint256(x+rayMul_g(z,ind)) + ); + // require (forall uint256 x. forall uint256 ind. forall uint256 z. + // rayMul_g(to_uint256(rayDiv_g(x,ind)+z),ind) == to_uint256(x+rayMul_g(z,ind)) + // ); + + + require (getLastVaultBalance() <= _AToken.balanceOf(currentContract)); + // uint256 _last_vault_bal = getLastVaultBalance(); + // uint256 _atoken_bal = _AToken.balanceOf(currentContract); + //uint256 _the_diff = _last_vault_bal <= _atoken_bal ? 0 : _last_vault_bal-_atoken_bal; + + if (f.selector == withdrawFees(address,uint256).selector) { + address to; uint256 amount; + require to != currentContract; + withdrawFees(e,to,amount); + } + else if (f.selector == depositATokensWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector) { + uint256 assets; address receiver; address depositor; + _ATokenVaultHarness.EIP712Signature sig; + + require depositor != currentContract; + depositATokensWithSig(e,assets,receiver,depositor,sig); + } + else if (f.selector == mintWithATokensWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector) { + uint256 shares; address receiver; address depositor; + _ATokenVaultHarness.EIP712Signature sig; + + require depositor != currentContract; + mintWithATokensWithSig(e, shares, receiver, depositor, sig); + } + else { + calldataarg args; + f(e,args); + } + + assert (getLastVaultBalance() <= _AToken.balanceOf(currentContract)); + + //uint256 last_vault_bal_ = getLastVaultBalance(); + //uint256 atoken_bal_ = _AToken.balanceOf(currentContract); + //uint256 the_diff_ = last_vault_bal_ <= atoken_bal_ ? 0 : last_vault_bal_-atoken_bal_; + + //assert (the_diff_ <= _the_diff + 1); +} + + diff --git a/certora/specs/methods_base.spec b/certora/specs/methods_base.spec new file mode 100644 index 0000000..ca3894a --- /dev/null +++ b/certora/specs/methods_base.spec @@ -0,0 +1,216 @@ +import "erc20.spec" + +using AToken as _AToken +using DummyERC20_aTokenUnderlying as Underlying +using SymbolicLendingPoolL1 as _SymbolicLendingPoolL1 +using ATokenVaultHarness as _ATokenVaultHarness + +methods{ + deposit(uint256, address) returns (uint256); + //depositATokensWithSig(uint256, address, address, (uint8,bytes32,bytes32,uint256)) returns (uint256); + depositATokensWithSig(uint256, address, address, _ATokenVaultHarness.EIP712Signature) returns (uint256); + + maxDeposit(address) returns (uint256) envfree; + maxRedeem(address) returns (uint256); + + getFee() returns (uint256) envfree + owner() returns (address) envfree + totalSupply() returns uint256 envfree + balanceOf(address) returns (uint256) envfree + getLastVaultBalance() returns (uint256) envfree; + getAccumulatedFees() returns (uint128) envfree; + maxAssetsWithdrawableFromAave() returns (uint256) envfree; + + mulDivWrapper(uint256, uint256, uint256, uint8) envfree; + previewRedeem(uint256) returns (uint256); + + _AToken.totalSupply() returns uint256 envfree; + _AToken.balanceOf(address) returns (uint256) envfree; + _AToken.scaledTotalSupply() returns (uint256) envfree; + _AToken.scaledBalanceOf(address) returns (uint256) envfree; + _AToken.transferFrom(address,address,uint256) returns (bool); + + Underlying.balanceOf(address) returns (uint256) envfree; + + // //********************* AToken.sol ******************************** + // // The following was copied from StaticATokenLM spec file + // //***************************************************************** + // mint(address,address,uint256,uint256) returns (bool) => DISPATCHER(true) + //burn(address,address,uint256,uint256) returns (bool) => DISPATCHER(true) + getIncentivesController() returns (address) => CONSTANT; + UNDERLYING_ASSET_ADDRESS() returns (address) => CONSTANT; + + + // called by AToken.sol::224. A method of IPool. + finalizeTransfer(address, address, address, uint256, uint256, uint256) => NONDET + + // called from: IncentivizedERC20.sol::207. A method of incentivesControllerLocal. + handleAction(address,uint256,uint256) => NONDET + + // getPool() returns address => ALWAYS(100); + getPool() returns address => NONDET; + + // // nissan Remark: not sure about the following 3 summarizations: + + // A method of Ipool + // can this contract change the pool + getReserveData(address) => CONSTANT; + + claimAllRewards(address[],address) => NONDET; + + // called in MetaTxHelpers.sol::27. + isValidSignature(bytes32, bytes) => NONDET; +} + +definition RAY() returns uint256 = 10^27; +definition RAY_HALF() returns uint256 = 5*10^26; +// In file Constants.sol we have "uint256 constant SCALE = 1e18;" +definition SCALE() returns uint256 = 1000000000000000000; + +definition harnessOnlyMethods(method f) returns bool = + (f.selector == havoc_all().selector || + f.selector == accrueYield().selector || + f.selector == getAccumulatedFees().selector || + f.selector == mulDiv__(uint256,uint256,uint256,uint8).selector || + f.selector == rayMul__(uint256,uint256).selector || + f.selector == rayDiv__(uint256,uint256).selector || + f.selector == handleDeposit_wrapper(uint256,address,address, bool).selector || + f.selector == handleMint_wrapper(uint256,address,address,bool).selector || + f.selector == handleWithdraw_wrapper(uint256,address,address,address,bool).selector || + f.selector == handleRedeem_wrapper(uint256,address,address,address,bool).selector + ); + +definition is_depositSig_method(method f) returns bool = + ( + f.selector == depositWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector || + f.selector == depositATokensWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector + ); +definition is_mintSig_method(method f) returns bool = + ( + f.selector == mintWithATokensWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector || + f.selector == mintWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector + ); +definition is_withdrawSig_method(method f) returns bool = + ( + f.selector == withdrawWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector || + f.selector == withdrawATokensWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector + ); +definition is_redeemSig_method(method f) returns bool = + ( + f.selector == redeemWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector || + f.selector == redeemWithATokensWithSig(uint256,address,address, + (uint8,bytes32,bytes32,uint256)).selector + ); + +definition is_sig_method(method f) returns bool = + ( + is_depositSig_method(f) || is_mintSig_method(f) || is_withdrawSig_method(f) || is_redeemSig_method(f) + ); + + +definition is_deposit_method(method f) returns bool = + (f.selector == deposit(uint256, address).selector || + f.selector == depositATokens(uint256, address).selector || + is_depositSig_method(f) + ); +definition is_mint_method(method f) returns bool = + (f.selector == mint(uint256, address).selector || + f.selector == mintWithATokens(uint256,address).selector || + is_mintSig_method(f) + ); +definition is_withdraw_method(method f) returns bool = + ( + f.selector == withdraw(uint256,address,address).selector || + f.selector == withdrawATokens(uint256,address,address).selector || + is_withdrawSig_method(f) + ); +definition is_redeem_method(method f) returns bool = + ( + f.selector == redeem(uint256,address,address).selector || + f.selector == redeemAsATokens(uint256,address,address).selector || + is_redeemSig_method(f) + ); + + +// ghost variable to track the calling of _accrueYield function +ghost bool accrueYieldCalled{ + init_state axiom accrueYieldCalled == false; +} + + +// ********************************************** +// ATokenVault +// ********************************************** +ghost sumAllBalance() returns mathint { + init_state axiom sumAllBalance() == 0; +} + +hook Sstore _balances[KEY address a] uint256 balance (uint256 old_balance) STORAGE { + havoc sumAllBalance assuming sumAllBalance@new() == sumAllBalance@old() + balance - old_balance; +} + +hook Sload uint256 balance _balances[KEY address a] STORAGE { + require balance <= sumAllBalance(); +} + + +// ********************************************** +// UNDERLYING +// ********************************************** +ghost sumAllBalance_underline() returns mathint { + init_state axiom sumAllBalance_underline() == 0; +} + +hook Sstore Underlying.b[KEY address a] uint256 balance (uint256 old_balance) STORAGE { + havoc sumAllBalance_underline assuming sumAllBalance_underline@new() == sumAllBalance_underline@old() + balance - old_balance; +} + +hook Sload uint256 balance Underlying.b[KEY address a] STORAGE { + require balance <= sumAllBalance_underline(); +} + + +// ********************************************** +// ATOKEN +// ********************************************** +ghost sumAllBalance_atoken() returns mathint { + init_state axiom sumAllBalance_atoken() == 0; +} + +hook Sstore _AToken._userState[KEY address a] .(offset 0) uint128 balance (uint128 old_balance) STORAGE { + havoc sumAllBalance_atoken assuming sumAllBalance_atoken@new() == sumAllBalance_atoken@old() + balance - old_balance; +} + +hook Sload uint128 balance _AToken._userState[KEY address a] .(offset 0) STORAGE { + require balance <= sumAllBalance_atoken(); +} + + + + +// *********** CVL functions ************* // + +// Empty CVL function to bypass the _accrueYield function +function ay(){ + uint40 sum = 1; +} + + +function maxUint132() returns uint256 {return 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;} +function maxUint128() returns uint128 {return 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;} + +function maxUint120() returns uint128 {return 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;} + +// axiom f * deno < x*y +// axioms for requirement in CVL function + +function accrueYieldSummary(){ + accrueYieldCalled = true; +} diff --git a/certora/specs/positiveSupply_imply_positiveAssets.spec b/certora/specs/positiveSupply_imply_positiveAssets.spec new file mode 100644 index 0000000..5cb4c84 --- /dev/null +++ b/certora/specs/positiveSupply_imply_positiveAssets.spec @@ -0,0 +1,239 @@ +import "methods_base.spec" + +methods { + totalAssets() returns uint256 envfree; + Underlying.totalSupply() envfree; + havoc_all() envfree; + _SymbolicLendingPoolL1.getLiquidityIndex() envfree; + + rayMul(uint256 a,uint256 b) returns (uint256) => rayMul_g(a,b); + rayDiv(uint256 a,uint256 b) returns (uint256) => rayDiv_g(a,b); + + havoc_all_dummy() => HAVOC_ALL; + mulDiv(uint256 x, uint256 y, uint256 denominator, uint8 rounding) returns uint256 => + mulDiv4_g(x,y,denominator,rounding); +} + +ghost mulDiv4_g(uint256 , uint256 , uint256, uint8) returns uint256 { + axiom forall uint256 x. forall uint256 y. forall uint256 denominator. forall uint8 rounding. + ( + ( (x==0 || y==0) => mulDiv4_g(x,y,denominator,rounding)==0) + && + (mulDiv4_g(x,y,denominator,rounding)*denominator <= x*y) + && + (y<=denominator => mulDiv4_g(x,y,denominator,rounding)<=x) + ); +} + + +ghost rayMul_g(uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y. + ( + ((x==0||y==0) => rayMul_g(x,y)==0) + && + x <= rayMul_g(x,y) && rayMul_g(x,y) <= 2*x + ); +} +ghost rayDiv_g(uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y. + ( + x/2 <= rayDiv_g(x,y) && rayDiv_g(x,y) <= x + ); +} + + + +/* +ghost rayMul_g(uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y.rayMul_g(x,y)==x; +} +ghost rayDiv_g(uint256 , uint256) returns uint256 { + axiom forall uint256 x. forall uint256 y. rayDiv_g(x,y)==x; +} +*/ + + +// ****************************************************************************** +// The following 3 invariants are proved in totalSupply_EQ_sumAllBal.spec +// ****************************************************************************** +invariant inv_sumAllBalance_eq_totalSupply__underline() + sumAllBalance_underline() == Underlying.totalSupply() + +invariant inv_sumAllBalance_eq_totalSupply__atoken() + sumAllBalance_atoken() == _AToken.scaledTotalSupply() + +invariant inv_sumAllBalance_eq_totalSupply() + sumAllBalance() == totalSupply() + + +// ****************************************************************************** +// The following invariant is proved in lastVaultBalance_OK.spec. +// This is actually an under-approximation since getLastVaultBalance() +// might exceeds _AToken.balanceOf(currentContract) by a very small amount. +// ****************************************************************************** +invariant lastVaultBalance_OK() + getLastVaultBalance() <= _AToken.balanceOf(currentContract) + + + +// ****************************************************************************** +// The following invariant is proved in fee_LEQ_ATokenBal.spec and fee_LEQ_ATokenBal-RW.spec +// ****************************************************************************** +invariant inv_fee_LEQ_ATokenBal() +// to_uint256( ); + (getAccumulatedFees()+(_AToken.balanceOf(currentContract)-getLastVaultBalance())) + <= _AToken.balanceOf(currentContract) + + +function positiveSupply_imply_positiveAssets_DM(method f) +{ + env e; + + require e.msg.sender != currentContract; + + require getFee() <= SCALE(); // SCALE is 10^18 + require _AToken.balanceOf(currentContract) <= maxUint128(); + require totalSupply() <= maxUint128(); + require Underlying.totalSupply() <= maxUint128(); + require _AToken.scaledTotalSupply() <= maxUint128(); + requireInvariant inv_sumAllBalance_eq_totalSupply__underline(); + requireInvariant inv_sumAllBalance_eq_totalSupply__atoken(); + requireInvariant inv_sumAllBalance_eq_totalSupply(); + requireInvariant lastVaultBalance_OK(); + requireInvariant inv_fee_LEQ_ATokenBal(); + + uint256 ind = _SymbolicLendingPoolL1.getLiquidityIndex(); + uint256 s_bal = _AToken.scaledBalanceOf(currentContract); + + // The following require means: (s_bal - ass/ind)*ind == s_bal*ind - ass + require (forall uint256 ass. + rayMul_g(to_uint256(s_bal-rayDiv_g(ass,ind)),ind) == to_uint256(rayMul_g(s_bal,ind)-ass) + ); + + //The following require means: (x/ind+z)*ind == x+z*ind + require (forall uint256 x. forall uint256 ind. forall uint256 z. + rayMul_g(to_uint256(rayDiv_g(x,ind)+z),ind) == to_uint256(x+rayMul_g(z,ind)) + ); + + require(totalSupply() != 0 => totalAssets() != 0); + + uint256 totS=totalSupply(); + uint256 totA=totalAssets(); + require (forall uint256 assets. forall uint8 rnd. + totA-assets == 0 => totS-mulDiv4_g(assets,totS,totA,rnd) == 0 + ); + + + if (f.selector == handleDeposit_wrapper(uint256,address,address, bool).selector) { + uint256 assets; address receiver; address depositor; bool asAToken; + require depositor != currentContract; + handleDeposit_wrapper(e,assets,receiver,depositor,asAToken); + } + else if (f.selector == handleMint_wrapper(uint256,address,address, bool).selector) { + uint256 shares; address receiver; address depositor; bool asAToken; + require depositor != currentContract; + handleMint_wrapper(e,shares,receiver,depositor,asAToken); + } + else { + calldataarg args; + f(e,args); + } + + require _AToken.balanceOf(currentContract) <= maxUint128(); + assert(totalSupply() != 0 => totalAssets() != 0); +} + +rule positiveSupply_imply_positiveAssets_all_deposit(method f) filtered { + f -> f.selector == handleDeposit_wrapper(uint256,address,address,bool).selector +} { + positiveSupply_imply_positiveAssets_DM(f); +} + +rule positiveSupply_imply_positiveAssets_all_mint(method f) filtered { + f -> f.selector == handleMint_wrapper(uint256,address,address,bool).selector +} { + positiveSupply_imply_positiveAssets_DM(f); +} + + +rule positiveSupply_imply_positiveAssets_other(method f) filtered {f -> + f.selector != initialize(address,uint256,string,string,uint256).selector && + !harnessOnlyMethods(f) && + !f.isView && + !is_deposit_method(f) && + !is_mint_method(f) && + !is_withdraw_method(f) && + !is_redeem_method(f) + } +{ + positiveSupply_imply_positiveAssets_DM(f); +} + + +rule positiveSupply_imply_positiveAssets_specific_DM(method f) +{ + positiveSupply_imply_positiveAssets_DM(f); +} + + + + +function positiveSupply_imply_positiveAssets_RW(method f) +{ + env e; + + require e.msg.sender != currentContract; + + require getFee() <= SCALE(); // SCALE is 10^18 + require _AToken.balanceOf(currentContract) <= maxUint128(); + require totalSupply() <= maxUint128(); + require Underlying.totalSupply() <= maxUint128(); + require _AToken.scaledTotalSupply() <= maxUint128(); + requireInvariant inv_sumAllBalance_eq_totalSupply__underline(); + requireInvariant inv_sumAllBalance_eq_totalSupply__atoken(); + requireInvariant inv_sumAllBalance_eq_totalSupply(); + requireInvariant lastVaultBalance_OK(); + requireInvariant inv_fee_LEQ_ATokenBal(); + + uint256 ind = _SymbolicLendingPoolL1.getLiquidityIndex(); + uint256 s_bal = _AToken.scaledBalanceOf(currentContract); + + // The following require means: (s_bal - ass/ind)*ind == s_bal*ind - ass + require (forall uint256 ass. + rayMul_g(to_uint256(s_bal-rayDiv_g(ass,ind)),ind) == to_uint256(rayMul_g(s_bal,ind)-ass) + ); + + require(totalSupply() != 0 => totalAssets() != 0); + + uint256 totS=totalSupply(); + uint256 totA=totalAssets(); + + require (forall uint256 assets. forall uint8 rnd. + totA-assets == 0 => totS-mulDiv4_g(assets,totS,totA,rnd) == 0 + ); + + calldataarg args; + f(e,args); + + assert(totalSupply() != 0 => totalAssets() != 0); +} + + + +rule positiveSupply_imply_positiveAssets_all_withdraw(method f) filtered { + f -> f.selector == handleWithdraw_wrapper(uint256,address,address,address,bool).selector +} { + positiveSupply_imply_positiveAssets_RW(f); +} + +rule positiveSupply_imply_positiveAssets_all_redeem(method f) filtered { + f -> f.selector == handleRedeem_wrapper(uint256,address,address,address,bool).selector +} { + positiveSupply_imply_positiveAssets_RW(f); +} + + +rule positiveSupply_imply_positiveAssets_specific_RW(method f) +{ + positiveSupply_imply_positiveAssets_RW(f); +} diff --git a/certora/specs/rayMul_rayDiv_mulDiv_properties.spec b/certora/specs/rayMul_rayDiv_mulDiv_properties.spec new file mode 100644 index 0000000..d8115c6 --- /dev/null +++ b/certora/specs/rayMul_rayDiv_mulDiv_properties.spec @@ -0,0 +1,61 @@ +import "methods_base.spec" + +methods { + Underlying.totalSupply() envfree; + havoc_all() envfree; + _SymbolicLendingPoolL1.getLiquidityIndex() envfree; + + rayMul__(uint256 a,uint256 b) returns (uint256) envfree; + rayDiv__(uint256 a,uint256 b) returns (uint256) envfree ; + mulDiv__(uint256 x, uint256 y, uint256 deno, uint8 rounding) returns(uint256) envfree; + + // mulDiv(uint256 x, uint256 y, uint256 denominator) returns uint256 => mulDiv3_g(x,y,denominator); + + havoc_all_dummy() => HAVOC_ALL; +} + + + +rule rayMul_prop_1() { + uint256 x; + uint256 ind; + uint256 z; + + require (RAY() <= ind); + require (ind <= 2*RAY()); + + uint256 a = rayMul__(to_uint256(rayDiv__(x,ind)+z),ind); + uint256 b = to_uint256(x+rayMul__(z,ind)); + assert a==b || a==b+1 || b==a+1; +} + + +rule rayMul_prop_2() { + uint256 x; + uint256 ind; + uint256 z; + + require (RAY() <= ind); + require (ind <= 2*RAY()); + + uint256 c = rayMul__(to_uint256(z-rayDiv__(x,ind)),ind); + uint256 d = to_uint256(rayMul__(z,ind)-x); + assert c==d || c==to_uint256(d+1) || d==to_uint256(c+1); +} + +rule mulDiv_properties() { + uint256 assets; + uint8 rnd; + + uint256 totA; + uint256 totS; + + require (assets <= maxUint128()); + require (totA <= maxUint128()); + require (totS <= maxUint128()); + + uint256 calc = mulDiv__(assets,totS,totA,rnd); + + // assert totA-assets == 0 => totS-mulDiv__(assets,totS,totA,rnd) == 0; + assert totA==assets => totS == calc; +} diff --git a/certora/specs/totalSupply_EQ_sumAllBal.spec b/certora/specs/totalSupply_EQ_sumAllBal.spec new file mode 100644 index 0000000..1dd8aec --- /dev/null +++ b/certora/specs/totalSupply_EQ_sumAllBal.spec @@ -0,0 +1,80 @@ +import "methods_base.spec" + +methods { + Underlying.totalSupply() envfree; + rayMul(uint256 a,uint256 b) returns (uint256) => rayMul_g(a,b); + rayDiv(uint256 a,uint256 b) returns (uint256) => rayDiv_g(a,b); + mulDiv(uint256 x, uint256 y, uint256 denominator) returns uint256 => mulDiv3_g(x,y,denominator); +} + + +ghost rayMul_g(uint256 , uint256) returns uint256 { + axiom 1==1; +} +ghost rayDiv_g(uint256 , uint256) returns uint256 { + axiom 1==1; +} +ghost mulDiv3_g(uint256 , uint256 , uint256) returns uint256 { + axiom 1==1; +} + + + +// ********************************************** +// ATokenVault: +// The total supply of ATokenVault equals the sum of all users' balances. +// +// Status: pass +// ********************************************** +invariant inv_sumAllBalance_eq_totalSupply() + sumAllBalance() == totalSupply() + filtered {f -> f.selector != havoc_all().selector} + +invariant inv_balanceOf_leq_totalSupply(address user) + balanceOf(user) <= totalSupply() +{ + preserved with (env e) { + requireInvariant inv_sumAllBalance_eq_totalSupply(); + } +} + + +// ********************************************** +// UNDERLYING: +// The total supply of UNDERLYING equals the sum of all users' balances. +// +// Status: pass +// Remark: This invariant doesn't check a property of the Vault. +// We need it because requiring that Underlying.totalSupply() <= +// guarntees that the balance of each user <= . +// This help us to avoid failures due to overflows. +// ********************************************** +invariant inv_sumAllBalance_eq_totalSupply__underline() + sumAllBalance_underline() == Underlying.totalSupply() + filtered {f -> !f.isView && + f.selector != havoc_all().selector + } + + +// ********************************************** +// ATOKEN: +// The scaled total supply of ATOKEN equals the sum of all users' scaled balances. +// +// Status: pass +// Remark: This invariant doesn't check a property of the Vault. +// We need it because requiring that _AToken.scaledTotalSupply() <= +// guarntees that the scaled-balance of each user <= . +// This help us to avoid failures due to overflows. +// ********************************************** +invariant inv_sumAllBalance_eq_totalSupply__atoken() + sumAllBalance_atoken() == _AToken.scaledTotalSupply() + filtered {f -> !f.isView && + f.selector != havoc_all().selector + } + + + + + + +