mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
Merge branch '154-updates-for-walletbalalanceprovider-contract' into 'master'
Resolve "Updates for WalletBalalanceProvider contract" Closes #154 See merge request aave-tech/protocol-v2!175
This commit is contained in:
commit
8ccb92670b
|
@ -1,8 +1,8 @@
|
||||||
stages:
|
stages:
|
||||||
- test
|
- checks
|
||||||
|
|
||||||
test:
|
test:
|
||||||
stage: test
|
stage: checks
|
||||||
tags:
|
tags:
|
||||||
- aave-build-runner
|
- aave-build-runner
|
||||||
before_script:
|
before_script:
|
||||||
|
@ -12,3 +12,15 @@ test:
|
||||||
after_script:
|
after_script:
|
||||||
- docker-compose -f docker-compose.test.yml run contracts-env npm run ci:clean
|
- docker-compose -f docker-compose.test.yml run contracts-env npm run ci:clean
|
||||||
- docker-compose -f docker-compose.test.yml down
|
- docker-compose -f docker-compose.test.yml down
|
||||||
|
|
||||||
|
deploy-mainnet-fork:
|
||||||
|
stage: checks
|
||||||
|
tags:
|
||||||
|
- aave-build-runner
|
||||||
|
before_script:
|
||||||
|
- docker-compose -f docker-compose.test.yml build
|
||||||
|
script:
|
||||||
|
- docker-compose -f docker-compose.test.yml run contracts-env npm run aave:fork:main
|
||||||
|
after_script:
|
||||||
|
- docker-compose -f docker-compose.test.yml run contracts-env npm run ci:clean
|
||||||
|
- docker-compose -f docker-compose.test.yml down
|
||||||
|
|
|
@ -24,13 +24,8 @@ contract WalletBalanceProvider {
|
||||||
using SafeERC20 for IERC20;
|
using SafeERC20 for IERC20;
|
||||||
using ReserveConfiguration for ReserveConfiguration.Map;
|
using ReserveConfiguration for ReserveConfiguration.Map;
|
||||||
|
|
||||||
ILendingPoolAddressesProvider internal immutable _provider;
|
|
||||||
address constant MOCK_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
|
address constant MOCK_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
|
||||||
|
|
||||||
constructor(ILendingPoolAddressesProvider provider) public {
|
|
||||||
_provider = provider;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@dev Fallback function, don't accept any ETH
|
@dev Fallback function, don't accept any ETH
|
||||||
**/
|
**/
|
||||||
|
@ -80,12 +75,12 @@ contract WalletBalanceProvider {
|
||||||
/**
|
/**
|
||||||
@dev provides balances of user wallet for all reserves available on the pool
|
@dev provides balances of user wallet for all reserves available on the pool
|
||||||
*/
|
*/
|
||||||
function getUserWalletBalances(address user)
|
function getUserWalletBalances(address provider, address user)
|
||||||
external
|
external
|
||||||
view
|
view
|
||||||
returns (address[] memory, uint256[] memory)
|
returns (address[] memory, uint256[] memory)
|
||||||
{
|
{
|
||||||
ILendingPool pool = ILendingPool(_provider.getLendingPool());
|
ILendingPool pool = ILendingPool(ILendingPoolAddressesProvider(provider).getLendingPool());
|
||||||
|
|
||||||
address[] memory reserves = pool.getReservesList();
|
address[] memory reserves = pool.getReservesList();
|
||||||
address[] memory reservesWithEth = new address[](reserves.length + 1);
|
address[] memory reservesWithEth = new address[](reserves.length + 1);
|
||||||
|
|
|
@ -4,4 +4,6 @@ services:
|
||||||
build:
|
build:
|
||||||
context: ./
|
context: ./
|
||||||
dockerfile: ./Dockerfile_test
|
dockerfile: ./Dockerfile_test
|
||||||
command: npm run test
|
environment:
|
||||||
|
- MNEMONIC
|
||||||
|
- ALCHEMY_KEY
|
||||||
|
|
|
@ -244,14 +244,11 @@ export const deployMockFlashLoanReceiver = async (
|
||||||
verify
|
verify
|
||||||
);
|
);
|
||||||
|
|
||||||
export const deployWalletBalancerProvider = async (
|
export const deployWalletBalancerProvider = async (verify?: boolean) =>
|
||||||
addressesProvider: tEthereumAddress,
|
|
||||||
verify?: boolean
|
|
||||||
) =>
|
|
||||||
withSaveAndVerify(
|
withSaveAndVerify(
|
||||||
await new WalletBalanceProviderFactory(await getFirstSigner()).deploy(addressesProvider),
|
await new WalletBalanceProviderFactory(await getFirstSigner()).deploy(),
|
||||||
eContractid.WalletBalanceProvider,
|
eContractid.WalletBalanceProvider,
|
||||||
[addressesProvider],
|
[],
|
||||||
verify
|
verify
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import {task} from 'hardhat/config';
|
import { task } from 'hardhat/config';
|
||||||
import {
|
import {
|
||||||
deployLendingPoolCollateralManager,
|
deployLendingPoolCollateralManager,
|
||||||
deployMockFlashLoanReceiver,
|
deployMockFlashLoanReceiver,
|
||||||
|
@ -13,22 +13,25 @@ import {
|
||||||
loadPoolConfig,
|
loadPoolConfig,
|
||||||
} from '../../helpers/configuration';
|
} from '../../helpers/configuration';
|
||||||
|
|
||||||
import {tEthereumAddress, AavePools, eContractid} from '../../helpers/types';
|
import { tEthereumAddress, AavePools, eContractid } from '../../helpers/types';
|
||||||
import {waitForTx, filterMapBy} from '../../helpers/misc-utils';
|
import { waitForTx, filterMapBy } from '../../helpers/misc-utils';
|
||||||
import {
|
import {
|
||||||
enableReservesToBorrowByHelper,
|
enableReservesToBorrowByHelper,
|
||||||
enableReservesAsCollateralByHelper,
|
enableReservesAsCollateralByHelper,
|
||||||
initReservesByHelper,
|
initReservesByHelper,
|
||||||
} from '../../helpers/init-helpers';
|
} from '../../helpers/init-helpers';
|
||||||
import {getAllTokenAddresses} from '../../helpers/mock-helpers';
|
import { getAllTokenAddresses } from '../../helpers/mock-helpers';
|
||||||
import {ZERO_ADDRESS} from '../../helpers/constants';
|
import { ZERO_ADDRESS } from '../../helpers/constants';
|
||||||
import {getAllMockedTokens, getLendingPoolAddressesProvider} from '../../helpers/contracts-getters';
|
import {
|
||||||
import {insertContractAddressInDb} from '../../helpers/contracts-helpers';
|
getAllMockedTokens,
|
||||||
|
getLendingPoolAddressesProvider,
|
||||||
|
} from '../../helpers/contracts-getters';
|
||||||
|
import { insertContractAddressInDb } from '../../helpers/contracts-helpers';
|
||||||
|
|
||||||
task('dev:initialize-lending-pool', 'Initialize lending pool configuration.')
|
task('dev:initialize-lending-pool', 'Initialize lending pool configuration.')
|
||||||
.addFlag('verify', 'Verify contracts at Etherscan')
|
.addFlag('verify', 'Verify contracts at Etherscan')
|
||||||
.addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`)
|
.addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`)
|
||||||
.setAction(async ({verify, pool}, localBRE) => {
|
.setAction(async ({ verify, pool }, localBRE) => {
|
||||||
await localBRE.run('set-DRE');
|
await localBRE.run('set-DRE');
|
||||||
const poolConfig = loadPoolConfig(pool);
|
const poolConfig = loadPoolConfig(pool);
|
||||||
|
|
||||||
|
@ -37,7 +40,7 @@ task('dev:initialize-lending-pool', 'Initialize lending pool configuration.')
|
||||||
|
|
||||||
const addressesProvider = await getLendingPoolAddressesProvider();
|
const addressesProvider = await getLendingPoolAddressesProvider();
|
||||||
|
|
||||||
const protoPoolReservesAddresses = <{[symbol: string]: tEthereumAddress}>(
|
const protoPoolReservesAddresses = <{ [symbol: string]: tEthereumAddress }>(
|
||||||
filterMapBy(allTokenAddresses, (key: string) => !key.includes('UNI_'))
|
filterMapBy(allTokenAddresses, (key: string) => !key.includes('UNI_'))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -75,7 +78,7 @@ task('dev:initialize-lending-pool', 'Initialize lending pool configuration.')
|
||||||
mockFlashLoanReceiver.address
|
mockFlashLoanReceiver.address
|
||||||
);
|
);
|
||||||
|
|
||||||
await deployWalletBalancerProvider(addressesProvider.address, verify);
|
await deployWalletBalancerProvider(verify);
|
||||||
|
|
||||||
await insertContractAddressInDb(eContractid.AaveProtocolDataProvider, testHelpers.address);
|
await insertContractAddressInDb(eContractid.AaveProtocolDataProvider, testHelpers.address);
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
import {task} from 'hardhat/config';
|
import { task } from 'hardhat/config';
|
||||||
import {deployWalletBalancerProvider} from '../../helpers/contracts-deployments';
|
import { deployWalletBalancerProvider } from '../../helpers/contracts-deployments';
|
||||||
|
|
||||||
import {getLendingPoolAddressesProvider} from '../../helpers/contracts-getters';
|
import { getLendingPoolAddressesProvider } from '../../helpers/contracts-getters';
|
||||||
|
|
||||||
task('dev:wallet-balance-provider', 'Initialize lending pool configuration.')
|
task('dev:wallet-balance-provider', 'Initialize lending pool configuration.')
|
||||||
.addFlag('verify', 'Verify contracts at Etherscan')
|
.addFlag('verify', 'Verify contracts at Etherscan')
|
||||||
.setAction(async ({verify}, localBRE) => {
|
.setAction(async ({ verify }, localBRE) => {
|
||||||
await localBRE.run('set-DRE');
|
await localBRE.run('set-DRE');
|
||||||
|
|
||||||
const addressesProvider = await getLendingPoolAddressesProvider();
|
await deployWalletBalancerProvider(verify);
|
||||||
await deployWalletBalancerProvider(addressesProvider.address, verify);
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import {task} from 'hardhat/config';
|
import { task } from 'hardhat/config';
|
||||||
import {deployAaveProtocolDataProvider} from '../../helpers/contracts-deployments';
|
import { deployAaveProtocolDataProvider } from '../../helpers/contracts-deployments';
|
||||||
import {exit} from 'process';
|
import { exit } from 'process';
|
||||||
import {getLendingPoolAddressesProvider} from '../../helpers/contracts-getters';
|
import { getLendingPoolAddressesProvider } from '../../helpers/contracts-getters';
|
||||||
|
|
||||||
task('full:data-provider', 'Initialize lending pool configuration.')
|
task('full:data-provider', 'Initialize lending pool configuration.')
|
||||||
.addFlag('verify', 'Verify contracts at Etherscan')
|
.addFlag('verify', 'Verify contracts at Etherscan')
|
||||||
.setAction(async ({verify}, localBRE) => {
|
.setAction(async ({ verify }, localBRE) => {
|
||||||
try {
|
try {
|
||||||
await localBRE.run('set-DRE');
|
await localBRE.run('set-DRE');
|
||||||
|
|
|
@ -1,38 +1,41 @@
|
||||||
import {task} from 'hardhat/config';
|
import { task } from 'hardhat/config';
|
||||||
import {getParamPerNetwork} from '../../helpers/contracts-helpers';
|
import { getParamPerNetwork } from '../../helpers/contracts-helpers';
|
||||||
import {
|
import {
|
||||||
deployLendingPoolCollateralManager,
|
deployLendingPoolCollateralManager,
|
||||||
deployWalletBalancerProvider,
|
deployWalletBalancerProvider,
|
||||||
deployAaveProtocolDataProvider,
|
deployAaveProtocolDataProvider,
|
||||||
deployWETHGateway,
|
deployWETHGateway,
|
||||||
} from '../../helpers/contracts-deployments';
|
} from '../../helpers/contracts-deployments';
|
||||||
import {loadPoolConfig, ConfigNames, getWethAddress} from '../../helpers/configuration';
|
import { loadPoolConfig, ConfigNames, getWethAddress } from '../../helpers/configuration';
|
||||||
import {eEthereumNetwork, ICommonConfiguration} from '../../helpers/types';
|
import { eEthereumNetwork, ICommonConfiguration } from '../../helpers/types';
|
||||||
import {waitForTx} from '../../helpers/misc-utils';
|
import { waitForTx } from '../../helpers/misc-utils';
|
||||||
import {
|
import {
|
||||||
initReservesByHelper,
|
initReservesByHelper,
|
||||||
enableReservesToBorrowByHelper,
|
enableReservesToBorrowByHelper,
|
||||||
enableReservesAsCollateralByHelper,
|
enableReservesAsCollateralByHelper,
|
||||||
} from '../../helpers/init-helpers';
|
} from '../../helpers/init-helpers';
|
||||||
import {exit} from 'process';
|
import { exit } from 'process';
|
||||||
import {getLendingPoolAddressesProvider} from '../../helpers/contracts-getters';
|
import {
|
||||||
import {ZERO_ADDRESS} from '../../helpers/constants';
|
getAaveProtocolDataProvider,
|
||||||
|
getLendingPoolAddressesProvider,
|
||||||
|
} from '../../helpers/contracts-getters';
|
||||||
|
import { ZERO_ADDRESS } from '../../helpers/constants';
|
||||||
|
|
||||||
task('full:initialize-lending-pool', 'Initialize lending pool configuration.')
|
task('full:initialize-lending-pool', 'Initialize lending pool configuration.')
|
||||||
.addFlag('verify', 'Verify contracts at Etherscan')
|
.addFlag('verify', 'Verify contracts at Etherscan')
|
||||||
.addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`)
|
.addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`)
|
||||||
.setAction(async ({verify, pool}, localBRE) => {
|
.setAction(async ({ verify, pool }, localBRE) => {
|
||||||
try {
|
try {
|
||||||
await localBRE.run('set-DRE');
|
await localBRE.run('set-DRE');
|
||||||
const network = <eEthereumNetwork>localBRE.network.name;
|
const network = <eEthereumNetwork>localBRE.network.name;
|
||||||
const poolConfig = loadPoolConfig(pool);
|
const poolConfig = loadPoolConfig(pool);
|
||||||
const {ReserveAssets, ReservesConfig} = poolConfig as ICommonConfiguration;
|
const { ReserveAssets, ReservesConfig } = poolConfig as ICommonConfiguration;
|
||||||
|
|
||||||
const reserveAssets = await getParamPerNetwork(ReserveAssets, network);
|
const reserveAssets = await getParamPerNetwork(ReserveAssets, network);
|
||||||
|
|
||||||
const addressesProvider = await getLendingPoolAddressesProvider();
|
const addressesProvider = await getLendingPoolAddressesProvider();
|
||||||
|
|
||||||
const testHelpers = await deployAaveProtocolDataProvider(addressesProvider.address, verify);
|
const testHelpers = await getAaveProtocolDataProvider();
|
||||||
|
|
||||||
const admin = await addressesProvider.getPoolAdmin();
|
const admin = await addressesProvider.getPoolAdmin();
|
||||||
if (!reserveAssets) {
|
if (!reserveAssets) {
|
||||||
|
@ -48,7 +51,7 @@ task('full:initialize-lending-pool', 'Initialize lending pool configuration.')
|
||||||
await addressesProvider.setLendingPoolCollateralManager(collateralManager.address)
|
await addressesProvider.setLendingPoolCollateralManager(collateralManager.address)
|
||||||
);
|
);
|
||||||
|
|
||||||
await deployWalletBalancerProvider(addressesProvider.address, verify);
|
await deployWalletBalancerProvider(verify);
|
||||||
|
|
||||||
const wethAddress = await getWethAddress(poolConfig);
|
const wethAddress = await getWethAddress(poolConfig);
|
||||||
const lendingPoolAddress = await addressesProvider.getLendingPool();
|
const lendingPoolAddress = await addressesProvider.getLendingPool();
|
||||||
|
|
|
@ -226,7 +226,7 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => {
|
||||||
const mockFlashLoanReceiver = await deployMockFlashLoanReceiver(addressesProvider.address);
|
const mockFlashLoanReceiver = await deployMockFlashLoanReceiver(addressesProvider.address);
|
||||||
await insertContractAddressInDb(eContractid.MockFlashLoanReceiver, mockFlashLoanReceiver.address);
|
await insertContractAddressInDb(eContractid.MockFlashLoanReceiver, mockFlashLoanReceiver.address);
|
||||||
|
|
||||||
await deployWalletBalancerProvider(addressesProvider.address);
|
await deployWalletBalancerProvider();
|
||||||
|
|
||||||
await deployWETHGateway([mockTokens.WETH.address, lendingPoolAddress]);
|
await deployWETHGateway([mockTokens.WETH.address, lendingPoolAddress]);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user