From 66113d64a221c6c8d28b55d0e514125466245857 Mon Sep 17 00:00:00 2001 From: andyk Date: Wed, 16 Sep 2020 13:41:12 +0300 Subject: [PATCH 1/3] rename LendingPoolLiquidationManager -> LendingPoolCollateralManager --- .../LendingPoolAddressesProvider.sol | 8 ++++---- contracts/interfaces/ILendingPool.sol | 4 ++-- .../interfaces/ILendingPoolAddressesProvider.sol | 6 +++--- contracts/lendingpool/LendingPool.sol | 16 ++++++++-------- ...ager.sol => LendingPoolCollateralManager.sol} | 6 +++--- contracts/libraries/helpers/Errors.sol | 2 +- deployed-contracts.json | 2 +- helpers/contracts-helpers.ts | 14 +++++++------- helpers/types.ts | 4 ++-- test/__setup.spec.ts | 6 +++--- test/lending-pool-addresses-provider.spec.ts | 2 +- 11 files changed, 35 insertions(+), 35 deletions(-) rename contracts/lendingpool/{LendingPoolLiquidationManager.sol => LendingPoolCollateralManager.sol} (98%) diff --git a/contracts/configuration/LendingPoolAddressesProvider.sol b/contracts/configuration/LendingPoolAddressesProvider.sol index c398f578..5b91d565 100644 --- a/contracts/configuration/LendingPoolAddressesProvider.sol +++ b/contracts/configuration/LendingPoolAddressesProvider.sol @@ -65,13 +65,13 @@ contract LendingPoolAddressesProvider is Ownable, ILendingPoolAddressesProvider } /** - * @dev returns the address of the LendingPoolLiquidationManager. Since the manager is used + * @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 **/ - function getLendingPoolLiquidationManager() external override view returns (address) { + function getLendingPoolCollateralManager() external override view returns (address) { return _addresses[LENDING_POOL_LIQUIDATION_MANAGER]; } @@ -79,9 +79,9 @@ contract LendingPoolAddressesProvider is Ownable, ILendingPoolAddressesProvider * @dev updates the address of the Lending pool liquidation manager * @param manager the new lending pool liquidation manager address **/ - function setLendingPoolLiquidationManager(address manager) external override onlyOwner { + function setLendingPoolCollateralManager(address manager) external override onlyOwner { _addresses[LENDING_POOL_LIQUIDATION_MANAGER] = manager; - emit LendingPoolLiquidationManagerUpdated(manager); + emit LendingPoolCollateralManagerUpdated(manager); } /** diff --git a/contracts/interfaces/ILendingPool.sol b/contracts/interfaces/ILendingPool.sol index 85746888..d19f7ba1 100644 --- a/contracts/interfaces/ILendingPool.sol +++ b/contracts/interfaces/ILendingPool.sol @@ -111,7 +111,7 @@ interface ILendingPool { ); /** * @dev these events are not emitted directly by the LendingPool - * but they are declared here as the LendingPoolLiquidationManager + * but they are declared here as the LendingPoolCollateralManager * is executed using a delegateCall(). * This allows to have the events in the generated ABI for LendingPool. **/ @@ -439,5 +439,5 @@ interface ILendingPool { /** * @dev Returns if the LendingPool is paused */ - function paused() external view returns(bool); + function paused() external view returns (bool); } diff --git a/contracts/interfaces/ILendingPoolAddressesProvider.sol b/contracts/interfaces/ILendingPoolAddressesProvider.sol index 78e336f9..2d53b248 100644 --- a/contracts/interfaces/ILendingPoolAddressesProvider.sol +++ b/contracts/interfaces/ILendingPoolAddressesProvider.sol @@ -11,7 +11,7 @@ interface ILendingPoolAddressesProvider { event LendingPoolUpdated(address indexed newAddress); event LendingPoolManagerUpdated(address indexed newAddress); event LendingPoolConfiguratorUpdated(address indexed newAddress); - event LendingPoolLiquidationManagerUpdated(address indexed newAddress); + event LendingPoolCollateralManagerUpdated(address indexed newAddress); event EthereumAddressUpdated(address indexed newAddress); event PriceOracleUpdated(address indexed newAddress); event LendingRateOracleUpdated(address indexed newAddress); @@ -26,9 +26,9 @@ interface ILendingPoolAddressesProvider { function setLendingPoolConfiguratorImpl(address configurator) external; - function getLendingPoolLiquidationManager() external view returns (address); + function getLendingPoolCollateralManager() external view returns (address); - function setLendingPoolLiquidationManager(address manager) external; + function setLendingPoolCollateralManager(address manager) external; function getLendingPoolManager() external view returns (address); diff --git a/contracts/lendingpool/LendingPool.sol b/contracts/lendingpool/LendingPool.sol index 69a92b6f..e6a3c059 100644 --- a/contracts/lendingpool/LendingPool.sol +++ b/contracts/lendingpool/LendingPool.sol @@ -21,7 +21,7 @@ import {IStableDebtToken} from '../tokenization/interfaces/IStableDebtToken.sol' import {IVariableDebtToken} from '../tokenization/interfaces/IVariableDebtToken.sol'; import {IFlashLoanReceiver} from '../flashloan/interfaces/IFlashLoanReceiver.sol'; import {ISwapAdapter} from '../interfaces/ISwapAdapter.sol'; -import {LendingPoolLiquidationManager} from './LendingPoolLiquidationManager.sol'; +import {LendingPoolCollateralManager} from './LendingPoolCollateralManager.sol'; import {IPriceOracleGetter} from '../interfaces/IPriceOracleGetter.sol'; import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/SafeERC20.sol'; import {ILendingPool} from '../interfaces/ILendingPool.sol'; @@ -451,10 +451,10 @@ contract LendingPool is VersionedInitializable, ILendingPool { bool receiveAToken ) external override { whenNotPaused(); - address liquidationManager = _addressesProvider.getLendingPoolLiquidationManager(); + address collateralManager = _addressesProvider.getLendingPoolCollateralManager(); //solium-disable-next-line - (bool success, bytes memory result) = liquidationManager.delegatecall( + (bool success, bytes memory result) = collateralManager.delegatecall( abi.encodeWithSignature( 'liquidationCall(address,address,address,uint256,bool)', collateral, @@ -511,10 +511,10 @@ contract LendingPool is VersionedInitializable, ILendingPool { require(!_flashLiquidationLocked, Errors.REENTRANCY_NOT_ALLOWED); _flashLiquidationLocked = true; - address liquidationManager = _addressesProvider.getLendingPoolLiquidationManager(); + address collateralManager = _addressesProvider.getLendingPoolCollateralManager(); //solium-disable-next-line - (bool success, bytes memory result) = liquidationManager.delegatecall( + (bool success, bytes memory result) = collateralManager.delegatecall( abi.encodeWithSignature( 'repayWithCollateral(address,address,address,uint256,address,bytes)', collateral, @@ -618,10 +618,10 @@ contract LendingPool is VersionedInitializable, ILendingPool { bytes calldata params ) external override { whenNotPaused(); - address liquidationManager = _addressesProvider.getLendingPoolLiquidationManager(); + address collateralManager = _addressesProvider.getLendingPoolCollateralManager(); //solium-disable-next-line - (bool success, bytes memory result) = liquidationManager.delegatecall( + (bool success, bytes memory result) = collateralManager.delegatecall( abi.encodeWithSignature( 'swapLiquidity(address,address,address,uint256,bytes)', receiverAddress, @@ -1035,7 +1035,7 @@ contract LendingPool is VersionedInitializable, ILendingPool { /** * @dev Returns if the LendingPool is paused */ - function paused() external view override returns(bool) { + function paused() external override view returns (bool) { return _paused; } } diff --git a/contracts/lendingpool/LendingPoolLiquidationManager.sol b/contracts/lendingpool/LendingPoolCollateralManager.sol similarity index 98% rename from contracts/lendingpool/LendingPoolLiquidationManager.sol rename to contracts/lendingpool/LendingPoolCollateralManager.sol index 6adc18d9..f94cf470 100644 --- a/contracts/lendingpool/LendingPoolLiquidationManager.sol +++ b/contracts/lendingpool/LendingPoolCollateralManager.sol @@ -24,12 +24,12 @@ import {Errors} from '../libraries/helpers/Errors.sol'; import {ValidationLogic} from '../libraries/logic/ValidationLogic.sol'; /** - * @title LendingPoolLiquidationManager contract + * @title LendingPoolCollateralManager contract * @author Aave * @notice Implements the liquidation function. - * @dev LendingPoolLiquidationManager inherits Pausable from OpenZeppelin to have the same storage layout as LendingPool + * @dev LendingPoolCollateralManager inherits Pausable from OpenZeppelin to have the same storage layout as LendingPool **/ -contract LendingPoolLiquidationManager is VersionedInitializable { +contract LendingPoolCollateralManager is VersionedInitializable { using SafeERC20 for IERC20; using SafeMath for uint256; using WadRayMath for uint256; diff --git a/contracts/libraries/helpers/Errors.sol b/contracts/libraries/helpers/Errors.sol index 48c53ba6..d0cc1384 100644 --- a/contracts/libraries/helpers/Errors.sol +++ b/contracts/libraries/helpers/Errors.sol @@ -65,7 +65,7 @@ library Errors { //require error messages - LendingPoolAddressesProviderRegistry string public constant PROVIDER_NOT_REGISTERED = '37'; // 'Provider is not registered' - //return error messages - LendingPoolLiquidationManager + //return error messages - LendingPoolCollateralManager string public constant HEALTH_FACTOR_NOT_BELOW_THRESHOLD = '38'; // 'Health factor is not below the threshold' string public constant COLLATERAL_CANNOT_BE_LIQUIDATED = '39'; // 'The collateral chosen cannot be liquidated' string public constant SPECIFIED_CURRENCY_NOT_BORROWED_BY_USER = '40'; // 'User did not borrow the specified currency' diff --git a/deployed-contracts.json b/deployed-contracts.json index 9981b17c..00c4ef4f 100644 --- a/deployed-contracts.json +++ b/deployed-contracts.json @@ -495,4 +495,4 @@ "address": "0xBEF0d4b9c089a5883741fC14cbA352055f35DDA2" } } -} +} \ No newline at end of file diff --git a/helpers/contracts-helpers.ts b/helpers/contracts-helpers.ts index 44e4fb5a..f2476e18 100644 --- a/helpers/contracts-helpers.ts +++ b/helpers/contracts-helpers.ts @@ -21,7 +21,7 @@ import {PriceOracle} from '../types/PriceOracle'; import {MockAggregator} from '../types/MockAggregator'; import {LendingRateOracle} from '../types/LendingRateOracle'; import {DefaultReserveInterestRateStrategy} from '../types/DefaultReserveInterestRateStrategy'; -import {LendingPoolLiquidationManager} from '../types/LendingPoolLiquidationManager'; +import {LendingPoolCollateralManager} from '../types/LendingPoolCollateralManager'; import {InitializableAdminUpgradeabilityProxy} from '../types/InitializableAdminUpgradeabilityProxy'; import {MockFlashLoanReceiver} from '../types/MockFlashLoanReceiver'; import {WalletBalanceProvider} from '../types/WalletBalanceProvider'; @@ -192,16 +192,16 @@ export const deployChainlinkProxyPriceProvider = async ([ export const deployLendingRateOracle = async () => await deployContract(eContractid.LendingRateOracle, []); -export const deployLendingPoolLiquidationManager = async () => { - const liquidationManagerArtifact = await readArtifact( +export const deployLendingPoolCollateralManager = async () => { + const collateralManagerArtifact = await readArtifact( BRE.config.paths.artifacts, - eContractid.LendingPoolLiquidationManager + eContractid.LendingPoolCollateralManager ); - const factory = await linkLibrariesToArtifact(liquidationManagerArtifact); + const factory = await linkLibrariesToArtifact(collateralManagerArtifact); - const liquidationManager = await factory.deploy(); - return (await liquidationManager.deployed()) as LendingPoolLiquidationManager; + const collateralManager = await factory.deploy(); + return (await collateralManager.deployed()) as LendingPoolCollateralManager; }; export const deployInitializableAdminUpgradeabilityProxy = async () => diff --git a/helpers/types.ts b/helpers/types.ts index 966180d4..6c38090a 100644 --- a/helpers/types.ts +++ b/helpers/types.ts @@ -30,7 +30,7 @@ export enum eContractid { LendingRateOracle = 'LendingRateOracle', ChainlinkProxyPriceProvider = 'ChainlinkProxyPriceProvider', DefaultReserveInterestRateStrategy = 'DefaultReserveInterestRateStrategy', - LendingPoolLiquidationManager = 'LendingPoolLiquidationManager', + LendingPoolCollateralManager = 'LendingPoolCollateralManager', InitializableAdminUpgradeabilityProxy = 'InitializableAdminUpgradeabilityProxy', MockFlashLoanReceiver = 'MockFlashLoanReceiver', MockSwapAdapter = 'MockSwapAdapter', @@ -92,7 +92,7 @@ export enum ProtocolErrors { //require error messages - LendingPoolAddressesProviderRegistry PROVIDER_NOT_REGISTERED = '37', // 'Provider is not registered' - //return error messages - LendingPoolLiquidationManager + //return error messages - LendingPoolCollateralManager HEALTH_FACTOR_NOT_BELOW_THRESHOLD = '38', // 'Health factor is not below the threshold' COLLATERAL_CANNOT_BE_LIQUIDATED = '39', // 'The collateral chosen cannot be liquidated' SPECIFIED_CURRENCY_NOT_BORROWED_BY_USER = '40', // 'User did not borrow the specified currency' diff --git a/test/__setup.spec.ts b/test/__setup.spec.ts index e2db2752..37b72d99 100644 --- a/test/__setup.spec.ts +++ b/test/__setup.spec.ts @@ -12,7 +12,7 @@ import { deployChainlinkProxyPriceProvider, deployLendingRateOracle, deployDefaultReserveInterestRateStrategy, - deployLendingPoolLiquidationManager, + deployLendingPoolCollateralManager, deployMockFlashLoanReceiver, deployWalletBalancerProvider, getLendingPool, @@ -496,9 +496,9 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => { lendingPoolConfiguratorProxy ); - const liquidationManager = await deployLendingPoolLiquidationManager(); + const collateralManager = await deployLendingPoolCollateralManager(); await waitForTx( - await addressesProvider.setLendingPoolLiquidationManager(liquidationManager.address) + await addressesProvider.setLendingPoolCollateralManager(collateralManager.address) ); const mockFlashLoanReceiver = await deployMockFlashLoanReceiver(addressesProvider.address); diff --git a/test/lending-pool-addresses-provider.spec.ts b/test/lending-pool-addresses-provider.spec.ts index 7be4de3e..8c36b32f 100644 --- a/test/lending-pool-addresses-provider.spec.ts +++ b/test/lending-pool-addresses-provider.spec.ts @@ -14,7 +14,7 @@ makeSuite('LendingPoolAddressesProvider', (testEnv: TestEnv) => { for (const contractFunction of [ addressesProvider.setLendingPoolImpl, addressesProvider.setLendingPoolConfiguratorImpl, - addressesProvider.setLendingPoolLiquidationManager, + addressesProvider.setLendingPoolCollateralManager, addressesProvider.setLendingPoolManager, addressesProvider.setPriceOracle, addressesProvider.setLendingRateOracle, From 2a6248c6d28571c4c8ca053c800ca301688565c3 Mon Sep 17 00:00:00 2001 From: andyk Date: Wed, 16 Sep 2020 15:09:42 +0300 Subject: [PATCH 2/3] misc renaming --- .../LendingPoolAddressesProvider.sol | 24 ++--- .../ILendingPoolAddressesProvider.sol | 6 +- .../LendingPoolCollateralManager.sol | 19 ++-- .../lendingpool/LendingPoolConfigurator.sol | 56 +++++------ contracts/libraries/helpers/Errors.sol | 4 +- contracts/libraries/logic/ValidationLogic.sol | 26 +++--- helpers/types.ts | 2 +- test/__setup.spec.ts | 4 +- test/configurator.spec.ts | 92 +++++++++---------- test/lending-pool-addresses-provider.spec.ts | 2 +- test/upgradeability.spec.ts | 8 +- 11 files changed, 116 insertions(+), 127 deletions(-) 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 () => { From 373bac109ba5af83e44f763aa9e2691ec9886325 Mon Sep 17 00:00:00 2001 From: andyk Date: Wed, 16 Sep 2020 15:45:49 +0300 Subject: [PATCH 3/3] small comments fixes --- contracts/lendingpool/LendingPoolCollateralManager.sol | 2 +- contracts/libraries/helpers/Errors.sol | 2 +- helpers/types.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/lendingpool/LendingPoolCollateralManager.sol b/contracts/lendingpool/LendingPoolCollateralManager.sol index 9c60c688..be4ad224 100644 --- a/contracts/lendingpool/LendingPoolCollateralManager.sol +++ b/contracts/lendingpool/LendingPoolCollateralManager.sol @@ -28,7 +28,7 @@ import {ValidationLogic} from '../libraries/logic/ValidationLogic.sol'; * @author Aave * @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 + * @dev LendingPoolCollateralManager inherits VersionedInitializable from OpenZeppelin to have the same storage layout as LendingPool **/ contract LendingPoolCollateralManager is VersionedInitializable { using SafeERC20 for IERC20; diff --git a/contracts/libraries/helpers/Errors.sol b/contracts/libraries/helpers/Errors.sol index f1b9d5f8..cbf67b06 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_AAVE_ADMIN = '35'; // 'The caller must be a lending pool manager' + string public constant CALLER_NOT_AAVE_ADMIN = '35'; // 'The caller must be the aave admin' string public constant RESERVE_LIQUIDITY_NOT_0 = '36'; // 'The liquidity of the reserve needs to be 0' //require error messages - LendingPoolAddressesProviderRegistry diff --git a/helpers/types.ts b/helpers/types.ts index 0593f434..9063d1c7 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_AAVE_ADMIN = '35', // 'The caller must be a lending pool manager' + CALLER_NOT_AAVE_ADMIN = '35', // 'The caller must be the aave admin' RESERVE_LIQUIDITY_NOT_0 = '36', // 'The liquidity of the reserve needs to be 0' //require error messages - LendingPoolAddressesProviderRegistry