diff --git a/contracts/configuration/LendingPoolAddressesProvider.sol b/contracts/configuration/LendingPoolAddressesProvider.sol index 5b91d565..0cc67297 100644 --- a/contracts/configuration/LendingPoolAddressesProvider.sol +++ b/contracts/configuration/LendingPoolAddressesProvider.sol @@ -21,8 +21,8 @@ contract LendingPoolAddressesProvider is Ownable, ILendingPoolAddressesProvider bytes32 private constant LENDING_POOL = 'LENDING_POOL'; bytes32 private constant LENDING_POOL_CORE = 'LENDING_POOL_CORE'; bytes32 private constant LENDING_POOL_CONFIGURATOR = 'LENDING_POOL_CONFIGURATOR'; - bytes32 private constant LENDING_POOL_MANAGER = 'LENDING_POOL_MANAGER'; - bytes32 private constant LENDING_POOL_LIQUIDATION_MANAGER = 'LIQUIDATION_MANAGER'; + bytes32 private constant AAVE_ADMIN = 'AAVE_ADMIN'; + bytes32 private constant LENDING_POOL_COLLATERAL_MANAGER = 'COLLATERAL_MANAGER'; bytes32 private constant LENDING_POOL_FLASHLOAN_PROVIDER = 'FLASHLOAN_PROVIDER'; bytes32 private constant DATA_PROVIDER = 'DATA_PROVIDER'; bytes32 private constant ETHEREUM_ADDRESS = 'ETHEREUM_ADDRESS'; @@ -68,19 +68,19 @@ contract LendingPoolAddressesProvider is Ownable, ILendingPoolAddressesProvider * @dev returns the address of the LendingPoolCollateralManager. Since the manager is used * through delegateCall within the LendingPool contract, the proxy contract pattern does not work properly hence * the addresses are changed directly. - * @return the address of the Lending pool liquidation manager + * @return the address of the Lending pool collateral manager **/ function getLendingPoolCollateralManager() external override view returns (address) { - return _addresses[LENDING_POOL_LIQUIDATION_MANAGER]; + return _addresses[LENDING_POOL_COLLATERAL_MANAGER]; } /** - * @dev updates the address of the Lending pool liquidation manager - * @param manager the new lending pool liquidation manager address + * @dev updates the address of the Lending pool collateral manager + * @param manager the new lending pool collateral manager address **/ function setLendingPoolCollateralManager(address manager) external override onlyOwner { - _addresses[LENDING_POOL_LIQUIDATION_MANAGER] = manager; + _addresses[LENDING_POOL_COLLATERAL_MANAGER] = manager; emit LendingPoolCollateralManagerUpdated(manager); } @@ -89,13 +89,13 @@ contract LendingPoolAddressesProvider is Ownable, ILendingPoolAddressesProvider * hence the upgradable proxy pattern is not used **/ - function getLendingPoolManager() external override view returns (address) { - return _addresses[LENDING_POOL_MANAGER]; + function getAaveAdmin() external override view returns (address) { + return _addresses[AAVE_ADMIN]; } - function setLendingPoolManager(address lendingPoolManager) external override onlyOwner { - _addresses[LENDING_POOL_MANAGER] = lendingPoolManager; - emit LendingPoolManagerUpdated(lendingPoolManager); + function setAaveAdmin(address aaveAdmin) external override onlyOwner { + _addresses[AAVE_ADMIN] = aaveAdmin; + emit AaveAdminUpdated(aaveAdmin); } function getPriceOracle() external override view returns (address) { diff --git a/contracts/interfaces/ILendingPoolAddressesProvider.sol b/contracts/interfaces/ILendingPoolAddressesProvider.sol index 2d53b248..9f78edfe 100644 --- a/contracts/interfaces/ILendingPoolAddressesProvider.sol +++ b/contracts/interfaces/ILendingPoolAddressesProvider.sol @@ -9,7 +9,7 @@ pragma solidity ^0.6.8; interface ILendingPoolAddressesProvider { //events event LendingPoolUpdated(address indexed newAddress); - event LendingPoolManagerUpdated(address indexed newAddress); + event AaveAdminUpdated(address indexed newAddress); event LendingPoolConfiguratorUpdated(address indexed newAddress); event LendingPoolCollateralManagerUpdated(address indexed newAddress); event EthereumAddressUpdated(address indexed newAddress); @@ -30,9 +30,9 @@ interface ILendingPoolAddressesProvider { function setLendingPoolCollateralManager(address manager) external; - function getLendingPoolManager() external view returns (address); + function getAaveAdmin() external view returns (address); - function setLendingPoolManager(address lendingPoolManager) external; + function setAaveAdmin(address aaveAdmin) external; function getPriceOracle() external view returns (address); diff --git a/contracts/lendingpool/LendingPoolCollateralManager.sol b/contracts/lendingpool/LendingPoolCollateralManager.sol index f94cf470..9c60c688 100644 --- a/contracts/lendingpool/LendingPoolCollateralManager.sol +++ b/contracts/lendingpool/LendingPoolCollateralManager.sol @@ -26,7 +26,8 @@ import {ValidationLogic} from '../libraries/logic/ValidationLogic.sol'; /** * @title LendingPoolCollateralManager contract * @author Aave - * @notice Implements the liquidation function. + * @notice Implements actions involving management of collateral in the protocol. + * @notice this contract will be ran always through delegatecall * @dev LendingPoolCollateralManager inherits Pausable from OpenZeppelin to have the same storage layout as LendingPool **/ contract LendingPoolCollateralManager is VersionedInitializable { @@ -185,7 +186,7 @@ contract LendingPoolCollateralManager is VersionedInitializable { vars.userVariableDebt ); - if (Errors.LiquidationErrors(vars.errorCode) != Errors.LiquidationErrors.NO_ERROR) { + if (Errors.CollateralManagerErrors(vars.errorCode) != Errors.CollateralManagerErrors.NO_ERROR) { return (vars.errorCode, vars.errorMsg); } @@ -228,7 +229,7 @@ contract LendingPoolCollateralManager is VersionedInitializable { ); if (currentAvailableCollateral < vars.maxCollateralToLiquidate) { return ( - uint256(Errors.LiquidationErrors.NOT_ENOUGH_LIQUIDITY), + uint256(Errors.CollateralManagerErrors.NOT_ENOUGH_LIQUIDITY), Errors.NOT_ENOUGH_LIQUIDITY_TO_LIQUIDATE ); } @@ -300,7 +301,7 @@ contract LendingPoolCollateralManager is VersionedInitializable { receiveAToken ); - return (uint256(Errors.LiquidationErrors.NO_ERROR), Errors.NO_ERRORS); + return (uint256(Errors.CollateralManagerErrors.NO_ERROR), Errors.NO_ERRORS); } /** @@ -349,7 +350,7 @@ contract LendingPoolCollateralManager is VersionedInitializable { vars.userVariableDebt ); - if (Errors.LiquidationErrors(vars.errorCode) != Errors.LiquidationErrors.NO_ERROR) { + if (Errors.CollateralManagerErrors(vars.errorCode) != Errors.CollateralManagerErrors.NO_ERROR) { return (vars.errorCode, vars.errorMsg); } @@ -445,7 +446,7 @@ contract LendingPoolCollateralManager is VersionedInitializable { vars.maxCollateralToLiquidate ); - return (uint256(Errors.LiquidationErrors.NO_ERROR), Errors.NO_ERRORS); + return (uint256(Errors.CollateralManagerErrors.NO_ERROR), Errors.NO_ERRORS); } /** @@ -476,7 +477,7 @@ contract LendingPoolCollateralManager is VersionedInitializable { toAsset ); - if (Errors.LiquidationErrors(vars.errorCode) != Errors.LiquidationErrors.NO_ERROR) { + if (Errors.CollateralManagerErrors(vars.errorCode) != Errors.CollateralManagerErrors.NO_ERROR) { return (vars.errorCode, vars.errorMsg); } @@ -533,12 +534,12 @@ contract LendingPoolCollateralManager is VersionedInitializable { if (vars.healthFactor < GenericLogic.HEALTH_FACTOR_LIQUIDATION_THRESHOLD) { return ( - uint256(Errors.LiquidationErrors.HEALTH_FACTOR_LOWER_THAN_LIQUIDATION_THRESHOLD), + uint256(Errors.CollateralManagerErrors.HEALTH_FACTOR_LOWER_THAN_LIQUIDATION_THRESHOLD), Errors.HEALTH_FACTOR_LOWER_THAN_LIQUIDATION_THRESHOLD ); } - return (uint256(Errors.LiquidationErrors.NO_ERROR), Errors.NO_ERRORS); + return (uint256(Errors.CollateralManagerErrors.NO_ERROR), Errors.NO_ERRORS); } /** diff --git a/contracts/lendingpool/LendingPoolConfigurator.sol b/contracts/lendingpool/LendingPoolConfigurator.sol index 790eca96..801523de 100644 --- a/contracts/lendingpool/LendingPoolConfigurator.sol +++ b/contracts/lendingpool/LendingPoolConfigurator.sol @@ -176,11 +176,8 @@ contract LendingPoolConfigurator is VersionedInitializable { /** * @dev only the lending pool manager can call functions affected by this modifier **/ - modifier onlyLendingPoolManager { - require( - addressesProvider.getLendingPoolManager() == msg.sender, - Errors.CALLER_NOT_LENDING_POOL_MANAGER - ); + modifier onlyAaveAdmin { + require(addressesProvider.getAaveAdmin() == msg.sender, Errors.CALLER_NOT_AAVE_ADMIN); _; } @@ -211,7 +208,7 @@ contract LendingPoolConfigurator is VersionedInitializable { address variableDebtTokenImpl, uint8 underlyingAssetDecimals, address interestRateStrategyAddress - ) public onlyLendingPoolManager { + ) public onlyAaveAdmin { address aTokenProxyAddress = _initTokenWithProxy(aTokenImpl, underlyingAssetDecimals); address stableDebtTokenProxyAddress = _initTokenWithProxy( @@ -255,7 +252,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @param asset the address of the reserve to be updated * @param implementation the address of the new aToken implementation **/ - function updateAToken(address asset, address implementation) external onlyLendingPoolManager { + function updateAToken(address asset, address implementation) external onlyAaveAdmin { (address aTokenAddress, , ) = pool.getReserveTokensAddresses(asset); _upgradeTokenImplementation(asset, aTokenAddress, implementation); @@ -268,10 +265,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @param asset the address of the reserve to be updated * @param implementation the address of the new aToken implementation **/ - function updateStableDebtToken(address asset, address implementation) - external - onlyLendingPoolManager - { + function updateStableDebtToken(address asset, address implementation) external onlyAaveAdmin { (, address stableDebtToken, ) = pool.getReserveTokensAddresses(asset); _upgradeTokenImplementation(asset, stableDebtToken, implementation); @@ -284,10 +278,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @param asset the address of the reserve to be updated * @param implementation the address of the new aToken implementation **/ - function updateVariableDebtToken(address asset, address implementation) - external - onlyLendingPoolManager - { + function updateVariableDebtToken(address asset, address implementation) external onlyAaveAdmin { (, , address variableDebtToken) = pool.getReserveTokensAddresses(asset); _upgradeTokenImplementation(asset, variableDebtToken, implementation); @@ -302,7 +293,7 @@ contract LendingPoolConfigurator is VersionedInitializable { **/ function enableBorrowingOnReserve(address asset, bool stableBorrowRateEnabled) external - onlyLendingPoolManager + onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); @@ -318,7 +309,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev disables borrowing on a reserve * @param asset the address of the reserve **/ - function disableBorrowingOnReserve(address asset) external onlyLendingPoolManager { + function disableBorrowingOnReserve(address asset) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setBorrowingEnabled(false); @@ -339,7 +330,7 @@ contract LendingPoolConfigurator is VersionedInitializable { uint256 ltv, uint256 liquidationThreshold, uint256 liquidationBonus - ) external onlyLendingPoolManager { + ) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setLtv(ltv); @@ -355,7 +346,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev disables a reserve as collateral * @param asset the address of the reserve **/ - function disableReserveAsCollateral(address asset) external onlyLendingPoolManager { + function disableReserveAsCollateral(address asset) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setLtv(0); @@ -369,7 +360,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev enable stable rate borrowing on a reserve * @param asset the address of the reserve **/ - function enableReserveStableRate(address asset) external onlyLendingPoolManager { + function enableReserveStableRate(address asset) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setStableRateBorrowingEnabled(true); @@ -383,7 +374,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev disable stable rate borrowing on a reserve * @param asset the address of the reserve **/ - function disableReserveStableRate(address asset) external onlyLendingPoolManager { + function disableReserveStableRate(address asset) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setStableRateBorrowingEnabled(false); @@ -397,7 +388,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev activates a reserve * @param asset the address of the reserve **/ - function activateReserve(address asset) external onlyLendingPoolManager { + function activateReserve(address asset) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setActive(true); @@ -411,7 +402,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev deactivates a reserve * @param asset the address of the reserve **/ - function deactivateReserve(address asset) external onlyLendingPoolManager { + function deactivateReserve(address asset) external onlyAaveAdmin { ( uint256 availableLiquidity, uint256 totalBorrowsStable, @@ -442,7 +433,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev freezes a reserve. A freezed reserve doesn't accept any new deposit, borrow or rate swap, but can accept repayments, liquidations, rate rebalances and redeems * @param asset the address of the reserve **/ - function freezeReserve(address asset) external onlyLendingPoolManager { + function freezeReserve(address asset) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setFrozen(true); @@ -456,7 +447,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev unfreezes a reserve * @param asset the address of the reserve **/ - function unfreezeReserve(address asset) external onlyLendingPoolManager { + function unfreezeReserve(address asset) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setFrozen(false); @@ -471,7 +462,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @param asset the address of the reserve * @param ltv the new value for the loan to value **/ - function setLtv(address asset, uint256 ltv) external onlyLendingPoolManager { + function setLtv(address asset, uint256 ltv) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setLtv(ltv); @@ -486,10 +477,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @param asset the address of the reserve * @param threshold the new value for the liquidation threshold **/ - function setLiquidationThreshold(address asset, uint256 threshold) - external - onlyLendingPoolManager - { + function setLiquidationThreshold(address asset, uint256 threshold) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setLiquidationThreshold(threshold); @@ -504,7 +492,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @param asset the address of the reserve * @param bonus the new value for the liquidation bonus **/ - function setLiquidationBonus(address asset, uint256 bonus) external onlyLendingPoolManager { + function setLiquidationBonus(address asset, uint256 bonus) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setLiquidationBonus(bonus); @@ -519,7 +507,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @param asset the address of the reserve * @param decimals the new number of decimals **/ - function setReserveDecimals(address asset, uint256 decimals) external onlyLendingPoolManager { + function setReserveDecimals(address asset, uint256 decimals) external onlyAaveAdmin { ReserveConfiguration.Map memory currentConfig = pool.getConfiguration(asset); currentConfig.setDecimals(decimals); @@ -536,7 +524,7 @@ contract LendingPoolConfigurator is VersionedInitializable { **/ function setReserveInterestRateStrategyAddress(address asset, address rateStrategyAddress) external - onlyLendingPoolManager + onlyAaveAdmin { pool.setReserveInterestRateStrategyAddress(asset, rateStrategyAddress); emit ReserveInterestRateStrategyChanged(asset, rateStrategyAddress); @@ -587,7 +575,7 @@ contract LendingPoolConfigurator is VersionedInitializable { * @dev pauses or unpauses LendingPool actions * @param val the boolean value to set the current pause state of LendingPool **/ - function setPoolPause(bool val) external onlyLendingPoolManager { + function setPoolPause(bool val) external onlyAaveAdmin { pool.setPause(val); } } diff --git a/contracts/libraries/helpers/Errors.sol b/contracts/libraries/helpers/Errors.sol index d0cc1384..f1b9d5f8 100644 --- a/contracts/libraries/helpers/Errors.sol +++ b/contracts/libraries/helpers/Errors.sol @@ -59,7 +59,7 @@ library Errors { string public constant STABLE_BORROW_RATE_OVERFLOW = '51'; // Stable borrow rate overflows uint128 //require error messages - LendingPoolConfiguration - string public constant CALLER_NOT_LENDING_POOL_MANAGER = '35'; // 'The caller must be a lending pool manager' + string public constant CALLER_NOT_AAVE_ADMIN = '35'; // 'The caller must be a lending pool manager' string public constant RESERVE_LIQUIDITY_NOT_0 = '36'; // 'The liquidity of the reserve needs to be 0' //require error messages - LendingPoolAddressesProviderRegistry @@ -79,7 +79,7 @@ library Errors { // pausable error message string public constant IS_PAUSED = '58'; // 'Pool is paused' - enum LiquidationErrors { + enum CollateralManagerErrors { NO_ERROR, NO_COLLATERAL_AVAILABLE, COLLATERAL_CANNOT_BE_LIQUIDATED, diff --git a/contracts/libraries/logic/ValidationLogic.sol b/contracts/libraries/logic/ValidationLogic.sol index 336e18ad..b2fc4bcb 100644 --- a/contracts/libraries/logic/ValidationLogic.sol +++ b/contracts/libraries/logic/ValidationLogic.sol @@ -351,12 +351,12 @@ library ValidationLogic { if ( !collateralReserve.configuration.getActive() || !principalReserve.configuration.getActive() ) { - return (uint256(Errors.LiquidationErrors.NO_ACTIVE_RESERVE), Errors.NO_ACTIVE_RESERVE); + return (uint256(Errors.CollateralManagerErrors.NO_ACTIVE_RESERVE), Errors.NO_ACTIVE_RESERVE); } if (userHealthFactor >= GenericLogic.HEALTH_FACTOR_LIQUIDATION_THRESHOLD) { return ( - uint256(Errors.LiquidationErrors.HEALTH_FACTOR_ABOVE_THRESHOLD), + uint256(Errors.CollateralManagerErrors.HEALTH_FACTOR_ABOVE_THRESHOLD), Errors.HEALTH_FACTOR_NOT_BELOW_THRESHOLD ); } @@ -367,19 +367,19 @@ library ValidationLogic { //if collateral isn't enabled as collateral by user, it cannot be liquidated if (!isCollateralEnabled) { return ( - uint256(Errors.LiquidationErrors.COLLATERAL_CANNOT_BE_LIQUIDATED), + uint256(Errors.CollateralManagerErrors.COLLATERAL_CANNOT_BE_LIQUIDATED), Errors.COLLATERAL_CANNOT_BE_LIQUIDATED ); } if (userStableDebt == 0 && userVariableDebt == 0) { return ( - uint256(Errors.LiquidationErrors.CURRRENCY_NOT_BORROWED), + uint256(Errors.CollateralManagerErrors.CURRRENCY_NOT_BORROWED), Errors.SPECIFIED_CURRENCY_NOT_BORROWED_BY_USER ); } - return (uint256(Errors.LiquidationErrors.NO_ERROR), Errors.NO_ERRORS); + return (uint256(Errors.CollateralManagerErrors.NO_ERROR), Errors.NO_ERRORS); } /** @@ -404,14 +404,14 @@ library ValidationLogic { if ( !collateralReserve.configuration.getActive() || !principalReserve.configuration.getActive() ) { - return (uint256(Errors.LiquidationErrors.NO_ACTIVE_RESERVE), Errors.NO_ACTIVE_RESERVE); + return (uint256(Errors.CollateralManagerErrors.NO_ACTIVE_RESERVE), Errors.NO_ACTIVE_RESERVE); } if ( msg.sender != user && userHealthFactor >= GenericLogic.HEALTH_FACTOR_LIQUIDATION_THRESHOLD ) { return ( - uint256(Errors.LiquidationErrors.HEALTH_FACTOR_ABOVE_THRESHOLD), + uint256(Errors.CollateralManagerErrors.HEALTH_FACTOR_ABOVE_THRESHOLD), Errors.HEALTH_FACTOR_NOT_BELOW_THRESHOLD ); } @@ -423,7 +423,7 @@ library ValidationLogic { //if collateral isn't enabled as collateral by user, it cannot be liquidated if (!isCollateralEnabled) { return ( - uint256(Errors.LiquidationErrors.COLLATERAL_CANNOT_BE_LIQUIDATED), + uint256(Errors.CollateralManagerErrors.COLLATERAL_CANNOT_BE_LIQUIDATED), Errors.COLLATERAL_CANNOT_BE_LIQUIDATED ); } @@ -431,12 +431,12 @@ library ValidationLogic { if (userStableDebt == 0 && userVariableDebt == 0) { return ( - uint256(Errors.LiquidationErrors.CURRRENCY_NOT_BORROWED), + uint256(Errors.CollateralManagerErrors.CURRRENCY_NOT_BORROWED), Errors.SPECIFIED_CURRENCY_NOT_BORROWED_BY_USER ); } - return (uint256(Errors.LiquidationErrors.NO_ERROR), Errors.NO_ERRORS); + return (uint256(Errors.CollateralManagerErrors.NO_ERROR), Errors.NO_ERRORS); } /** @@ -453,16 +453,16 @@ library ValidationLogic { address toAsset ) internal view returns (uint256, string memory) { if (!fromReserve.configuration.getActive() || !toReserve.configuration.getActive()) { - return (uint256(Errors.LiquidationErrors.NO_ACTIVE_RESERVE), Errors.NO_ACTIVE_RESERVE); + return (uint256(Errors.CollateralManagerErrors.NO_ACTIVE_RESERVE), Errors.NO_ACTIVE_RESERVE); } if (fromAsset == toAsset) { return ( - uint256(Errors.LiquidationErrors.INVALID_EQUAL_ASSETS_TO_SWAP), + uint256(Errors.CollateralManagerErrors.INVALID_EQUAL_ASSETS_TO_SWAP), Errors.INVALID_EQUAL_ASSETS_TO_SWAP ); } - return (uint256(Errors.LiquidationErrors.NO_ERROR), Errors.NO_ERRORS); + return (uint256(Errors.CollateralManagerErrors.NO_ERROR), Errors.NO_ERRORS); } } diff --git a/helpers/types.ts b/helpers/types.ts index 6c38090a..0593f434 100644 --- a/helpers/types.ts +++ b/helpers/types.ts @@ -86,7 +86,7 @@ export enum ProtocolErrors { RESERVE_ALREADY_INITIALIZED = '34', // 'Reserve has already been initialized' //require error messages - LendingPoolConfiguration - CALLER_NOT_LENDING_POOL_MANAGER = '35', // 'The caller must be a lending pool manager' + CALLER_NOT_AAVE_ADMIN = '35', // 'The caller must be a lending pool manager' RESERVE_LIQUIDITY_NOT_0 = '36', // 'The liquidity of the reserve needs to be 0' //require error messages - LendingPoolAddressesProviderRegistry diff --git a/test/__setup.spec.ts b/test/__setup.spec.ts index 37b72d99..955ac825 100644 --- a/test/__setup.spec.ts +++ b/test/__setup.spec.ts @@ -349,12 +349,12 @@ export const waitForTx = async (tx: ContractTransaction) => await tx.wait(); const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => { console.time('setup'); - const lendingPoolManager = await deployer.getAddress(); + const aaveAdmin = await deployer.getAddress(); const mockTokens = await deployAllMockTokens(deployer); const addressesProvider = await deployLendingPoolAddressesProvider(); - await waitForTx(await addressesProvider.setLendingPoolManager(lendingPoolManager)); + await waitForTx(await addressesProvider.setAaveAdmin(aaveAdmin)); const addressesProviderRegistry = await deployLendingPoolAddressesProviderRegistry(); await waitForTx( diff --git a/test/configurator.spec.ts b/test/configurator.spec.ts index 6a85791c..89260ff3 100644 --- a/test/configurator.spec.ts +++ b/test/configurator.spec.ts @@ -6,7 +6,7 @@ import {ProtocolErrors} from '../helpers/types'; const {expect} = require('chai'); makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { - const {CALLER_NOT_LENDING_POOL_MANAGER, RESERVE_LIQUIDITY_NOT_0} = ProtocolErrors; + const {CALLER_NOT_AAVE_ADMIN, RESERVE_LIQUIDITY_NOT_0} = ProtocolErrors; it('Deactivates the ETH reserve', async () => { const {configurator, pool, weth} = testEnv; @@ -23,20 +23,20 @@ makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { expect(isActive).to.be.equal(true); }); - it('Check the onlyLendingPoolManager on deactivateReserve ', async () => { + it('Check the onlyAaveAdmin on deactivateReserve ', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).deactivateReserve(weth.address), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); - it('Check the onlyLendingPoolManager on activateReserve ', async () => { + it('Check the onlyAaveAdmin on activateReserve ', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).activateReserve(weth.address), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Freezes the ETH reserve', async () => { @@ -54,20 +54,20 @@ makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { expect(isFreezed).to.be.equal(false); }); - it('Check the onlyLendingPoolManager on freezeReserve ', async () => { + it('Check the onlyAaveAdmin on freezeReserve ', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).freezeReserve(weth.address), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); - it('Check the onlyLendingPoolManager on unfreezeReserve ', async () => { + it('Check the onlyAaveAdmin on unfreezeReserve ', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).unfreezeReserve(weth.address), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Deactivates the ETH reserve for borrowing', async () => { @@ -86,20 +86,20 @@ makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { expect(variableBorrowIndex.toString()).to.be.equal(RAY); }); - it('Check the onlyLendingPoolManager on disableBorrowingOnReserve ', async () => { + it('Check the onlyAaveAdmin on disableBorrowingOnReserve ', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).disableBorrowingOnReserve(weth.address), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); - it('Check the onlyLendingPoolManager on enableBorrowingOnReserve ', async () => { + it('Check the onlyAaveAdmin on enableBorrowingOnReserve ', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).enableBorrowingOnReserve(weth.address, true), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Deactivates the ETH reserve as collateral', async () => { @@ -117,22 +117,22 @@ makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { expect(usageAsCollateralEnabled).to.be.equal(true); }); - it('Check the onlyLendingPoolManager on disableReserveAsCollateral ', async () => { + it('Check the onlyAaveAdmin on disableReserveAsCollateral ', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).disableReserveAsCollateral(weth.address), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); - it('Check the onlyLendingPoolManager on enableReserveAsCollateral ', async () => { + it('Check the onlyAaveAdmin on enableReserveAsCollateral ', async () => { const {configurator, users, weth} = testEnv; await expect( configurator .connect(users[2].signer) .enableReserveAsCollateral(weth.address, '75', '80', '105'), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Disable stable borrow rate on the ETH reserve', async () => { @@ -149,20 +149,20 @@ makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { expect(stableBorrowRateEnabled).to.be.equal(true); }); - it('Check the onlyLendingPoolManager on disableReserveStableRate', async () => { + it('Check the onlyAaveAdmin on disableReserveStableRate', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).disableReserveStableRate(weth.address), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); - it('Check the onlyLendingPoolManager on enableReserveStableRate', async () => { + it('Check the onlyAaveAdmin on enableReserveStableRate', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).enableReserveStableRate(weth.address), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Changes LTV of the reserve', async () => { @@ -172,12 +172,12 @@ makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { expect(ltv.toString()).to.be.bignumber.equal('60', 'Invalid LTV'); }); - it('Check the onlyLendingPoolManager on setLtv', async () => { + it('Check the onlyAaveAdmin on setLtv', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).setLtv(weth.address, '75'), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Changes liquidation threshold of the reserve', async () => { @@ -190,12 +190,12 @@ makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { ); }); - it('Check the onlyLendingPoolManager on setLiquidationThreshold', async () => { + it('Check the onlyAaveAdmin on setLiquidationThreshold', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).setLiquidationThreshold(weth.address, '80'), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Changes liquidation bonus of the reserve', async () => { @@ -208,28 +208,28 @@ makeSuite('LendingPoolConfigurator', (testEnv: TestEnv) => { ); }); - it('Check the onlyLendingPoolManager on setLiquidationBonus', async () => { + it('Check the onlyAaveAdmin on setLiquidationBonus', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).setLiquidationBonus(weth.address, '80'), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); - it('Check the onlyLendingPoolManager on setReserveDecimals', async () => { + it('Check the onlyAaveAdmin on setReserveDecimals', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).setReserveDecimals(weth.address, '80'), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); - it('Check the onlyLendingPoolManager on setLiquidationBonus', async () => { + it('Check the onlyAaveAdmin on setLiquidationBonus', async () => { const {configurator, users, weth} = testEnv; await expect( configurator.connect(users[2].signer).setLiquidationBonus(weth.address, '80'), - CALLER_NOT_LENDING_POOL_MANAGER - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + CALLER_NOT_AAVE_ADMIN + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Reverts when trying to disable the DAI reserve with liquidity on it', async () => { diff --git a/test/lending-pool-addresses-provider.spec.ts b/test/lending-pool-addresses-provider.spec.ts index 8c36b32f..5721ff97 100644 --- a/test/lending-pool-addresses-provider.spec.ts +++ b/test/lending-pool-addresses-provider.spec.ts @@ -15,7 +15,7 @@ makeSuite('LendingPoolAddressesProvider', (testEnv: TestEnv) => { addressesProvider.setLendingPoolImpl, addressesProvider.setLendingPoolConfiguratorImpl, addressesProvider.setLendingPoolCollateralManager, - addressesProvider.setLendingPoolManager, + addressesProvider.setAaveAdmin, addressesProvider.setPriceOracle, addressesProvider.setLendingRateOracle, ]) { diff --git a/test/upgradeability.spec.ts b/test/upgradeability.spec.ts index b2f50179..65324e1f 100644 --- a/test/upgradeability.spec.ts +++ b/test/upgradeability.spec.ts @@ -12,7 +12,7 @@ import {MockStableDebtToken} from '../types/MockStableDebtToken'; import {MockVariableDebtToken} from '../types/MockVariableDebtToken'; makeSuite('Upgradeability', (testEnv: TestEnv) => { - const {CALLER_NOT_LENDING_POOL_MANAGER} = ProtocolErrors; + const {CALLER_NOT_AAVE_ADMIN} = ProtocolErrors; let newATokenAddress: string; let newStableTokenAddress: string; let newVariableTokenAddress: string; @@ -46,7 +46,7 @@ makeSuite('Upgradeability', (testEnv: TestEnv) => { await expect( configurator.connect(users[1].signer).updateAToken(dai.address, newATokenAddress) - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Upgrades the DAI Atoken implementation ', async () => { @@ -68,7 +68,7 @@ makeSuite('Upgradeability', (testEnv: TestEnv) => { configurator .connect(users[1].signer) .updateStableDebtToken(dai.address, newStableTokenAddress) - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Upgrades the DAI stable debt token implementation ', async () => { @@ -97,7 +97,7 @@ makeSuite('Upgradeability', (testEnv: TestEnv) => { configurator .connect(users[1].signer) .updateVariableDebtToken(dai.address, newVariableTokenAddress) - ).to.be.revertedWith(CALLER_NOT_LENDING_POOL_MANAGER); + ).to.be.revertedWith(CALLER_NOT_AAVE_ADMIN); }); it('Upgrades the DAI variable debt token implementation ', async () => {