From 1c7ce57b2bd28385059887fa6a4c0b46e1def964 Mon Sep 17 00:00:00 2001 From: David Racero Date: Fri, 23 Oct 2020 18:38:27 +0200 Subject: [PATCH] Aggregated deployments for initialization, atokens and debtTokens --- buidler.config.ts | 2 +- .../deployments/DeployATokensAndRates.sol | 2 +- contracts/deployments/ReserveInitializer.sol | 35 ---- deployed-contracts.json | 38 ++-- helpers/init-helpers.ts | 169 +++++++++++------- helpers/misc-utils.ts | 10 ++ tasks/dev/5_initialize.ts | 16 +- tasks/full/5_initialize.ts | 21 ++- test/__setup.spec.ts | 14 +- test/helpers/make-suite.ts | 9 +- test/{test-init.spec.ts => test-init.ts} | 5 +- 11 files changed, 173 insertions(+), 148 deletions(-) delete mode 100644 contracts/deployments/ReserveInitializer.sol rename test/{test-init.spec.ts => test-init.ts} (98%) diff --git a/buidler.config.ts b/buidler.config.ts index ae6ef7e3..f2ff1604 100644 --- a/buidler.config.ts +++ b/buidler.config.ts @@ -14,7 +14,7 @@ usePlugin('@nomiclabs/buidler-etherscan'); //usePlugin('buidler-gas-reporter'); const SKIP_LOAD = process.env.SKIP_LOAD === 'true'; -const DEFAULT_BLOCK_GAS_LIMIT = 10000000; +const DEFAULT_BLOCK_GAS_LIMIT = 12000000; const DEFAULT_GAS_PRICE = 10; const HARDFORK = 'istanbul'; const INFURA_KEY = process.env.INFURA_KEY || ''; diff --git a/contracts/deployments/DeployATokensAndRates.sol b/contracts/deployments/DeployATokensAndRates.sol index 3e66802a..78076903 100644 --- a/contracts/deployments/DeployATokensAndRates.sol +++ b/contracts/deployments/DeployATokensAndRates.sol @@ -27,7 +27,7 @@ contract DeployATokensAndRates { } function concat(string memory a, string memory b) internal pure returns (string memory) { - return string(abi.encodePacked(a, ' ', b)); + return string(abi.encodePacked(a, b)); } function initDeployment( diff --git a/contracts/deployments/ReserveInitializer.sol b/contracts/deployments/ReserveInitializer.sol deleted file mode 100644 index d1d85bf4..00000000 --- a/contracts/deployments/ReserveInitializer.sol +++ /dev/null @@ -1,35 +0,0 @@ -// SPDX-License-Identifier: agpl-3.0 -pragma solidity ^0.6.8; -pragma experimental ABIEncoderV2; - -import {LendingPoolConfigurator} from '../lendingpool/LendingPoolConfigurator.sol'; - -contract ReserveInitializer { - address private poolConfigurator; - - constructor(address _poolConfigurator) public { - poolConfigurator = _poolConfigurator; - } - - function initReserve( - address[] calldata tokens, - address[] calldata stables, - address[] calldata variables, - address[] calldata aTokens, - address[] calldata strategies, - uint8[] calldata reserveDecimals - ) external { - // TODO require(check lenghts) - - for (uint256 i = 0; i < tokens.length; i++) { - LendingPoolConfigurator(poolConfigurator).initReserve( - tokens[i], - aTokens[i], - stables[i], - variables[i], - reserveDecimals[i], - strategies[i] - ); - } - } -} diff --git a/deployed-contracts.json b/deployed-contracts.json index 66f1ffe9..9891a3ca 100644 --- a/deployed-contracts.json +++ b/deployed-contracts.json @@ -1,7 +1,7 @@ { "MintableERC20": { "buidlerevm": { - "address": "0xB7d4f04E8dF26d2FEE35D4AeB2A63fEB49451B78", + "address": "0x58F132FBB86E21545A4Bace3C19f1C05d86d7A22", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -15,7 +15,7 @@ }, "LendingPoolAddressesProvider": { "buidlerevm": { - "address": "0xC5f7aC6895DcB76877E71db756433fB0E0478FEB", + "address": "0xa4bcDF64Cdd5451b6ac3743B414124A6299B65FF", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -33,7 +33,7 @@ }, "LendingPoolAddressesProviderRegistry": { "buidlerevm": { - "address": "0x4b2c297ba5be42610994974b9543D56B864CA011", + "address": "0x5A0773Ff307Bf7C71a832dBB5312237fD3437f9F", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -70,7 +70,7 @@ }, "LendingPoolConfigurator": { "buidlerevm": { - "address": "0x891E9f1BbD041265856b486DE4F5A5c5659370b6" + "address": "0x6642B57e4265BAD868C17Fc1d1F4F88DBBA04Aa8" }, "localhost": { "address": "0x9Ec55627757348b322c8dD0865D704649bFa0c7b" @@ -86,7 +86,7 @@ }, "LendingPool": { "buidlerevm": { - "address": "0x08ce4E45cD12Ae467fF24A1fd563321De309B613" + "address": "0xD9273d497eDBC967F39d419461CfcF382a0A822e" }, "localhost": { "address": "0x3EE716e38f21e5FC16BFDB773db24D63C637A5d8" @@ -97,7 +97,7 @@ }, "PriceOracle": { "buidlerevm": { - "address": "0x951d1CE3CE90D719F5BdeCBbFE6EeA9c7bff948E", + "address": "0x0C6c3C47A1f650809B0D1048FDf9603e09473D7E", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -111,7 +111,7 @@ }, "MockAggregator": { "buidlerevm": { - "address": "0xff1B1B810F5DCe853a9b1819DE220D532D1CFeF2", + "address": "0xc11f8E173ee67ffA7BBdD185D2399994AAd23Ec6", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -125,7 +125,7 @@ }, "ChainlinkProxyPriceProvider": { "buidlerevm": { - "address": "0xf55Af78B3f3059fACF166Aa338FFe059A14e75F6", + "address": "0xD662fb7FDC7526C79AA4417d2A4415416e057ec4", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -143,7 +143,7 @@ }, "LendingRateOracle": { "buidlerevm": { - "address": "0xaD3AdbC18E4AD090034A6C74Eda61f4310dce313", + "address": "0xEC1C93A9f6a9e18E97784c76aC52053587FcDB89", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -224,7 +224,7 @@ }, "MockFlashLoanReceiver": { "buidlerevm": { - "address": "0x5Ea694f66BD0CBd08FC7967af01b67Dcef68cC5c" + "address": "0xB8054085AF605D93c32E6B829d3d7eA2A8C84F9A" }, "localhost": { "address": "0x9c91aEaD98b1354C7B0EAfb8ff539d0796c79894" @@ -235,7 +235,7 @@ }, "WalletBalanceProvider": { "buidlerevm": { - "address": "0x93bB79570dFECC052e36E25cE10793A139e75f1b", + "address": "0xA3Ab089388B0C1BA83B3496696242FcA3F8eb9D5", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -571,7 +571,7 @@ }, "AaveProtocolTestHelpers": { "buidlerevm": { - "address": "0xa89E20284Bd638F31b0011D0fC754Fc9d2fa73e3" + "address": "0x93472C0e03215F9c33DA240Eb16703C8244eAa8c" }, "localhost": { "address": "0x987223924D2DD6c6efB601756850f3886ECbceF6" @@ -640,7 +640,7 @@ }, "MockAToken": { "buidlerevm": { - "address": "0x392E5355a0e88Bd394F717227c752670fb3a8020", + "address": "0x2dC17ABe95C889aA4c9474eD45Dd454Ed1Ec1ec1", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -668,7 +668,7 @@ }, "MockStableDebtToken": { "buidlerevm": { - "address": "0x3b050AFb4ac4ACE646b31fF3639C1CD43aC31460", + "address": "0x8b949D7E587518A6ad727ef30C5815De4a16A0D7", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -682,7 +682,7 @@ }, "MockVariableDebtToken": { "buidlerevm": { - "address": "0xEBAB67ee3ef604D5c250A53b4b8fcbBC6ec3007C", + "address": "0xCC5F3Be6e695bD0239dFd0efC8E9FFC6E969D29e", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" }, "localhost": { @@ -706,25 +706,25 @@ }, "ReserveLogic": { "buidlerevm": { - "address": "0x285671fF5C8172dE63cF5eA264B2e827aDBC6740", + "address": "0xFAe0fd738dAbc8a0426F47437322b6d026A9FD95", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" } }, "GenericLogic": { "buidlerevm": { - "address": "0xb840b4fe440b5E26e1840cd2D6320FAda1C0ca5d", + "address": "0x6082731fdAba4761277Fb31299ebC782AD3bCf24", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" } }, "ValidationLogic": { "buidlerevm": { - "address": "0x1a432D97211e8b2CD53DF262c8Da0EfeBa6b6b3D", + "address": "0x8456161947DFc1fC159A0B26c025cD2b4bba0c3e", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" } }, "LendingPoolCollateralManager": { "buidlerevm": { - "address": "0xb2B548BE73010C188C083c510d255Aed74843b05", + "address": "0xeB80313502EA077FA9B8E89b45e4a1B236cA17Ea", "deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6" } } diff --git a/helpers/init-helpers.ts b/helpers/init-helpers.ts index 706f8e58..f88c2620 100644 --- a/helpers/init-helpers.ts +++ b/helpers/init-helpers.ts @@ -9,10 +9,10 @@ import { deployVariableDebtToken, deployGenericAToken, } from './contracts-deployments'; -import {waitForTx} from './misc-utils'; +import {chunk, waitForTx} from './misc-utils'; import {DeployTokens} from '../types/DeployTokens'; import {ZERO_ADDRESS} from './constants'; -import {getFirstSigner} from './contracts-getters'; +import {getFirstSigner, getLendingPoolAddressesProvider} from './contracts-getters'; import {DeployATokensAndRatesFactory} from '../types/DeployATokensAndRatesFactory'; import {DeployStableAndVariableTokensFactory} from '../types/DeployStableAndVariableTokensFactory'; import {getDefaultSettings} from 'http2'; @@ -233,93 +233,138 @@ export const initReservesByHelper = async ( lendingPoolConfigurator: tEthereumAddress, reservesParams: iMultiPoolsAssets, tokenAddresses: {[symbol: string]: tEthereumAddress}, - helpers: AaveProtocolTestHelpers + helpers: AaveProtocolTestHelpers, + admin: tEthereumAddress, + incentivesController: tEthereumAddress ) => { const stableAndVariableDeployer = await new DeployStableAndVariableTokensFactory( await getFirstSigner() ).deploy(lendingPoolProxy, addressesProvider); - const stableTx = await waitForTx(stableAndVariableDeployer.deployTransaction); - console.log('GAS', stableTx.gasUsed.toString()); - console.log('- Deployed StableAndVariableDeployer'); + await waitForTx(stableAndVariableDeployer.deployTransaction); const atokenAndRatesDeployer = await new DeployATokensAndRatesFactory( await getFirstSigner() ).deploy(lendingPoolProxy, addressesProvider, lendingPoolConfigurator); - const atokenTx = await waitForTx(atokenAndRatesDeployer.deployTransaction); - console.log('GAS', atokenTx.gasUsed.toString()); - console.log('- Deployed ATokenAndRatesDeployer'); - console.log('doing calls'); - for (let [assetSymbol, {reserveDecimals}] of Object.entries(reservesParams) as [ - string, - IReserveParams - ][]) { - const assetAddressIndex = Object.keys(tokenAddresses).findIndex( - (value) => value === assetSymbol - ); - const [, tokenAddress] = (Object.entries(tokenAddresses) as [string, string][])[ - assetAddressIndex - ]; + await waitForTx(atokenAndRatesDeployer.deployTransaction); + const addressProvider = await getLendingPoolAddressesProvider(addressesProvider); - const {isActive: reserveInitialized} = await helpers.getReserveConfigurationData(tokenAddress); + // Set aTokenAndRatesDeployer as temporal admin + await waitForTx(await addressProvider.setAaveAdmin(atokenAndRatesDeployer.address)); - if (reserveInitialized) { - console.log(`Reserve ${assetSymbol} is already active, skipping configuration`); - continue; - } + // CHUNK CONFIGURATION + const tokensChunks = 3; + const initChunks = 6; - const reserveParamIndex = Object.keys(reservesParams).findIndex( - (value) => value === assetSymbol - ); - const [ - , - { + // Deploy tokens and rates in chunks + const reservesChunks = chunk( + Object.entries(reservesParams) as [string, IReserveParams][], + tokensChunks + ); + // Initialize variables for future reserves initialization + let deployedStableTokens: string[] = []; + let deployedVariableTokens: string[] = []; + let deployedATokens: string[] = []; + let deployedRates: string[] = []; + let reserveTokens: string[] = []; + let reserveInitDecimals: string[] = []; + + console.log( + `- Token deployments in ${reservesChunks.length * 2} txs instead of ${ + Object.entries(reservesParams).length * 4 + } txs` + ); + for (let reservesChunk of reservesChunks) { + // Prepare data + const tokens: string[] = []; + const symbols: string[] = []; + const strategyRates: string[][] = []; + const reservesDecimals: string[] = []; + + for (let [assetSymbol, {reserveDecimals}] of reservesChunk) { + const assetAddressIndex = Object.keys(tokenAddresses).findIndex( + (value) => value === assetSymbol + ); + const [, tokenAddress] = (Object.entries(tokenAddresses) as [string, string][])[ + assetAddressIndex + ]; + + const reserveParamIndex = Object.keys(reservesParams).findIndex( + (value) => value === assetSymbol + ); + const [ + , + { + baseVariableBorrowRate, + variableRateSlope1, + variableRateSlope2, + stableRateSlope1, + stableRateSlope2, + }, + ] = (Object.entries(reservesParams) as [string, IReserveParams][])[reserveParamIndex]; + // Add to lists + tokens.push(tokenAddress); + symbols.push(assetSymbol === 'WETH' ? 'ETH' : assetSymbol); + strategyRates.push([ baseVariableBorrowRate, variableRateSlope1, variableRateSlope2, stableRateSlope1, stableRateSlope2, - }, - ] = (Object.entries(reservesParams) as [string, IReserveParams][])[reserveParamIndex]; - assetSymbol = assetSymbol === 'WETH' ? 'ETH' : assetSymbol; + ]); + reservesDecimals.push(reserveDecimals); + } + + // Deploy stable and variable deployers const tx1 = await waitForTx( - await stableAndVariableDeployer.initDeployment([tokenAddress], [assetSymbol], ZERO_ADDRESS, { - gasLimit: 9000000, - }) + await stableAndVariableDeployer.initDeployment(tokens, symbols, incentivesController) ); - console.log('call 1', tx1.gasUsed.toString()); - - const stableTokens: string[] = tx1.events?.map((e) => e.args?.stableToken) || []; - const variableTokens: string[] = tx1.events?.map((e) => e.args?.variableToken) || []; + // Deploy atokens and rate strategies const tx2 = await waitForTx( await atokenAndRatesDeployer.initDeployment( - [tokenAddress], - [assetSymbol], - [ - [ - baseVariableBorrowRate, - variableRateSlope1, - variableRateSlope2, - stableRateSlope1, - stableRateSlope2, - ], - ], - ZERO_ADDRESS + tokens, + symbols, + strategyRates, + incentivesController ) ); + console.log(` - Deployed aToken, DebtTokens and Strategy for: ${symbols.join(', ')} `); + const stableTokens: string[] = tx1.events?.map((e) => e.args?.stableToken) || []; + const variableTokens: string[] = tx1.events?.map((e) => e.args?.variableToken) || []; const aTokens: string[] = tx2.events?.map((e) => e.args?.aToken) || []; const strategies: string[] = tx2.events?.map((e) => e.args?.strategy) || []; - console.log(aTokens.length, strategies.length, stableTokens.length, variableTokens.length); - console.log('call 2', tx2.gasUsed.toString()); + + deployedStableTokens = [...deployedStableTokens, ...stableTokens]; + deployedVariableTokens = [...deployedVariableTokens, ...variableTokens]; + deployedATokens = [...deployedATokens, ...aTokens]; + deployedRates = [...deployedRates, ...strategies]; + reserveInitDecimals = [...reserveInitDecimals, ...reservesDecimals]; + reserveTokens = [...reserveTokens, ...tokens]; + } + + // Deploy init reserves per chunks + const chunkedTokens = chunk(reserveTokens, initChunks); + const chunkedStableTokens = chunk(deployedStableTokens, initChunks); + const chunkedVariableTokens = chunk(deployedVariableTokens, initChunks); + const chunkedAtokens = chunk(deployedATokens, initChunks); + const chunkedRates = chunk(deployedRates, initChunks); + const chunkedDecimals = chunk(reserveInitDecimals, initChunks); + const chunkedSymbols = chunk(Object.keys(tokenAddresses), initChunks); + + console.log(`- Reserves initialization in ${chunkedTokens.length} txs`); + for (let chunkIndex = 0; chunkIndex < chunkedDecimals.length; chunkIndex++) { const tx3 = await waitForTx( await atokenAndRatesDeployer.initReserve( - [tokenAddress], - stableTokens, - variableTokens, - aTokens, - strategies, - [reserveDecimals] + chunkedTokens[chunkIndex], + chunkedStableTokens[chunkIndex], + chunkedVariableTokens[chunkIndex], + chunkedAtokens[chunkIndex], + chunkedRates[chunkIndex], + chunkedDecimals[chunkIndex] ) ); - console.log('call 3', tx3.gasUsed.toString()); + console.log(` - Reserve ready for: ${chunkedSymbols[chunkIndex].join(', ')}`); } + + // Set deployer back as admin + await waitForTx(await addressProvider.setAaveAdmin(admin)); }; diff --git a/helpers/misc-utils.ts b/helpers/misc-utils.ts index b3b29b7f..3df0e7d8 100644 --- a/helpers/misc-utils.ts +++ b/helpers/misc-utils.ts @@ -52,3 +52,13 @@ export const filterMapBy = (raw: {[key: string]: any}, fn: (key: string) => bool obj[key] = raw[key]; return obj; }, {}); + +export const chunk = (arr: Array, chunkSize: number): Array> => { + return arr.reduce( + (prevVal: any, currVal: any, currIndx: number, array: Array) => + !(currIndx % chunkSize) + ? prevVal.concat([array.slice(currIndx, currIndx + chunkSize)]) + : prevVal, + [] + ); +}; diff --git a/tasks/dev/5_initialize.ts b/tasks/dev/5_initialize.ts index 28c59bbf..213ed6cd 100644 --- a/tasks/dev/5_initialize.ts +++ b/tasks/dev/5_initialize.ts @@ -13,6 +13,7 @@ import { enableReservesToBorrow, enableReservesAsCollateral, initReserves, + initReservesByHelper, } from '../../helpers/init-helpers'; import {getAllTokenAddresses} from '../../helpers/mock-helpers'; import {ZERO_ADDRESS} from '../../helpers/constants'; @@ -44,16 +45,17 @@ task('dev:initialize-lending-pool', 'Initialize lending pool configuration.') const reservesParams = getReservesConfigByPool(AavePools.proto); - await initReserves( + const admin = await addressesProvider.getAaveAdmin(); + + await initReservesByHelper( + lendingPoolProxy.address, + addressesProvider.address, + lendingPoolConfiguratorProxy.address, reservesParams, protoPoolReservesAddresses, - addressesProvider, - lendingPoolProxy, testHelpers, - lendingPoolConfiguratorProxy, - AavePools.proto, - ZERO_ADDRESS, - verify + admin, + ZERO_ADDRESS ); await enableReservesToBorrow( reservesParams, diff --git a/tasks/full/5_initialize.ts b/tasks/full/5_initialize.ts index 6423b09d..d7a171e5 100644 --- a/tasks/full/5_initialize.ts +++ b/tasks/full/5_initialize.ts @@ -11,7 +11,7 @@ import {waitForTx} from '../../helpers/misc-utils'; import { enableReservesToBorrow, enableReservesAsCollateral, - initReserves, + initReservesByHelper, } from '../../helpers/init-helpers'; import {ZERO_ADDRESS} from '../../helpers/constants'; import {exit} from 'process'; @@ -27,7 +27,6 @@ task('full:initialize-lending-pool', 'Initialize lending pool configuration.') .setAction(async ({verify, pool}, localBRE) => { try { await localBRE.run('set-bre'); - console.log('init'); const network = localBRE.network.name; const poolConfig = loadPoolConfig(pool); const {ReserveAssets, ReservesConfig} = poolConfig as ICommonConfiguration; @@ -40,16 +39,20 @@ task('full:initialize-lending-pool', 'Initialize lending pool configuration.') const testHelpers = await deployAaveProtocolTestHelpers(addressesProvider.address, verify); - await initReserves( + const admin = await addressesProvider.getAaveAdmin(); + if (!reserveAssets) { + throw 'Reserve assets is undefined. Check ReserveAssets configuration at config directory'; + } + + await initReservesByHelper( + lendingPoolProxy.address, + addressesProvider.address, + lendingPoolConfiguratorProxy.address, ReservesConfig, reserveAssets, - addressesProvider, - lendingPoolProxy, testHelpers, - lendingPoolConfiguratorProxy, - AavePools.proto, - ZERO_ADDRESS, - verify + admin, + ZERO_ADDRESS ); await enableReservesToBorrow( ReservesConfig, diff --git a/test/__setup.spec.ts b/test/__setup.spec.ts index 3b84cb94..b69326dc 100644 --- a/test/__setup.spec.ts +++ b/test/__setup.spec.ts @@ -35,6 +35,7 @@ import { enableReservesToBorrow, enableReservesAsCollateral, initReserves, + initReservesByHelper, } from '../helpers/init-helpers'; import {AaveConfig} from '../config/aave'; import {ZERO_ADDRESS} from '../helpers/constants'; @@ -206,16 +207,15 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => { await insertContractAddressInDb(eContractid.AaveProtocolTestHelpers, testHelpers.address); console.log('Initialize configuration'); - await initReserves( + await initReservesByHelper( + lendingPoolProxy.address, + addressesProvider.address, + lendingPoolConfiguratorProxy.address, reservesParams, protoPoolReservesAddresses, - addressesProvider, - lendingPoolProxy, testHelpers, - lendingPoolConfiguratorProxy, - AavePools.proto, - ZERO_ADDRESS, - false + await deployer.getAddress(), + ZERO_ADDRESS ); await enableReservesToBorrow( reservesParams, diff --git a/test/helpers/make-suite.ts b/test/helpers/make-suite.ts index 11e8c9f8..198ffa5f 100644 --- a/test/helpers/make-suite.ts +++ b/test/helpers/make-suite.ts @@ -97,13 +97,10 @@ export async function initializeMakeSuite() { testEnv.helpersContract = await getAaveProtocolTestHelpers(); - const aDaiAddress = (await testEnv.helpersContract.getAllATokens()).find( - (aToken) => aToken.symbol === 'aDAI' - )?.tokenAddress; + const allTokens = await testEnv.helpersContract.getAllATokens(); + const aDaiAddress = allTokens.find((aToken) => aToken.symbol === 'aDAI')?.tokenAddress; - const aEthAddress = (await testEnv.helpersContract.getAllATokens()).find( - (aToken) => aToken.symbol === 'aETH' - )?.tokenAddress; + const aEthAddress = allTokens.find((aToken) => aToken.symbol === 'aETH')?.tokenAddress; const reservesTokens = await testEnv.helpersContract.getAllReservesTokens(); diff --git a/test/test-init.spec.ts b/test/test-init.ts similarity index 98% rename from test/test-init.spec.ts rename to test/test-init.ts index 290f7018..982b8796 100644 --- a/test/test-init.spec.ts +++ b/test/test-init.ts @@ -35,6 +35,7 @@ import { import AaveConfig from '../config/aave'; import {DeployTokensFactory} from '../types'; import {initReservesByHelper} from '../helpers/init-helpers'; +import {ZERO_ADDRESS} from '../helpers/constants'; const MOCK_USD_PRICE_IN_WEI = AaveConfig.ProtocolGlobalParams.MockUsdPriceInWei; const ALL_ASSETS_INITIAL_PRICES = AaveConfig.Mocks.AllAssetsInitialPrices; @@ -181,7 +182,9 @@ makeSuite('Init helper test', (testEnv: TestEnv) => { lendingPoolConfiguratorProxy.address, reservesParams, protoPoolReservesAddresses, - testHelpers + testHelpers, + await deployer.getAddress(), + ZERO_ADDRESS ); }); });