From 809dd8a97e7c2f65413db434a4bd28d56f8c3518 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 18 Nov 2024 14:55:55 +0100 Subject: [PATCH] feat: remove unused fee claimer, fix ci, improve stata interface (#73) - remove paraswap fee claimer as it's no longer used (avara interface was the only one using and it no longer is necessary to have a middle contract with psp v6 https://github.com/aave/interface/commit/68fec1e94603541b844b7f6ceab4d28424d638f5#diff-5866e66fcd5a4ac26049b83ba47b15d94a9ff6f1a7c117f28d366607a857d0a6R76) - move static-a-token to stata-token for consistent naming - add pool and pool address providers to the stata interface - change the comment action to use the bgd one, so it's easier to iterate without having to update origin (e.g. the correct one has problems with comment size - which is now fixed on bgd side) - disable certora ci on fork prs as it's only failing anyways --- .github/workflows/certora-stata.yml | 3 + .github/workflows/comment.yml | 56 +---------- .../AaveParaSwapFeeClaimer.sol | 58 ----------- .../interfaces/IFeeClaimer.sol | 95 ------------------ .../ERC20AaveLMUpgradeable.sol | 0 .../ERC4626StataTokenUpgradeable.sol | 0 .../{static-a-token => stata-token}/README.md | 0 .../StataTokenFactory.sol | 0 .../StataTokenV2.sol | 0 .../inheritance.png | Bin .../interfaces/IAToken.sol | 0 .../interfaces/IERC20AaveLM.sol | 0 .../interfaces/IERC4626StataToken.sol | 14 +++ .../interfaces/IStataTokenFactory.sol | 0 .../interfaces/IStataTokenV2.sol | 0 .../mocks/swap/MockParaSwapFeeClaimer.sol | 73 -------------- .../contracts/MarketReportStorage.sol | 4 - .../procedures/AaveV3HelpersProcedureTwo.sol | 4 +- .../procedures/AaveV3ParaswapProcedure.sol | 21 +--- .../procedures/AaveV3SetupProcedure.sol | 11 +- .../contracts/utilities/MetadataReporter.sol | 1 - .../interfaces/IMarketReportStorage.sol | 2 - .../interfaces/IMarketReportTypes.sol | 3 - .../AaveV3BatchOrchestration.sol | 15 +-- .../batches/AaveV3ParaswapBatch.sol | 12 +-- tests/deployments/AaveV3BatchDeployment.t.sol | 2 - tests/deployments/AaveV3BatchTests.t.sol | 9 +- tests/deployments/AaveV3PermissionsTest.t.sol | 3 - tests/deployments/DeploymentsGasLimits.t.sol | 9 +- .../paraswap-adapters/ParaswapAdapters.t.sol | 83 --------------- .../ERC20AaveLMUpgradable.t.sol | 2 +- .../ERC4626StataTokenUpgradeable.t.sol | 2 +- .../StataTokenV2Getters.sol | 2 +- .../StataTokenV2Pausable.t.sol | 2 +- .../StataTokenV2Permit.sol | 0 .../StataTokenV2Rescuable.sol | 2 +- .../TestBase.sol | 6 +- tests/utils/BatchTestProcedures.sol | 4 +- tests/utils/SigUtils.sol | 2 +- 39 files changed, 52 insertions(+), 448 deletions(-) delete mode 100644 src/contracts/extensions/paraswap-adapters/AaveParaSwapFeeClaimer.sol delete mode 100644 src/contracts/extensions/paraswap-adapters/interfaces/IFeeClaimer.sol rename src/contracts/extensions/{static-a-token => stata-token}/ERC20AaveLMUpgradeable.sol (100%) rename src/contracts/extensions/{static-a-token => stata-token}/ERC4626StataTokenUpgradeable.sol (100%) rename src/contracts/extensions/{static-a-token => stata-token}/README.md (100%) rename src/contracts/extensions/{static-a-token => stata-token}/StataTokenFactory.sol (100%) rename src/contracts/extensions/{static-a-token => stata-token}/StataTokenV2.sol (100%) rename src/contracts/extensions/{static-a-token => stata-token}/inheritance.png (100%) rename src/contracts/extensions/{static-a-token => stata-token}/interfaces/IAToken.sol (100%) rename src/contracts/extensions/{static-a-token => stata-token}/interfaces/IERC20AaveLM.sol (100%) rename src/contracts/extensions/{static-a-token => stata-token}/interfaces/IERC4626StataToken.sol (85%) rename src/contracts/extensions/{static-a-token => stata-token}/interfaces/IStataTokenFactory.sol (100%) rename src/contracts/extensions/{static-a-token => stata-token}/interfaces/IStataTokenV2.sol (100%) delete mode 100644 src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol rename tests/extensions/{static-a-token => stata-token}/ERC20AaveLMUpgradable.t.sol (99%) rename tests/extensions/{static-a-token => stata-token}/ERC4626StataTokenUpgradeable.t.sol (99%) rename tests/extensions/{static-a-token => stata-token}/StataTokenV2Getters.sol (95%) rename tests/extensions/{static-a-token => stata-token}/StataTokenV2Pausable.t.sol (98%) rename tests/extensions/{static-a-token => stata-token}/StataTokenV2Permit.sol (100%) rename tests/extensions/{static-a-token => stata-token}/StataTokenV2Rescuable.sol (95%) rename tests/extensions/{static-a-token => stata-token}/TestBase.sol (96%) diff --git a/.github/workflows/certora-stata.yml b/.github/workflows/certora-stata.yml index 04714798..f01da4fd 100644 --- a/.github/workflows/certora-stata.yml +++ b/.github/workflows/certora-stata.yml @@ -13,6 +13,9 @@ on: jobs: verify: runs-on: ubuntu-latest + if: + github.event.pull_request.head.repo.full_name == github.repository || (github.event_name == 'push' && + github.ref == format('refs/heads/{0}', github.event.repository.default_branch)) steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/comment.yml b/.github/workflows/comment.yml index e954f703..5efdc137 100644 --- a/.github/workflows/comment.yml +++ b/.github/workflows/comment.yml @@ -1,9 +1,4 @@ -# By calling this ci via `workflow_call` from another ci it has permissions to comment on prs from forks -# This action expects the a artifact named `content` to be present in the workflow run -# If the artifact contains a pr_number.txt, the action will comment on that pr. If not it comments on the commit. -# The content of the messages composed by concatinating all *.txt files within content into a single file -# If you want to enforce a specific order, you need to name the files in a way that sorts in the desired order -name: Comment +name: PR Comment on: workflow_run: @@ -20,49 +15,6 @@ permissions: jobs: comment: - name: Comment Bot - runs-on: ubuntu-latest - steps: - - uses: actions/download-artifact@v4 - with: - name: content - path: /tmp/content - run-id: ${{ github.event.workflow_run.id }} - github-token: ${{ secrets.READ_ONLY_PAT || github.token }} - - - name: Read pr number - id: get_pr_number - run: | - echo "pr_number=$(cat /tmp/content/pr_number.txt)" >> $GITHUB_OUTPUT - rm /tmp/content/pr_number.txt - - - name: Combine - id: combine - run: cat /tmp/content/*.txt > /tmp/all.txt - - - name: Find Comment - uses: peter-evans/find-comment@v3 - id: fc - if: ${{ steps.get_pr_number.outputs.pr_number != null }} - with: - issue-number: ${{ steps.get_pr_number.outputs.pr_number }} - comment-author: "github-actions[bot]" - token: ${{ secrets.READ_ONLY_PAT || github.token }} - - - name: Create or update pr comment - uses: peter-evans/create-or-update-comment@v4 - if: ${{ steps.get_pr_number.outputs.pr_number != null }} - with: - comment-id: ${{ steps.fc.outputs.comment-id }} - issue-number: ${{ steps.get_pr_number.outputs.pr_number }} - body-file: /tmp/all.txt - edit-mode: replace - token: ${{ secrets.READ_ONLY_PAT || github.token }} - - - name: Create or update commit comment - uses: peter-evans/commit-comment@v3 - if: ${{ steps.get_pr_number.outputs.pr_number == null }} - with: - sha: ${{ github.event.workflow_run.head_sha }} - body-file: /tmp/all.txt - token: ${{ secrets.READ_ONLY_PAT || github.token }} + uses: bgd-labs/github-workflows/.github/workflows/comment.yml@main + secrets: + READ_ONLY_PAT: ${{ secrets.READ_ONLY_PAT }} diff --git a/src/contracts/extensions/paraswap-adapters/AaveParaSwapFeeClaimer.sol b/src/contracts/extensions/paraswap-adapters/AaveParaSwapFeeClaimer.sol deleted file mode 100644 index 0f91ff05..00000000 --- a/src/contracts/extensions/paraswap-adapters/AaveParaSwapFeeClaimer.sol +++ /dev/null @@ -1,58 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.0; - -import {IFeeClaimer} from './interfaces/IFeeClaimer.sol'; -import {IERC20} from '../../dependencies/openzeppelin/contracts/IERC20.sol'; - -/** - * @title AaveParaSwapFeeClaimer - * @author BGD Labs - * @dev Helper contract that allows claiming paraswap partner fee to the collector on the respective network. - */ -contract AaveParaSwapFeeClaimer { - // lowercase for backwards compatibility as originally this was in storage - address public immutable aaveCollector; - IFeeClaimer public immutable paraswapFeeClaimer; - - constructor(address _aaveCollector, IFeeClaimer _paraswapFeeClaimer) { - require(address(_paraswapFeeClaimer) != address(0), 'PARASWAP_FEE_CLAIMER_REQUIRED'); - require(_aaveCollector != address(0), 'COLLECTOR_REQUIRED'); - aaveCollector = _aaveCollector; - paraswapFeeClaimer = _paraswapFeeClaimer; - } - - /** - * @dev returns claimable balance for a specified asset - * @param asset The asset to fetch claimable balance of - */ - function getClaimable(address asset) external view returns (uint256) { - return paraswapFeeClaimer.getBalance(IERC20(asset), address(this)); - } - - /** - * @dev returns claimable balances for specified assets - * @param assets The assets to fetch claimable balances of - */ - function batchGetClaimable(address[] memory assets) external view returns (uint256[] memory) { - return paraswapFeeClaimer.batchGetBalance(assets, address(this)); - } - - /** - * @dev withdraws a single asset to the collector - * @notice will revert when there's nothing to claim - * @param asset The asset to claim rewards of - */ - function claimToCollector(IERC20 asset) external { - paraswapFeeClaimer.withdrawAllERC20(asset, aaveCollector); - } - - /** - * @dev withdraws all asset to the collector - * @notice will revert when there's nothing to claim on a single supplied asset - * @param assets The assets to claim rewards of - */ - function batchClaimToCollector(address[] memory assets) external { - paraswapFeeClaimer.batchWithdrawAllERC20(assets, aaveCollector); - } -} diff --git a/src/contracts/extensions/paraswap-adapters/interfaces/IFeeClaimer.sol b/src/contracts/extensions/paraswap-adapters/interfaces/IFeeClaimer.sol deleted file mode 100644 index 161bcd51..00000000 --- a/src/contracts/extensions/paraswap-adapters/interfaces/IFeeClaimer.sol +++ /dev/null @@ -1,95 +0,0 @@ -// SPDX-License-Identifier: ISC -pragma solidity ^0.8.0; - -import {IERC20} from '../../../dependencies/openzeppelin/contracts/IERC20.sol'; - -interface IFeeClaimer { - /** - * @notice register partner's, affiliate's and PP's fee - * @dev only callable by AugustusSwapper contract - * @param _account account address used to withdraw fees - * @param _token token address - * @param _fee fee amount in token - */ - function registerFee(address _account, IERC20 _token, uint256 _fee) external; - - /** - * @notice claim partner share fee in ERC20 token - * @dev transfers ERC20 token balance to the caller's account - * the call will fail if withdrawer have zero balance in the contract - * @param _token address of the ERC20 token - * @param _recipient address - * @return true if the withdraw was successfull - */ - function withdrawAllERC20(IERC20 _token, address _recipient) external returns (bool); - - /** - * @notice batch claim whole balance of fee share amount - * @dev transfers ERC20 token balance to the caller's account - * the call will fail if withdrawer have zero balance in the contract - * @param _tokens list of addresses of the ERC20 token - * @param _recipient address of recipient - * @return true if the withdraw was successfull - */ - function batchWithdrawAllERC20( - address[] calldata _tokens, - address _recipient - ) external returns (bool); - - /** - * @notice claim some partner share fee in ERC20 token - * @dev transfers ERC20 token amount to the caller's account - * the call will fail if withdrawer have zero balance in the contract - * @param _token address of the ERC20 token - * @param _recipient address - * @return true if the withdraw was successfull - */ - function withdrawSomeERC20( - IERC20 _token, - uint256 _tokenAmount, - address _recipient - ) external returns (bool); - - /** - * @notice batch claim some amount of fee share in ERC20 token - * @dev transfers ERC20 token balance to the caller's account - * the call will fail if withdrawer have zero balance in the contract - * @param _tokens address of the ERC20 tokens - * @param _tokenAmounts array of amounts - * @param _recipient destination account addresses - * @return true if the withdraw was successfull - */ - function batchWithdrawSomeERC20( - IERC20[] calldata _tokens, - uint256[] calldata _tokenAmounts, - address _recipient - ) external returns (bool); - - /** - * @notice compute unallocated fee in token - * @param _token address of the ERC20 token - * @return amount of unallocated token in fees - */ - function getUnallocatedFees(IERC20 _token) external view returns (uint256); - - /** - * @notice returns unclaimed fee amount given the token - * @dev retrieves the balance of ERC20 token fee amount for a partner - * @param _token address of the ERC20 token - * @param _partner account address of the partner - * @return amount of balance - */ - function getBalance(IERC20 _token, address _partner) external view returns (uint256); - - /** - * @notice returns unclaimed fee amount given the token in batch - * @dev retrieves the balance of ERC20 token fee amount for a partner in batch - * @param _tokens list of ERC20 token addresses - * @param _partner account address of the partner - * @return _fees array of the token amount - */ - function batchGetBalance( - address[] calldata _tokens, - address _partner - ) external view returns (uint256[] memory _fees); -} diff --git a/src/contracts/extensions/static-a-token/ERC20AaveLMUpgradeable.sol b/src/contracts/extensions/stata-token/ERC20AaveLMUpgradeable.sol similarity index 100% rename from src/contracts/extensions/static-a-token/ERC20AaveLMUpgradeable.sol rename to src/contracts/extensions/stata-token/ERC20AaveLMUpgradeable.sol diff --git a/src/contracts/extensions/static-a-token/ERC4626StataTokenUpgradeable.sol b/src/contracts/extensions/stata-token/ERC4626StataTokenUpgradeable.sol similarity index 100% rename from src/contracts/extensions/static-a-token/ERC4626StataTokenUpgradeable.sol rename to src/contracts/extensions/stata-token/ERC4626StataTokenUpgradeable.sol diff --git a/src/contracts/extensions/static-a-token/README.md b/src/contracts/extensions/stata-token/README.md similarity index 100% rename from src/contracts/extensions/static-a-token/README.md rename to src/contracts/extensions/stata-token/README.md diff --git a/src/contracts/extensions/static-a-token/StataTokenFactory.sol b/src/contracts/extensions/stata-token/StataTokenFactory.sol similarity index 100% rename from src/contracts/extensions/static-a-token/StataTokenFactory.sol rename to src/contracts/extensions/stata-token/StataTokenFactory.sol diff --git a/src/contracts/extensions/static-a-token/StataTokenV2.sol b/src/contracts/extensions/stata-token/StataTokenV2.sol similarity index 100% rename from src/contracts/extensions/static-a-token/StataTokenV2.sol rename to src/contracts/extensions/stata-token/StataTokenV2.sol diff --git a/src/contracts/extensions/static-a-token/inheritance.png b/src/contracts/extensions/stata-token/inheritance.png similarity index 100% rename from src/contracts/extensions/static-a-token/inheritance.png rename to src/contracts/extensions/stata-token/inheritance.png diff --git a/src/contracts/extensions/static-a-token/interfaces/IAToken.sol b/src/contracts/extensions/stata-token/interfaces/IAToken.sol similarity index 100% rename from src/contracts/extensions/static-a-token/interfaces/IAToken.sol rename to src/contracts/extensions/stata-token/interfaces/IAToken.sol diff --git a/src/contracts/extensions/static-a-token/interfaces/IERC20AaveLM.sol b/src/contracts/extensions/stata-token/interfaces/IERC20AaveLM.sol similarity index 100% rename from src/contracts/extensions/static-a-token/interfaces/IERC20AaveLM.sol rename to src/contracts/extensions/stata-token/interfaces/IERC20AaveLM.sol diff --git a/src/contracts/extensions/static-a-token/interfaces/IERC4626StataToken.sol b/src/contracts/extensions/stata-token/interfaces/IERC4626StataToken.sol similarity index 85% rename from src/contracts/extensions/static-a-token/interfaces/IERC4626StataToken.sol rename to src/contracts/extensions/stata-token/interfaces/IERC4626StataToken.sol index d1ed6bbd..baf155d5 100644 --- a/src/contracts/extensions/static-a-token/interfaces/IERC4626StataToken.sol +++ b/src/contracts/extensions/stata-token/interfaces/IERC4626StataToken.sol @@ -1,6 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.10; +import {IPool, IPoolAddressesProvider} from '../../../interfaces/IPool.sol'; + interface IERC4626StataToken { struct SignatureParams { uint8 v; @@ -14,6 +16,18 @@ interface IERC4626StataToken { error OnlyPauseGuardian(address caller); + /** + * @notice The pool associated with the aToken. + * @return The pool address. + */ + function POOL() external view returns (IPool); + + /** + * @notice The poolAddressesProvider associated with the pool. + * @return The poolAddressesProvider address. + */ + function POOL_ADDRESSES_PROVIDER() external view returns (IPoolAddressesProvider); + /** * @notice Burns `shares` of static aToken, with receiver receiving the corresponding amount of aToken * @param shares The shares to withdraw, in static balance of StaticAToken diff --git a/src/contracts/extensions/static-a-token/interfaces/IStataTokenFactory.sol b/src/contracts/extensions/stata-token/interfaces/IStataTokenFactory.sol similarity index 100% rename from src/contracts/extensions/static-a-token/interfaces/IStataTokenFactory.sol rename to src/contracts/extensions/stata-token/interfaces/IStataTokenFactory.sol diff --git a/src/contracts/extensions/static-a-token/interfaces/IStataTokenV2.sol b/src/contracts/extensions/stata-token/interfaces/IStataTokenV2.sol similarity index 100% rename from src/contracts/extensions/static-a-token/interfaces/IStataTokenV2.sol rename to src/contracts/extensions/stata-token/interfaces/IStataTokenV2.sol diff --git a/src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol b/src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol deleted file mode 100644 index 80f41d19..00000000 --- a/src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.10; - -import {IFeeClaimer} from '../../extensions/paraswap-adapters/interfaces/IFeeClaimer.sol'; -import {MockParaSwapTokenTransferProxy} from './MockParaSwapTokenTransferProxy.sol'; -import {IERC20} from '../../dependencies/openzeppelin/contracts/IERC20.sol'; -import {MintableERC20} from '../tokens/MintableERC20.sol'; - -contract MockParaSwapFeeClaimer is IFeeClaimer { - MockParaSwapTokenTransferProxy immutable TOKEN_TRANSFER_PROXY; - - mapping(address => mapping(address => uint256)) internal _fees; - - constructor() { - TOKEN_TRANSFER_PROXY = new MockParaSwapTokenTransferProxy(); - } - - function registerFee(address _account, IERC20 _token, uint256 _fee) external { - _fees[_account][address(_token)] += _fee; - } - - function withdrawAllERC20(IERC20 _token, address _recipient) public returns (bool) { - uint256 fees = _fees[address(msg.sender)][address(_token)]; - MintableERC20(address(_token)).mint(fees); - IERC20(_token).transfer(_recipient, fees); - _fees[address(msg.sender)][address(_token)] = 0; - return true; - } - - function batchWithdrawAllERC20( - address[] calldata _tokens, - address _recipient - ) external returns (bool) { - for (uint256 i = 0; i < _tokens.length; i++) { - withdrawAllERC20(IERC20(_tokens[i]), _recipient); - } - return true; - } - - function getBalance(IERC20 _token, address _partner) public view returns (uint256) { - return _fees[_partner][address(_token)]; - } - - function batchGetBalance( - address[] calldata _tokens, - address _partner - ) external view returns (uint256[] memory) { - uint256[] memory fees = new uint256[](_tokens.length); - for (uint256 i = 0; i < _tokens.length; i++) { - fees[i] = getBalance(IERC20(_tokens[i]), _partner); - } - return fees; - } - - function getUnallocatedFees(IERC20) external pure returns (uint256) { - require(false, 'MOCK_NOT_IMPLEMENTED'); - return 0; - } - - function withdrawSomeERC20(IERC20, uint256, address) external pure returns (bool) { - require(false, 'MOCK_NOT_IMPLEMENTED'); - return false; - } - - function batchWithdrawSomeERC20( - IERC20[] calldata, - uint256[] calldata, - address - ) external pure returns (bool) { - require(false, 'MOCK_NOT_IMPLEMENTED'); - return false; - } -} diff --git a/src/deployments/contracts/MarketReportStorage.sol b/src/deployments/contracts/MarketReportStorage.sol index 3c792196..e346e6d8 100644 --- a/src/deployments/contracts/MarketReportStorage.sol +++ b/src/deployments/contracts/MarketReportStorage.sol @@ -5,8 +5,4 @@ import '../interfaces/IMarketReportStorage.sol'; abstract contract MarketReportStorage is IMarketReportStorage { MarketReport internal _marketReport; - - function getMarketReport() external view returns (MarketReport memory) { - return _marketReport; - } } diff --git a/src/deployments/contracts/procedures/AaveV3HelpersProcedureTwo.sol b/src/deployments/contracts/procedures/AaveV3HelpersProcedureTwo.sol index 26c79db1..99a9b5a1 100644 --- a/src/deployments/contracts/procedures/AaveV3HelpersProcedureTwo.sol +++ b/src/deployments/contracts/procedures/AaveV3HelpersProcedureTwo.sol @@ -4,8 +4,8 @@ pragma solidity ^0.8.0; import '../../interfaces/IMarketReportTypes.sol'; import {ITransparentProxyFactory} from 'solidity-utils/contracts/transparent-proxy/interfaces/ITransparentProxyFactory.sol'; import {TransparentProxyFactory} from 'solidity-utils/contracts/transparent-proxy/TransparentProxyFactory.sol'; -import {StataTokenV2} from '../../../contracts/extensions/static-a-token/StataTokenV2.sol'; -import {StataTokenFactory} from '../../../contracts/extensions/static-a-token/StataTokenFactory.sol'; +import {StataTokenV2} from '../../../contracts/extensions/stata-token/StataTokenV2.sol'; +import {StataTokenFactory} from '../../../contracts/extensions/stata-token/StataTokenFactory.sol'; import {IErrors} from '../../interfaces/IErrors.sol'; contract AaveV3HelpersProcedureTwo is IErrors { diff --git a/src/deployments/contracts/procedures/AaveV3ParaswapProcedure.sol b/src/deployments/contracts/procedures/AaveV3ParaswapProcedure.sol index b89457b6..a87e1926 100644 --- a/src/deployments/contracts/procedures/AaveV3ParaswapProcedure.sol +++ b/src/deployments/contracts/procedures/AaveV3ParaswapProcedure.sol @@ -4,8 +4,6 @@ pragma solidity ^0.8.0; import {ParaSwapLiquiditySwapAdapter, IParaSwapAugustusRegistry} from '../../../contracts/extensions/paraswap-adapters/ParaSwapLiquiditySwapAdapter.sol'; import {ParaSwapRepayAdapter} from '../../../contracts/extensions/paraswap-adapters/ParaSwapRepayAdapter.sol'; import {ParaSwapWithdrawSwapAdapter} from '../../../contracts/extensions/paraswap-adapters/ParaSwapWithdrawSwapAdapter.sol'; -import {AaveParaSwapFeeClaimer} from '../../../contracts/extensions/paraswap-adapters/AaveParaSwapFeeClaimer.sol'; -import {IFeeClaimer} from '../../../contracts/extensions/paraswap-adapters/interfaces/IFeeClaimer.sol'; import {IPoolAddressesProvider} from '../../../contracts/interfaces/IPoolAddressesProvider.sol'; contract AaveV3ParaswapProcedure { @@ -13,22 +11,17 @@ contract AaveV3ParaswapProcedure { address paraSwapLiquiditySwapAdapter; address paraSwapRepayAdapter; address paraSwapWithdrawSwapAdapter; - address aaveParaSwapFeeClaimer; } function _deployAaveV3ParaswapAdapters( address paraswapAugustusRegistry, - address paraswapFeeClaimer, address poolAddressesProvider, - address poolAdmin, - address treasury + address poolAdmin ) internal returns (ParaswapAdapters memory) { ParaswapAdapters memory report = _deployParaswapAdapters( paraswapAugustusRegistry, - paraswapFeeClaimer, poolAddressesProvider, - poolAdmin, - treasury + poolAdmin ); return report; @@ -36,14 +29,12 @@ contract AaveV3ParaswapProcedure { function _deployParaswapAdapters( address paraswapAugustusRegistry, - address paraswapFeeClaimer, address poolAddressesProvider, - address poolAdmin, - address treasury + address poolAdmin ) internal returns (ParaswapAdapters memory) { ParaswapAdapters memory report; - if (paraswapAugustusRegistry != address(0) && paraswapFeeClaimer != address(0)) { + if (paraswapAugustusRegistry != address(0)) { report.paraSwapLiquiditySwapAdapter = address( new ParaSwapLiquiditySwapAdapter( IPoolAddressesProvider(poolAddressesProvider), @@ -67,10 +58,6 @@ contract AaveV3ParaswapProcedure { poolAdmin ) ); - - report.aaveParaSwapFeeClaimer = address( - new AaveParaSwapFeeClaimer(treasury, IFeeClaimer(paraswapFeeClaimer)) - ); } return report; } diff --git a/src/deployments/contracts/procedures/AaveV3SetupProcedure.sol b/src/deployments/contracts/procedures/AaveV3SetupProcedure.sol index 31d17b7e..481bbd5d 100644 --- a/src/deployments/contracts/procedures/AaveV3SetupProcedure.sol +++ b/src/deployments/contracts/procedures/AaveV3SetupProcedure.sol @@ -12,6 +12,9 @@ import {IEmissionManager} from '../../../contracts/rewards/interfaces/IEmissionM import {IRewardsController} from '../../../contracts/rewards/interfaces/IRewardsController.sol'; contract AaveV3SetupProcedure { + error MarketOwnerMustBeSet(); + error RewardsControllerImplementationMustBeSet(); + struct AddressProviderInput { InitialReport initialReport; address poolImplementation; @@ -126,10 +129,8 @@ contract AaveV3SetupProcedure { bytes32 controllerId = keccak256('INCENTIVES_CONTROLLER'); if (input.rewardsControllerProxy == address(0)) { - require( - input.rewardsControllerImplementation != address(0), - 'rewardsControllerImplementation must be set' - ); + if (input.rewardsControllerImplementation == address(0)) + revert RewardsControllerImplementationMustBeSet(); provider.setAddressAsProxy(controllerId, input.rewardsControllerImplementation); report.rewardsControllerProxy = provider.getAddress(controllerId); IEmissionManager emissionManager = IEmissionManager( @@ -211,6 +212,6 @@ contract AaveV3SetupProcedure { } function _validateMarketSetup(Roles memory roles) internal pure { - require(roles.marketOwner != address(0), 'roles.marketOwner must be set'); + if (roles.marketOwner == address(0)) revert MarketOwnerMustBeSet(); } } diff --git a/src/deployments/contracts/utilities/MetadataReporter.sol b/src/deployments/contracts/utilities/MetadataReporter.sol index 60459a88..7b2f6f92 100644 --- a/src/deployments/contracts/utilities/MetadataReporter.sol +++ b/src/deployments/contracts/utilities/MetadataReporter.sol @@ -67,7 +67,6 @@ contract MetadataReporter is IMetadataReporter { 'paraSwapWithdrawSwapAdapter', report.paraSwapWithdrawSwapAdapter ); - vm.serializeAddress(jsonReport, 'aaveParaSwapFeeClaimer', report.aaveParaSwapFeeClaimer); vm.serializeAddress( jsonReport, 'defaultInterestRateStrategy', diff --git a/src/deployments/interfaces/IMarketReportStorage.sol b/src/deployments/interfaces/IMarketReportStorage.sol index 4a3cd31a..40939e2a 100644 --- a/src/deployments/interfaces/IMarketReportStorage.sol +++ b/src/deployments/interfaces/IMarketReportStorage.sol @@ -5,6 +5,4 @@ import './IMarketReportTypes.sol'; interface IMarketReportStorage { event Deployment(MarketReport report); - - function getMarketReport() external view returns (MarketReport memory); } diff --git a/src/deployments/interfaces/IMarketReportTypes.sol b/src/deployments/interfaces/IMarketReportTypes.sol index 3c861a6c..afa6a2e2 100644 --- a/src/deployments/interfaces/IMarketReportTypes.sol +++ b/src/deployments/interfaces/IMarketReportTypes.sol @@ -75,7 +75,6 @@ struct MarketReport { address paraSwapLiquiditySwapAdapter; address paraSwapRepayAdapter; address paraSwapWithdrawSwapAdapter; - address aaveParaSwapFeeClaimer; address l2Encoder; address aToken; address variableDebtToken; @@ -113,7 +112,6 @@ struct MarketConfig { string marketId; uint8 oracleDecimals; address paraswapAugustusRegistry; - address paraswapFeeClaimer; address l2SequencerUptimeFeed; uint256 l2PriceOracleSentinelGracePeriod; uint256 providerId; @@ -186,5 +184,4 @@ struct ParaswapReport { address paraSwapLiquiditySwapAdapter; address paraSwapRepayAdapter; address paraSwapWithdrawSwapAdapter; - address aaveParaSwapFeeClaimer; } diff --git a/src/deployments/projects/aave-v3-batched/AaveV3BatchOrchestration.sol b/src/deployments/projects/aave-v3-batched/AaveV3BatchOrchestration.sol index 11a2b4f6..1ef2ee87 100644 --- a/src/deployments/projects/aave-v3-batched/AaveV3BatchOrchestration.sol +++ b/src/deployments/projects/aave-v3-batched/AaveV3BatchOrchestration.sol @@ -76,8 +76,7 @@ library AaveV3BatchOrchestration { ParaswapReport memory paraswapReport = _deployParaswapAdapters( roles, config, - initialReport.poolAddressesProvider, - peripheryReport.treasury + initialReport.poolAddressesProvider ); AaveV3GettersBatchTwo.GettersReportBatchTwo memory gettersReport2 = _deployGettersBatch2( @@ -253,15 +252,13 @@ library AaveV3BatchOrchestration { function _deployParaswapAdapters( Roles memory roles, MarketConfig memory config, - address poolAddressesProvider, - address treasury + address poolAddressesProvider ) internal returns (ParaswapReport memory) { - if (config.paraswapAugustusRegistry != address(0) && config.paraswapFeeClaimer != address(0)) { + if (config.paraswapAugustusRegistry != address(0)) { AaveV3ParaswapBatch parawswapBatch = new AaveV3ParaswapBatch( roles.poolAdmin, config, - poolAddressesProvider, - treasury + poolAddressesProvider ); return parawswapBatch.getParaswapReport(); } @@ -270,8 +267,7 @@ library AaveV3BatchOrchestration { ParaswapReport({ paraSwapLiquiditySwapAdapter: address(0), paraSwapRepayAdapter: address(0), - paraSwapWithdrawSwapAdapter: address(0), - aaveParaSwapFeeClaimer: address(0) + paraSwapWithdrawSwapAdapter: address(0) }); } @@ -314,7 +310,6 @@ library AaveV3BatchOrchestration { report.paraSwapLiquiditySwapAdapter = paraswapReport.paraSwapLiquiditySwapAdapter; report.paraSwapRepayAdapter = paraswapReport.paraSwapRepayAdapter; report.paraSwapWithdrawSwapAdapter = paraswapReport.paraSwapWithdrawSwapAdapter; - report.aaveParaSwapFeeClaimer = paraswapReport.aaveParaSwapFeeClaimer; report.treasuryImplementation = peripheryReport.treasuryImplementation; report.proxyAdmin = peripheryReport.proxyAdmin; report.treasury = peripheryReport.treasury; diff --git a/src/deployments/projects/aave-v3-batched/batches/AaveV3ParaswapBatch.sol b/src/deployments/projects/aave-v3-batched/batches/AaveV3ParaswapBatch.sol index 01cbb0ec..78c26d48 100644 --- a/src/deployments/projects/aave-v3-batched/batches/AaveV3ParaswapBatch.sol +++ b/src/deployments/projects/aave-v3-batched/batches/AaveV3ParaswapBatch.sol @@ -7,23 +7,15 @@ import '../../../interfaces/IMarketReportTypes.sol'; contract AaveV3ParaswapBatch is AaveV3ParaswapProcedure { ParaswapReport internal _report; - constructor( - address poolAdmin, - MarketConfig memory config, - address poolAddressesProvider, - address treasury - ) { + constructor(address poolAdmin, MarketConfig memory config, address poolAddressesProvider) { ParaswapAdapters memory adaptersReport = _deployAaveV3ParaswapAdapters( config.paraswapAugustusRegistry, - config.paraswapFeeClaimer, poolAddressesProvider, - poolAdmin, - treasury + poolAdmin ); _report.paraSwapLiquiditySwapAdapter = adaptersReport.paraSwapLiquiditySwapAdapter; _report.paraSwapRepayAdapter = adaptersReport.paraSwapRepayAdapter; _report.paraSwapWithdrawSwapAdapter = adaptersReport.paraSwapWithdrawSwapAdapter; - _report.aaveParaSwapFeeClaimer = adaptersReport.aaveParaSwapFeeClaimer; } function getParaswapReport() external view returns (ParaswapReport memory) { diff --git a/tests/deployments/AaveV3BatchDeployment.t.sol b/tests/deployments/AaveV3BatchDeployment.t.sol index cd78c6f4..e329b09d 100644 --- a/tests/deployments/AaveV3BatchDeployment.t.sol +++ b/tests/deployments/AaveV3BatchDeployment.t.sol @@ -5,7 +5,6 @@ import 'forge-std/Test.sol'; import '../../src/deployments/interfaces/IMarketReportTypes.sol'; import {AugustusRegistryMock} from '../mocks/AugustusRegistryMock.sol'; -import {MockParaSwapFeeClaimer} from '../../src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol'; import {BatchTestProcedures} from '../utils/BatchTestProcedures.sol'; import {AaveV3TestListing} from '../mocks/AaveV3TestListing.sol'; import {ACLManager} from '../../src/contracts/protocol/configuration/ACLManager.sol'; @@ -46,7 +45,6 @@ contract AaveV3BatchDeployment is BatchTestProcedures { 'Testnet Market', 8, address(new AugustusRegistryMock()), - address(new MockParaSwapFeeClaimer()), address(0), // l2SequencerUptimeFeed 0, // l2PriceOracleSentinelGracePeriod 8080, diff --git a/tests/deployments/AaveV3BatchTests.t.sol b/tests/deployments/AaveV3BatchTests.t.sol index e34ce6b2..2252b7ce 100644 --- a/tests/deployments/AaveV3BatchTests.t.sol +++ b/tests/deployments/AaveV3BatchTests.t.sol @@ -16,7 +16,6 @@ import {AaveV3HelpersBatchOne} from '../../src/deployments/projects/aave-v3-batc import {AaveV3HelpersBatchTwo} from '../../src/deployments/projects/aave-v3-batched/batches/AaveV3HelpersBatchTwo.sol'; import {WETH9} from '../../src/contracts/dependencies/weth/WETH9.sol'; import {AugustusRegistryMock} from '../mocks/AugustusRegistryMock.sol'; -import {MockParaSwapFeeClaimer} from '../../src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol'; import {BatchTestProcedures} from '../utils/BatchTestProcedures.sol'; import {AaveV3BatchOrchestration} from '../../src/deployments/projects/aave-v3-batched/AaveV3BatchOrchestration.sol'; @@ -60,7 +59,6 @@ contract AaveV3BatchTests is BatchTestProcedures { 'Testnet Market', 8, address(new AugustusRegistryMock()), - address(new MockParaSwapFeeClaimer()), address(0), // l2SequencerUptimeFeed 0, // l2PriceOracleSentinelGracePeriod 8080, @@ -164,12 +162,7 @@ contract AaveV3BatchTests is BatchTestProcedures { } function test6ParaswapRelease() public { - new AaveV3ParaswapBatch( - roles.poolAdmin, - config, - marketReportOne.poolAddressesProvider, - peripheryReportOne.treasury - ); + new AaveV3ParaswapBatch(roles.poolAdmin, config, marketReportOne.poolAddressesProvider); } function test7SetupMarket() public { diff --git a/tests/deployments/AaveV3PermissionsTest.t.sol b/tests/deployments/AaveV3PermissionsTest.t.sol index 4c0c92bb..170c8022 100644 --- a/tests/deployments/AaveV3PermissionsTest.t.sol +++ b/tests/deployments/AaveV3PermissionsTest.t.sol @@ -9,7 +9,6 @@ import {ACLManager} from '../../src/contracts/protocol/configuration/ACLManager. import {RewardsController} from '../../src/contracts/rewards/RewardsController.sol'; import {EmissionManager} from '../../src/contracts/rewards/EmissionManager.sol'; import {AugustusRegistryMock} from '../mocks/AugustusRegistryMock.sol'; -import {MockParaSwapFeeClaimer} from '../../src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol'; import {WETH9} from '../../src/contracts/dependencies/weth/WETH9.sol'; import {BatchTestProcedures} from '../utils/BatchTestProcedures.sol'; import {IRevenueSplitter} from '../../src/contracts/treasury/IRevenueSplitter.sol'; @@ -40,7 +39,6 @@ contract AaveV3PermissionsTest is BatchTestProcedures { roles.poolAdmin = poolAdmin; config.paraswapAugustusRegistry = address(new AugustusRegistryMock()); - config.paraswapFeeClaimer = address(new MockParaSwapFeeClaimer()); config.wrappedNativeToken = address(new WETH9()); MarketReport memory report = deployAaveV3Testnet( @@ -187,7 +185,6 @@ contract AaveV3PermissionsTest is BatchTestProcedures { roles.poolAdmin = poolAdmin; config.paraswapAugustusRegistry = address(new AugustusRegistryMock()); - config.paraswapFeeClaimer = address(new MockParaSwapFeeClaimer()); config.wrappedNativeToken = address(new WETH9()); config.treasuryPartner = treasuryPartner; config.treasurySplitPercent = 5000; diff --git a/tests/deployments/DeploymentsGasLimits.t.sol b/tests/deployments/DeploymentsGasLimits.t.sol index bbcc6ed8..98e2da92 100644 --- a/tests/deployments/DeploymentsGasLimits.t.sol +++ b/tests/deployments/DeploymentsGasLimits.t.sol @@ -16,7 +16,6 @@ import {AaveV3HelpersBatchOne} from '../../src/deployments/projects/aave-v3-batc import {AaveV3HelpersBatchTwo} from '../../src/deployments/projects/aave-v3-batched/batches/AaveV3HelpersBatchTwo.sol'; import {WETH9} from '../../src/contracts/dependencies/weth/WETH9.sol'; import {AugustusRegistryMock} from '../mocks/AugustusRegistryMock.sol'; -import {MockParaSwapFeeClaimer} from '../../src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol'; import {SequencerOracle} from '../../src/contracts/mocks/oracle/SequencerOracle.sol'; import {BatchTestProcedures} from '../utils/BatchTestProcedures.sol'; @@ -56,7 +55,6 @@ contract DeploymentsGasLimits is BatchTestProcedures { 'Testnet Market', 8, address(new AugustusRegistryMock()), // replace with mock of augustus registry - address(new MockParaSwapFeeClaimer()), address(new SequencerOracle(poolAdmin)), 2 hours, // l2PriceOracleSentinelGracePeriod 8080, @@ -149,12 +147,7 @@ contract DeploymentsGasLimits is BatchTestProcedures { } function test7ParaswapDeployment() public { - new AaveV3ParaswapBatch( - roles.poolAdmin, - config, - marketReportOne.poolAddressesProvider, - peripheryReportOne.treasury - ); + new AaveV3ParaswapBatch(roles.poolAdmin, config, marketReportOne.poolAddressesProvider); } function test8SetupMarket() public { diff --git a/tests/extensions/paraswap-adapters/ParaswapAdapters.t.sol b/tests/extensions/paraswap-adapters/ParaswapAdapters.t.sol index 42674e83..68c1ed25 100644 --- a/tests/extensions/paraswap-adapters/ParaswapAdapters.t.sol +++ b/tests/extensions/paraswap-adapters/ParaswapAdapters.t.sol @@ -4,12 +4,10 @@ pragma solidity ^0.8.0; import {ParaSwapLiquiditySwapAdapter, IParaSwapAugustus} from '../../../src/contracts/extensions/paraswap-adapters/ParaSwapLiquiditySwapAdapter.sol'; import {ParaSwapRepayAdapter, IParaSwapAugustusRegistry} from '../../../src/contracts/extensions/paraswap-adapters/ParaSwapRepayAdapter.sol'; import {ParaSwapWithdrawSwapAdapter} from '../../../src/contracts/extensions/paraswap-adapters/ParaSwapWithdrawSwapAdapter.sol'; -import {AaveParaSwapFeeClaimer, IERC20} from '../../../src/contracts/extensions/paraswap-adapters/AaveParaSwapFeeClaimer.sol'; import {BaseParaSwapAdapter} from '../../../src/contracts/extensions/paraswap-adapters/BaseParaSwapAdapter.sol'; import {IPool, DataTypes} from '../../../src/contracts/interfaces/IPool.sol'; import {IPoolAddressesProvider} from '../../../src/contracts/interfaces/IPoolAddressesProvider.sol'; import {MockParaSwapAugustus} from '../../../src/contracts/mocks/swap/MockParaSwapAugustus.sol'; -import {MockParaSwapFeeClaimer} from '../../../src/contracts/mocks/swap/MockParaSwapFeeClaimer.sol'; import {MockParaSwapAugustusRegistry} from '../../../src/contracts/mocks/swap/MockParaSwapAugustusRegistry.sol'; import {IERC20Detailed} from '../../../src/contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol'; import {TestnetERC20} from '../../../src/contracts/mocks/testnet-helpers/TestnetERC20.sol'; @@ -19,11 +17,9 @@ import {TestnetProcedures} from '../../utils/TestnetProcedures.sol'; contract ParaswapAdaptersTest is TestnetProcedures { MockParaSwapAugustus internal mockParaSwapAugustus; MockParaSwapAugustusRegistry internal mockAugustusRegistry; - MockParaSwapFeeClaimer internal mockParaSwapFeeClaimer; ParaSwapLiquiditySwapAdapter internal paraSwapLiquiditySwapAdapter; ParaSwapRepayAdapter internal paraSwapRepayAdapter; ParaSwapWithdrawSwapAdapter internal paraSwapWithdrawSwapAdapter; - AaveParaSwapFeeClaimer internal aaveParaSwapFeeClaimer; IERC20Detailed internal aWETH; IERC20Detailed internal aUSDX; @@ -52,7 +48,6 @@ contract ParaswapAdaptersTest is TestnetProcedures { function setUp() public { initTestEnvironment(); mockParaSwapAugustus = new MockParaSwapAugustus(); - mockParaSwapFeeClaimer = new MockParaSwapFeeClaimer(); mockAugustusRegistry = new MockParaSwapAugustusRegistry(address(mockParaSwapAugustus)); paraSwapLiquiditySwapAdapter = new ParaSwapLiquiditySwapAdapter( IPoolAddressesProvider(report.poolAddressesProvider), @@ -69,10 +64,6 @@ contract ParaswapAdaptersTest is TestnetProcedures { IParaSwapAugustusRegistry(mockAugustusRegistry), carol ); - aaveParaSwapFeeClaimer = new AaveParaSwapFeeClaimer( - address(contracts.treasury), - mockParaSwapFeeClaimer - ); DataTypes.ReserveDataLegacy memory wethData = contracts.poolProxy.getReserveData( tokenList.weth @@ -945,78 +936,4 @@ contract ParaswapAdaptersTest is TestnetProcedures { assertEq(usdx.balanceOf(carol), balanceBefore + 100e6); } - - // AaveParaswapFeeClaimer Tests - function test_getters() public view { - assertEq(address(aaveParaSwapFeeClaimer.paraswapFeeClaimer()), address(mockParaSwapFeeClaimer)); - assertEq(aaveParaSwapFeeClaimer.aaveCollector(), report.treasury); - } - - function test_getClaimable() public { - mockParaSwapFeeClaimer.registerFee( - address(aaveParaSwapFeeClaimer), - IERC20(tokenList.weth), - 1 ether - ); - - uint256 claimableWETH = aaveParaSwapFeeClaimer.getClaimable(tokenList.weth); - uint256 claimableUSDX = aaveParaSwapFeeClaimer.getClaimable(tokenList.usdx); - assertEq(claimableWETH, 1 ether); - assertEq(claimableUSDX, 0); - } - - function test_batchGetClaimable() public { - mockParaSwapFeeClaimer.registerFee( - address(aaveParaSwapFeeClaimer), - IERC20(tokenList.weth), - 1 ether - ); - - address[] memory assets = new address[](2); - assets[0] = tokenList.weth; - assets[1] = tokenList.usdx; - uint256[] memory amounts = aaveParaSwapFeeClaimer.batchGetClaimable(assets); - assertEq(amounts[0], 1 ether); - assertEq(amounts[1], 0); - } - - function test_claimToCollector() public { - vm.prank(poolAdmin); - TestnetERC20(tokenList.wbtc).transferOwnership(address(mockParaSwapFeeClaimer)); - mockParaSwapFeeClaimer.registerFee( - address(aaveParaSwapFeeClaimer), - IERC20(tokenList.wbtc), - 1 ether - ); - uint256 balanceBefore = IERC20(tokenList.wbtc).balanceOf(address(contracts.treasury)); - uint256 claimableBefore = aaveParaSwapFeeClaimer.getClaimable(tokenList.wbtc); - assertGt(claimableBefore, 0); - aaveParaSwapFeeClaimer.claimToCollector(IERC20(tokenList.wbtc)); - assertEq( - IERC20(tokenList.wbtc).balanceOf(address(contracts.treasury)), - balanceBefore + claimableBefore - ); - uint256 claimableAfter = aaveParaSwapFeeClaimer.getClaimable(tokenList.wbtc); - assertEq(claimableAfter, 0); - } - - function test_batchClaimToCollector() public { - vm.prank(poolAdmin); - TestnetERC20(tokenList.wbtc).transferOwnership(address(mockParaSwapFeeClaimer)); - mockParaSwapFeeClaimer.registerFee( - address(aaveParaSwapFeeClaimer), - IERC20(tokenList.wbtc), - 1 ether - ); - uint256 balanceBefore = IERC20(tokenList.wbtc).balanceOf(address(contracts.treasury)); - uint256 claimableBefore = aaveParaSwapFeeClaimer.getClaimable(tokenList.wbtc); - assertGt(claimableBefore, 0); - address[] memory assets = new address[](1); - assets[0] = tokenList.wbtc; - aaveParaSwapFeeClaimer.batchClaimToCollector(assets); - assertEq( - IERC20(tokenList.wbtc).balanceOf(address(contracts.treasury)), - balanceBefore + claimableBefore - ); - } } diff --git a/tests/extensions/static-a-token/ERC20AaveLMUpgradable.t.sol b/tests/extensions/stata-token/ERC20AaveLMUpgradable.t.sol similarity index 99% rename from tests/extensions/static-a-token/ERC20AaveLMUpgradable.t.sol rename to tests/extensions/stata-token/ERC20AaveLMUpgradable.t.sol index aa65ce7e..0d54d8c6 100644 --- a/tests/extensions/static-a-token/ERC20AaveLMUpgradable.t.sol +++ b/tests/extensions/stata-token/ERC20AaveLMUpgradable.t.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.10; import {IERC20Errors} from 'openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol'; import {TestnetProcedures, TestnetERC20} from '../../utils/TestnetProcedures.sol'; -import {ERC20AaveLMUpgradeable, IERC20AaveLM} from '../../../src/contracts/extensions/static-a-token/ERC20AaveLMUpgradeable.sol'; +import {ERC20AaveLMUpgradeable, IERC20AaveLM} from '../../../src/contracts/extensions/stata-token/ERC20AaveLMUpgradeable.sol'; import {IRewardsController} from '../../../src/contracts/rewards/interfaces/IRewardsController.sol'; import {PullRewardsTransferStrategy, ITransferStrategyBase} from '../../../src/contracts/rewards/transfer-strategies/PullRewardsTransferStrategy.sol'; import {RewardsDataTypes} from '../../../src/contracts/rewards/libraries/RewardsDataTypes.sol'; diff --git a/tests/extensions/static-a-token/ERC4626StataTokenUpgradeable.t.sol b/tests/extensions/stata-token/ERC4626StataTokenUpgradeable.t.sol similarity index 99% rename from tests/extensions/static-a-token/ERC4626StataTokenUpgradeable.t.sol rename to tests/extensions/stata-token/ERC4626StataTokenUpgradeable.t.sol index 9b7be78c..aeb24f89 100644 --- a/tests/extensions/static-a-token/ERC4626StataTokenUpgradeable.t.sol +++ b/tests/extensions/stata-token/ERC4626StataTokenUpgradeable.t.sol @@ -6,7 +6,7 @@ import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/extensions/IE import {IERC20Permit} from 'openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol'; import {IPool} from '../../../src/contracts/interfaces/IPool.sol'; import {TestnetProcedures, TestnetERC20} from '../../utils/TestnetProcedures.sol'; -import {ERC4626Upgradeable, ERC4626StataTokenUpgradeable, IERC4626StataToken} from '../../../src/contracts/extensions/static-a-token/ERC4626StataTokenUpgradeable.sol'; +import {ERC4626Upgradeable, ERC4626StataTokenUpgradeable, IERC4626StataToken} from '../../../src/contracts/extensions/stata-token/ERC4626StataTokenUpgradeable.sol'; import {DataTypes} from '../../../src/contracts/protocol/libraries/configuration/ReserveConfiguration.sol'; import {SigUtils} from '../../utils/SigUtils.sol'; diff --git a/tests/extensions/static-a-token/StataTokenV2Getters.sol b/tests/extensions/stata-token/StataTokenV2Getters.sol similarity index 95% rename from tests/extensions/static-a-token/StataTokenV2Getters.sol rename to tests/extensions/stata-token/StataTokenV2Getters.sol index d1ff188c..4e151c27 100644 --- a/tests/extensions/static-a-token/StataTokenV2Getters.sol +++ b/tests/extensions/stata-token/StataTokenV2Getters.sol @@ -4,7 +4,7 @@ pragma solidity ^0.8.10; import {Initializable} from 'openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol'; import {IERC20Metadata, IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol'; import {AToken} from '../../../src/contracts/protocol/tokenization/AToken.sol'; -import {StataTokenV2} from '../../../src/contracts/extensions/static-a-token/StataTokenV2.sol'; // TODO: change import to isolate to 4626 +import {StataTokenV2} from '../../../src/contracts/extensions/stata-token/StataTokenV2.sol'; // TODO: change import to isolate to 4626 import {DataTypes} from '../../../src/contracts/protocol/libraries/types/DataTypes.sol'; import {BaseTest} from './TestBase.sol'; diff --git a/tests/extensions/static-a-token/StataTokenV2Pausable.t.sol b/tests/extensions/stata-token/StataTokenV2Pausable.t.sol similarity index 98% rename from tests/extensions/static-a-token/StataTokenV2Pausable.t.sol rename to tests/extensions/stata-token/StataTokenV2Pausable.t.sol index 894c1eff..a16ffbdf 100644 --- a/tests/extensions/static-a-token/StataTokenV2Pausable.t.sol +++ b/tests/extensions/stata-token/StataTokenV2Pausable.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.10; import {PausableUpgradeable} from 'openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol'; import {IERC20Metadata, IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol'; -import {IERC4626StataToken} from '../../../src/contracts/extensions/static-a-token/interfaces/IERC4626StataToken.sol'; +import {IERC4626StataToken} from '../../../src/contracts/extensions/stata-token/interfaces/IERC4626StataToken.sol'; import {BaseTest} from './TestBase.sol'; contract StataTokenV2PausableTest is BaseTest { diff --git a/tests/extensions/static-a-token/StataTokenV2Permit.sol b/tests/extensions/stata-token/StataTokenV2Permit.sol similarity index 100% rename from tests/extensions/static-a-token/StataTokenV2Permit.sol rename to tests/extensions/stata-token/StataTokenV2Permit.sol diff --git a/tests/extensions/static-a-token/StataTokenV2Rescuable.sol b/tests/extensions/stata-token/StataTokenV2Rescuable.sol similarity index 95% rename from tests/extensions/static-a-token/StataTokenV2Rescuable.sol rename to tests/extensions/stata-token/StataTokenV2Rescuable.sol index b494a933..652e72f1 100644 --- a/tests/extensions/static-a-token/StataTokenV2Rescuable.sol +++ b/tests/extensions/stata-token/StataTokenV2Rescuable.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.10; import {IRescuable} from 'solidity-utils/contracts/utils/Rescuable.sol'; -import {IAToken} from '../../../src/contracts/extensions/static-a-token/StataTokenV2.sol'; +import {IAToken} from '../../../src/contracts/extensions/stata-token/StataTokenV2.sol'; import {IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol'; import {BaseTest} from './TestBase.sol'; diff --git a/tests/extensions/static-a-token/TestBase.sol b/tests/extensions/stata-token/TestBase.sol similarity index 96% rename from tests/extensions/static-a-token/TestBase.sol rename to tests/extensions/stata-token/TestBase.sol index 652073f7..36457337 100644 --- a/tests/extensions/static-a-token/TestBase.sol +++ b/tests/extensions/stata-token/TestBase.sol @@ -4,9 +4,9 @@ pragma solidity ^0.8.10; import {IERC20Metadata, IERC20} from 'openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol'; import {TransparentUpgradeableProxy} from 'solidity-utils/contracts/transparent-proxy/TransparentUpgradeableProxy.sol'; import {ITransparentProxyFactory} from 'solidity-utils/contracts/transparent-proxy/interfaces/ITransparentProxyFactory.sol'; -import {StataTokenFactory} from '../../../src/contracts/extensions/static-a-token/StataTokenFactory.sol'; -import {StataTokenV2} from '../../../src/contracts/extensions/static-a-token/StataTokenV2.sol'; -import {IERC20AaveLM} from '../../../src/contracts/extensions/static-a-token/interfaces/IERC20AaveLM.sol'; +import {StataTokenFactory} from '../../../src/contracts/extensions/stata-token/StataTokenFactory.sol'; +import {StataTokenV2} from '../../../src/contracts/extensions/stata-token/StataTokenV2.sol'; +import {IERC20AaveLM} from '../../../src/contracts/extensions/stata-token/interfaces/IERC20AaveLM.sol'; import {TestnetProcedures, TestnetERC20} from '../../utils/TestnetProcedures.sol'; import {DataTypes} from '../../../src/contracts/protocol/libraries/types/DataTypes.sol'; diff --git a/tests/utils/BatchTestProcedures.sol b/tests/utils/BatchTestProcedures.sol index 03a26043..edbda935 100644 --- a/tests/utils/BatchTestProcedures.sol +++ b/tests/utils/BatchTestProcedures.sol @@ -147,8 +147,7 @@ contract BatchTestProcedures is Test, DeployUtils, FfiUtils, DefaultMarketInput paraswapReport = AaveV3BatchOrchestration._deployParaswapAdapters( roles, config, - initialReport.poolAddressesProvider, - peripheryReport.treasury + initialReport.poolAddressesProvider ); gettersReport2 = AaveV3BatchOrchestration._deployGettersBatch2( @@ -204,7 +203,6 @@ contract BatchTestProcedures is Test, DeployUtils, FfiUtils, DefaultMarketInput assertTrue(r.paraSwapLiquiditySwapAdapter != address(0), 'report.paraSwapLiquiditySwapAdapter'); assertTrue(r.paraSwapRepayAdapter != address(0), 'report.paraSwapRepayAdapter'); assertTrue(r.paraSwapWithdrawSwapAdapter != address(0), 'report.paraSwapWithdrawSwapAdapter'); - assertTrue(r.aaveParaSwapFeeClaimer != address(0), 'report.aaveParaSwapFeeClaimer'); if (flags.l2) { assertTrue(r.l2Encoder != address(0), 'report.l2Encoder'); diff --git a/tests/utils/SigUtils.sol b/tests/utils/SigUtils.sol index 7f6ecb65..96f2a587 100644 --- a/tests/utils/SigUtils.sol +++ b/tests/utils/SigUtils.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.10; -import {IERC20AaveLM} from '../../src/contracts/extensions/static-a-token/interfaces/IERC20AaveLM.sol'; +import {IERC20AaveLM} from '../../src/contracts/extensions/stata-token/interfaces/IERC20AaveLM.sol'; library SigUtils { bytes32 internal constant PERMIT_TYPEHASH =