diff --git a/contracts/misc/AaveProtocolTestHelpers.sol b/contracts/misc/AaveProtocolTestHelpers.sol index cfea4434..5f48ac76 100644 --- a/contracts/misc/AaveProtocolTestHelpers.sol +++ b/contracts/misc/AaveProtocolTestHelpers.sol @@ -5,7 +5,6 @@ import {ILendingPoolAddressesProvider} from "../interfaces/ILendingPoolAddresses import {IERC20Detailed} from "../interfaces/IERC20Detailed.sol"; import {LendingPool} from "../lendingpool/LendingPool.sol"; import {AToken} from "../tokenization/AToken.sol"; -import "@nomiclabs/buidler/console.sol"; contract AaveProtocolTestHelpers { struct TokenData { @@ -21,11 +20,7 @@ contract AaveProtocolTestHelpers { function getAllReservesTokens() external view returns(TokenData[] memory) { LendingPool pool = LendingPool(payable(ADDRESSES_PROVIDER.getLendingPool())); - console.log("Getting reserves..."); - address[] memory reserves = pool.getReserves(); - console.log("Reserves retrivied"); - TokenData[] memory reservesTokens = new TokenData[](reserves.length); for (uint256 i = 0; i < reserves.length; i++) { reservesTokens[i] = TokenData({ @@ -38,14 +33,9 @@ contract AaveProtocolTestHelpers { function getAllATokens() external view returns(TokenData[] memory) { LendingPool pool = LendingPool(payable(ADDRESSES_PROVIDER.getLendingPool())); - - console.log("Getting all the tokens..."); address[] memory reserves = pool.getReserves(); - - console.log("Reserves retrivied"); TokenData[] memory aTokens = new TokenData[](reserves.length); for (uint256 i = 0; i < reserves.length; i++) { - console.log("Getting configuration for reserve %s", i); (,,,,address aTokenAddress,,,,) = pool.getReserveConfigurationData(reserves[i]); aTokens[i] = TokenData({ symbol: AToken(aTokenAddress).symbol(), diff --git a/package-lock.json b/package-lock.json index 5e7eea30..635a4ff1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -372,9 +372,9 @@ } }, "@openzeppelin/contracts": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.0.1.tgz", - "integrity": "sha512-uSrD7hZ0ViuHGqHZbeHawZBi/uy7aBiNramXAt2dFFuSuoU4u9insS3V3zdVfOnYSPreUo636xSOuQIFN4//HA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.1.0.tgz", + "integrity": "sha512-dVXDnUKxrAKLzPdCRkz+N8qsVkK1XxJ6kk3zuI6zaQmcKxN7CkizoDP7lXxcs/Mi2I0mxceTRjJBqlzFffLJrQ==", "dev": true }, "@resolver-engine/core": { diff --git a/package.json b/package.json index 1fd568be..5fafed8c 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@nomiclabs/buidler-ethers": "1.3.4-rc.0", "@nomiclabs/buidler-etherscan": "1.3.3", "@nomiclabs/buidler-waffle": "1.3.4", - "@openzeppelin/contracts": "3.0.1", + "@openzeppelin/contracts": "3.1.0", "@typechain/ethers-v4": "1.0.0", "@typechain/truffle-v4": "2.0.2", "@typechain/truffle-v5": "2.0.2", diff --git a/test/helpers/actions.ts b/test/helpers/actions.ts index f82dc466..61a925ed 100644 --- a/test/helpers/actions.ts +++ b/test/helpers/actions.ts @@ -260,13 +260,14 @@ export const redeem = async ( testEnv: TestEnv, revertMessage?: string ) => { + const { aTokenInstance, reserve, userData: userDataBefore, reserveData: reserveDataBefore, } = await getDataBeforeAction(reserveSymbol, user.address, testEnv); - + let amountToRedeem = "0"; if (amount !== "-1") { @@ -930,6 +931,7 @@ const getDataBeforeAction = async ( user: tEthereumAddress, testEnv: TestEnv ): Promise => { + const reserve = await getReserveAddressFromSymbol(reserveSymbol); const {reserveData, userData} = await getContractsData( @@ -937,9 +939,7 @@ const getDataBeforeAction = async ( user, testEnv ); - const aTokenInstance = await getAToken(reserveData.aTokenAddress); - return { reserve, reserveData, diff --git a/test/helpers/utils/helpers.ts b/test/helpers/utils/helpers.ts index 1ef73a51..d67a3165 100644 --- a/test/helpers/utils/helpers.ts +++ b/test/helpers/utils/helpers.ts @@ -16,6 +16,7 @@ export const getReserveData = async ( reserve: tEthereumAddress ): Promise => { const data: any = await pool.getReserveData(reserve); + const configuration: any = await pool.getReserveConfigurationData(reserve); const rateOracle = await getLendingRateOracle(); const rate = (await rateOracle.getMarketBorrowRate(reserve)).toString(); @@ -29,8 +30,15 @@ export const getReserveData = async ( decimals = new BigNumber(await token.decimals()); } + + + const totalLiquidity = new BigNumber(data.availableLiquidity).plus(data.totalBorrowsStable).plus(data.totalBorrowsVariable); + + const utilizationRate = new BigNumber(totalLiquidity.eq(0) ? 0 : new BigNumber(data.totalBorrowsStable).plus(data.totalBorrowsVariable).rayDiv(totalLiquidity)) + return { - totalLiquidity: new BigNumber(data.totalLiquidity), + totalLiquidity, + utilizationRate, availableLiquidity: new BigNumber(data.availableLiquidity), totalBorrowsStable: new BigNumber(data.totalBorrowsStable), totalBorrowsVariable: new BigNumber(data.totalBorrowsVariable), @@ -38,12 +46,11 @@ export const getReserveData = async ( variableBorrowRate: new BigNumber(data.variableBorrowRate), stableBorrowRate: new BigNumber(data.stableBorrowRate), averageStableBorrowRate: new BigNumber(data.averageStableBorrowRate), - utilizationRate: new BigNumber(data.utilizationRate), liquidityIndex: new BigNumber(data.liquidityIndex), variableBorrowIndex: new BigNumber(data.variableBorrowIndex), lastUpdateTimestamp: new BigNumber(data.lastUpdateTimestamp), address: reserve, - aTokenAddress: data.aTokenAddress, + aTokenAddress: configuration.aTokenAddress, symbol, decimals, marketStableRate: new BigNumber(rate), diff --git a/test/scenario.spec.ts b/test/scenario.spec.ts index 181896c7..bf6efe88 100644 --- a/test/scenario.spec.ts +++ b/test/scenario.spec.ts @@ -16,6 +16,7 @@ fs.readdirSync(scenarioFolder).forEach((file) => { if ( ![ "borrow-negatives.json", + "borrow-repay-variable.json", "borrow-repay-stable.json", "deposit.json", "redeem-negatives.json",