From e735d31a3420772a60eadcee90b26f4993422d34 Mon Sep 17 00:00:00 2001 From: The3D Date: Mon, 17 May 2021 21:12:54 +0200 Subject: [PATCH] fix: finalized aave pro deployment scripts and configuration --- helpers/contracts-deployments.ts | 19 +++++++++++++++---- helpers/types.ts | 2 ++ markets/aave-pro/commons.ts | 26 ++++++++++++++++++++++---- markets/aave-pro/index.ts | 14 ++++++++------ tasks/full/2_lending_pool.ts | 3 ++- 5 files changed, 49 insertions(+), 15 deletions(-) diff --git a/helpers/contracts-deployments.ts b/helpers/contracts-deployments.ts index 65ffb70d..2d038cba 100644 --- a/helpers/contracts-deployments.ts +++ b/helpers/contracts-deployments.ts @@ -51,6 +51,7 @@ import { FlashLiquidationAdapterFactory, PermissionedVariableDebtTokenFactory, PermissionedStableDebtTokenFactory, + PermissionedLendingPoolFactory } from '../types'; import { withSaveAndVerify, @@ -189,11 +190,21 @@ export const deployAaveLibraries = async ( }; }; -export const deployLendingPool = async (verify?: boolean) => { +export const deployLendingPool = async (verify?: boolean, lendingPoolImpl?: eContractid) => { const libraries = await deployAaveLibraries(verify); - const lendingPoolImpl = await new LendingPoolFactory(libraries, await getFirstSigner()).deploy(); - await insertContractAddressInDb(eContractid.LendingPoolImpl, lendingPoolImpl.address); - return withSaveAndVerify(lendingPoolImpl, eContractid.LendingPool, [], verify); + + let instance; + switch(lendingPoolImpl) { + case eContractid.PermissionedLendingPool: + instance = await new PermissionedLendingPoolFactory(libraries, await getFirstSigner()).deploy(); + break; + case eContractid.LendingPool: + default: + instance = await new LendingPoolFactory(libraries, await getFirstSigner()).deploy(); + } + + await insertContractAddressInDb(eContractid.LendingPoolImpl, instance.address); + return withSaveAndVerify(instance, eContractid.LendingPool, [], verify); }; export const deployPriceOracle = async (verify?: boolean) => diff --git a/helpers/types.ts b/helpers/types.ts index ce7a7f24..b896ee8a 100644 --- a/helpers/types.ts +++ b/helpers/types.ts @@ -90,6 +90,7 @@ export enum eContractid { PermissionManager = 'PermissionManager', PermissionedStableDebtToken = 'PermissionedStableDebtToken', PermissionedVariableDebtToken = 'PermissionedVariableDebtToken', + PermissionedLendingPool = 'PermissionedLendingPool' } /* @@ -474,6 +475,7 @@ export interface ILendingRate { export interface ICommonConfiguration { MarketId: string; + LendingPoolImpl?: eContractid; ATokenNamePrefix: string; StableDebtTokenNamePrefix: string; VariableDebtTokenNamePrefix: string; diff --git a/markets/aave-pro/commons.ts b/markets/aave-pro/commons.ts index 71e04360..ecd447e9 100644 --- a/markets/aave-pro/commons.ts +++ b/markets/aave-pro/commons.ts @@ -8,11 +8,11 @@ import { ICommonConfiguration, eEthereumNetwork } from '../../helpers/types'; export const CommonsConfig: ICommonConfiguration = { MarketId: 'Commons', - ATokenNamePrefix: 'Aave interest bearing', - StableDebtTokenNamePrefix: 'Aave stable debt bearing', - VariableDebtTokenNamePrefix: 'Aave variable debt bearing', + ATokenNamePrefix: 'Aave Pro market', + StableDebtTokenNamePrefix: 'Aave Pro stable debt ', + VariableDebtTokenNamePrefix: 'Aave Pro variable debt ', SymbolPrefix: '', - ProviderId: 0, // Overriden in index.ts + ProviderId: 0, // Overridden in index.ts ProtocolGlobalParams: { TokenDistributorPercentageBase: '10000', MockUsdPriceInWei: '5848466240000000', @@ -295,4 +295,22 @@ export const CommonsConfig: ICommonConfiguration = { [eEthereumNetwork.main]: '0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c', [eEthereumNetwork.tenderlyMain]: '0x464c71f6c2f760dda6093dcb91c24c39e5d6e18c', }, + WrappedNativeToken: { + [eEthereumNetwork.coverage]: '', // deployed in local evm + [eEthereumNetwork.hardhat]: '', // deployed in local evm + [eEthereumNetwork.buidlerevm]: '', // deployed in local evm + [eEthereumNetwork.kovan]: '0xd0a1e359811322d97991e03f863a0c30c2cf029c', + [eEthereumNetwork.ropsten]: '0xc778417e063141139fce010982780140aa0cd5ab', + [eEthereumNetwork.main]: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + [eEthereumNetwork.tenderlyMain]: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', + }, + IncentivesController: { + [eEthereumNetwork.coverage]: ZERO_ADDRESS, + [eEthereumNetwork.hardhat]: ZERO_ADDRESS, + [eEthereumNetwork.buidlerevm]: ZERO_ADDRESS, + [eEthereumNetwork.kovan]: ZERO_ADDRESS, + [eEthereumNetwork.ropsten]: ZERO_ADDRESS, + [eEthereumNetwork.main]: ZERO_ADDRESS, + [eEthereumNetwork.tenderlyMain]: ZERO_ADDRESS, + }, }; diff --git a/markets/aave-pro/index.ts b/markets/aave-pro/index.ts index 484fd99a..7d06757b 100644 --- a/markets/aave-pro/index.ts +++ b/markets/aave-pro/index.ts @@ -1,4 +1,5 @@ -import { IAaveProConfiguration, eEthereumNetwork } from '../../helpers/types'; +import { ZERO_ADDRESS } from '../../helpers/constants'; +import { IAaveProConfiguration, eEthereumNetwork, eContractid } from '../../helpers/types'; import { CommonsConfig } from './commons'; import { @@ -16,6 +17,7 @@ export const AaveConfig: IAaveProConfiguration = { ...CommonsConfig, MarketId: 'Aave Pro market', ProviderId: 1, + LendingPoolImpl: eContractid.PermissionedLendingPool, ReservesConfig: { USDC: strategyUSDC, USDT: strategyUSDT, @@ -28,29 +30,29 @@ export const AaveConfig: IAaveProConfiguration = { [eEthereumNetwork.coverage]: {}, [eEthereumNetwork.kovan]: { USDC: '0xe22da380ee6B445bb8273C81944ADEB6E8450422', - USDT: '0x13512979ADE267AB5100878E2e0f485B568328a4', WBTC: '0xD1B98B6607330172f1D991521145A22BCe793277', WETH: '0xd0a1e359811322d97991e03f863a0c30c2cf029c', + AAVE: '0xB597cd8D3217ea6477232F9217fa70837ff667Af', }, [eEthereumNetwork.ropsten]: { USDC: '0x851dEf71f0e6A903375C1e536Bd9ff1684BAD802', - USDT: '0xB404c51BBC10dcBE948077F18a4B8E553D160084', WBTC: '0xa0E54Ab6AA5f0bf1D62EC3526436F3c05b3348A0', WETH: '0xc778417e063141139fce010982780140aa0cd5ab', + AAVE: 'ZERO_ADDRESS', }, [eEthereumNetwork.main]: { USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', - USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7', WBTC: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', WETH: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', + AAVE: '0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9', }, [eEthereumNetwork.tenderlyMain]: { USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', - USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7', WBTC: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599', WETH: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2', + AAVE: '0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9', }, - }, + } }; export default AaveConfig; diff --git a/tasks/full/2_lending_pool.ts b/tasks/full/2_lending_pool.ts index 1d7a9b4a..4b57e51b 100644 --- a/tasks/full/2_lending_pool.ts +++ b/tasks/full/2_lending_pool.ts @@ -19,6 +19,7 @@ import { loadPoolConfig, ConfigNames } from '../../helpers/configuration'; task('full:deploy-lending-pool', 'Deploy lending pool for dev enviroment') .addFlag('verify', 'Verify contracts at Etherscan') .addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`) + .addParam('lendingPoolImpl') .setAction(async ({ verify, pool }, DRE: HardhatRuntimeEnvironment) => { try { await DRE.run('set-DRE'); @@ -32,7 +33,7 @@ task('full:deploy-lending-pool', 'Deploy lending pool for dev enviroment') let lendingPoolImplAddress = getParamPerNetwork(LendingPool, network); if (!notFalsyOrZeroAddress(lendingPoolImplAddress)) { console.log('\tDeploying new lending pool implementation & libraries...'); - const lendingPoolImpl = await deployLendingPool(verify); + const lendingPoolImpl = await deployLendingPool(verify, poolConfig.LendingPoolImpl); lendingPoolImplAddress = lendingPoolImpl.address; await lendingPoolImpl.initialize(addressesProvider.address); }