mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
fix: Update fork-tests for ARC market
This commit is contained in:
parent
c74908cc42
commit
b533f961d2
|
|
@ -38,7 +38,7 @@ contract PermissionedWETHGateway is WETHGateway {
|
||||||
ILendingPool pool = ILendingPool(lendingPool);
|
ILendingPool pool = ILendingPool(lendingPool);
|
||||||
|
|
||||||
require(
|
require(
|
||||||
_isInRoleAndValidPermissionAdmin(msg.sender, DataTypes.Roles.DEPOSITOR, pool),
|
_isInRoleAndValidPermissionAdmin(onBehalfOf, DataTypes.Roles.DEPOSITOR, pool),
|
||||||
Errors.PLP_USER_UNAUTHORIZED
|
Errors.PLP_USER_UNAUTHORIZED
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -60,7 +60,7 @@ contract PermissionedWETHGateway is WETHGateway {
|
||||||
) public payable override {
|
) public payable override {
|
||||||
ILendingPool pool = ILendingPool(lendingPool);
|
ILendingPool pool = ILendingPool(lendingPool);
|
||||||
|
|
||||||
require(_isInRole(msg.sender, DataTypes.Roles.BORROWER, pool), Errors.PLP_USER_UNAUTHORIZED);
|
require(_isInRole(onBehalfOf, DataTypes.Roles.BORROWER, pool), Errors.PLP_USER_UNAUTHORIZED);
|
||||||
super.repayETH(lendingPool, amount, rateMode, onBehalfOf);
|
super.repayETH(lendingPool, amount, rateMode, onBehalfOf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,11 +24,11 @@ import {
|
||||||
MockAggregatorFactory,
|
MockAggregatorFactory,
|
||||||
PermissionedWETHGateway,
|
PermissionedWETHGateway,
|
||||||
PermissionedWETHGatewayFactory,
|
PermissionedWETHGatewayFactory,
|
||||||
|
LendingPoolCollateralManagerFactory,
|
||||||
} from '../../../types';
|
} from '../../../types';
|
||||||
import { ProtocolErrors, RateMode } from '../../../helpers/types';
|
import { ProtocolErrors, RateMode } from '../../../helpers/types';
|
||||||
import { getFirstSigner } from '../../../helpers/contracts-getters';
|
import { getFirstSigner } from '../../../helpers/contracts-getters';
|
||||||
import { convertToCurrencyDecimals, getEthersSigners } from '../../../helpers/contracts-helpers';
|
import { convertToCurrencyDecimals, getEthersSigners } from '../../../helpers/contracts-helpers';
|
||||||
import { JsonRpcSigner } from '@ethersproject/providers';
|
|
||||||
|
|
||||||
const PERMISSIONS = {
|
const PERMISSIONS = {
|
||||||
DEPOSITOR: 0,
|
DEPOSITOR: 0,
|
||||||
|
|
@ -83,11 +83,11 @@ describe('Aave ARC fork test', () => {
|
||||||
let ethers;
|
let ethers;
|
||||||
|
|
||||||
let users: Signer[];
|
let users: Signer[];
|
||||||
let ethHolder: JsonRpcSigner;
|
let ethHolder: Signer;
|
||||||
let usdcHolder: JsonRpcSigner;
|
let usdcHolder: Signer;
|
||||||
let aaveHolder: JsonRpcSigner;
|
let aaveHolder: Signer;
|
||||||
let wbtcHolder: JsonRpcSigner;
|
let wbtcHolder: Signer;
|
||||||
let wethHolder: JsonRpcSigner;
|
let wethHolder: Signer;
|
||||||
let usdc: ERC20;
|
let usdc: ERC20;
|
||||||
let aave: ERC20;
|
let aave: ERC20;
|
||||||
let wbtc: ERC20;
|
let wbtc: ERC20;
|
||||||
|
|
@ -97,11 +97,11 @@ describe('Aave ARC fork test', () => {
|
||||||
let provider: LendingPoolAddressesProvider;
|
let provider: LendingPoolAddressesProvider;
|
||||||
let configurator: LendingPoolConfigurator;
|
let configurator: LendingPoolConfigurator;
|
||||||
let oracle: AaveOracle;
|
let oracle: AaveOracle;
|
||||||
let oracleAdmin: JsonRpcSigner;
|
let oracleAdmin: Signer;
|
||||||
let helpersContract: AaveProtocolDataProvider;
|
let helpersContract: AaveProtocolDataProvider;
|
||||||
let permissionManager: PermissionManager;
|
let permissionManager: PermissionManager;
|
||||||
let permissionManagerAdmin: JsonRpcSigner;
|
let permissionManagerAdmin: Signer;
|
||||||
let emergencyAdmin: JsonRpcSigner;
|
let emergencyAdmin: Signer;
|
||||||
let wethGateway: PermissionedWETHGateway;
|
let wethGateway: PermissionedWETHGateway;
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
|
@ -114,12 +114,7 @@ describe('Aave ARC fork test', () => {
|
||||||
PLP_INVALID_PERMISSION_ADMIN,
|
PLP_INVALID_PERMISSION_ADMIN,
|
||||||
} = ProtocolErrors;
|
} = ProtocolErrors;
|
||||||
|
|
||||||
const topUpWithERC20 = async (
|
const topUpWithERC20 = async (asset: ERC20, holder: Signer, to: string, amount: string) => {
|
||||||
asset: ERC20,
|
|
||||||
holder: JsonRpcSigner,
|
|
||||||
to: string,
|
|
||||||
amount: string
|
|
||||||
) => {
|
|
||||||
await asset
|
await asset
|
||||||
.connect(holder)
|
.connect(holder)
|
||||||
.transfer(to, await convertToCurrencyDecimals(asset.address, amount));
|
.transfer(to, await convertToCurrencyDecimals(asset.address, amount));
|
||||||
|
|
@ -161,10 +156,24 @@ describe('Aave ARC fork test', () => {
|
||||||
users[0]
|
users[0]
|
||||||
);
|
);
|
||||||
permissionManager = await PermissionManagerFactory.connect(config.PermissionManager, users[0]);
|
permissionManager = await PermissionManagerFactory.connect(config.PermissionManager, users[0]);
|
||||||
wethGateway = await PermissionedWETHGatewayFactory.connect(
|
});
|
||||||
config.PermissionedWETHGateway,
|
|
||||||
users[0]
|
it('Deploy the PermissionedWethGateway', async () => {
|
||||||
);
|
wethGateway = await (
|
||||||
|
await new PermissionedWETHGatewayFactory(users[0]).deploy(WETH_ADDRESS)
|
||||||
|
).deployed();
|
||||||
|
await wethGateway.authorizeLendingPool(pool.address);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('Deploy the LendingPoolCollateralManager and register it at LendingPoolAddressesProvider', async () => {
|
||||||
|
const poolCollateralManager = await new LendingPoolCollateralManagerFactory(users[0]).deploy();
|
||||||
|
|
||||||
|
const providerAdminAddress = await provider.owner();
|
||||||
|
await impersonateAccountsHardhat([providerAdminAddress]);
|
||||||
|
const providerAdmin = ethers.provider.getSigner(providerAdminAddress);
|
||||||
|
await provider
|
||||||
|
.connect(providerAdmin)
|
||||||
|
.setLendingPoolCollateralManager(poolCollateralManager.address);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Pool Data', async () => {
|
it('Pool Data', async () => {
|
||||||
|
|
@ -177,7 +186,7 @@ describe('Aave ARC fork test', () => {
|
||||||
console.log(token.symbol, '-', token.tokenAddress);
|
console.log(token.symbol, '-', token.tokenAddress);
|
||||||
reserveData = await helpersContract.getReserveData(token.tokenAddress);
|
reserveData = await helpersContract.getReserveData(token.tokenAddress);
|
||||||
reserveTokens = await helpersContract.getReserveTokensAddresses(token.tokenAddress);
|
reserveTokens = await helpersContract.getReserveTokensAddresses(token.tokenAddress);
|
||||||
console.log(reserveData);
|
// console.log(reserveData);
|
||||||
aToken = await ATokenFactory.connect(reserveTokens.aTokenAddress, users[0]);
|
aToken = await ATokenFactory.connect(reserveTokens.aTokenAddress, users[0]);
|
||||||
console.log('IncentivesController: ', await aToken.getIncentivesController());
|
console.log('IncentivesController: ', await aToken.getIncentivesController());
|
||||||
}
|
}
|
||||||
|
|
@ -233,10 +242,10 @@ describe('Aave ARC fork test', () => {
|
||||||
'0'
|
'0'
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log(await helpersContract.getReserveData(usdc.address));
|
// console.log(await helpersContract.getReserveData(usdc.address));
|
||||||
console.log(
|
// console.log(
|
||||||
await helpersContract.getUserReserveData(usdc.address, await users[2].getAddress())
|
// await helpersContract.getUserReserveData(usdc.address, await users[2].getAddress())
|
||||||
);
|
// );
|
||||||
|
|
||||||
await aave.connect(users[2]).approve(pool.address, MAX_UINT_AMOUNT);
|
await aave.connect(users[2]).approve(pool.address, MAX_UINT_AMOUNT);
|
||||||
await topUpWithERC20(aave, aaveHolder, await users[2].getAddress(), '10');
|
await topUpWithERC20(aave, aaveHolder, await users[2].getAddress(), '10');
|
||||||
|
|
@ -319,9 +328,9 @@ describe('Aave ARC fork test', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Admin User1 seizes the AAVE collateral of User2', async () => {
|
it('Admin User1 seizes the AAVE collateral of User2', async () => {
|
||||||
console.log(
|
// console.log(
|
||||||
await helpersContract.getUserReserveData(aave.address, await users[2].getAddress())
|
// await helpersContract.getUserReserveData(aave.address, await users[2].getAddress())
|
||||||
);
|
// );
|
||||||
const aaveData = await helpersContract.getReserveTokensAddresses(aave.address);
|
const aaveData = await helpersContract.getReserveTokensAddresses(aave.address);
|
||||||
const aToken = await ATokenFactory.connect(aaveData.aTokenAddress, users[0]);
|
const aToken = await ATokenFactory.connect(aaveData.aTokenAddress, users[0]);
|
||||||
console.log('aToken balance of aave: ', await aave.balanceOf(aToken.address));
|
console.log('aToken balance of aave: ', await aave.balanceOf(aToken.address));
|
||||||
|
|
@ -517,30 +526,6 @@ describe('Aave ARC fork test', () => {
|
||||||
.addPermissions([PERMISSIONS.DEPOSITOR], [await users[7].getAddress()]);
|
.addPermissions([PERMISSIONS.DEPOSITOR], [await users[7].getAddress()]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Deploy new PermissionedWethGateway for User6 Admin and give it permissions', async () => {
|
|
||||||
// Deploy and approve
|
|
||||||
const ourWethGateway = (await (
|
|
||||||
await new PermissionedWETHGatewayFactory(await getFirstSigner()).deploy(WETH_ADDRESS)
|
|
||||||
).deployed()) as PermissionedWETHGateway;
|
|
||||||
await ourWethGateway.authorizeLendingPool(pool.address);
|
|
||||||
|
|
||||||
// Permission
|
|
||||||
await permissionManager
|
|
||||||
.connect(users[6])
|
|
||||||
.addPermissions([PERMISSIONS.DEPOSITOR], [ourWethGateway.address]);
|
|
||||||
|
|
||||||
// Deposit
|
|
||||||
await ethHolder.sendTransaction({
|
|
||||||
to: await users[7].getAddress(),
|
|
||||||
value: ethers.utils.parseEther('2'),
|
|
||||||
});
|
|
||||||
await ourWethGateway
|
|
||||||
.connect(users[7])
|
|
||||||
.depositETH(pool.address, await users[7].getAddress(), 0, {
|
|
||||||
value: ethers.utils.parseEther('2'),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('User6 tries to seize the WETH collateral of User2 (which is not under its control) (revert expected)', async () => {
|
it('User6 tries to seize the WETH collateral of User2 (which is not under its control) (revert expected)', async () => {
|
||||||
await expect(
|
await expect(
|
||||||
pool
|
pool
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user