mirror of
				https://github.com/Instadapp/aave-protocol-v2.git
				synced 2024-07-29 21:47:30 +00:00 
			
		
		
		
	Fixes missing param at deployDefaultReserveInterestRateStrategy. Update WalletBalanceProvider to add provider argument. Minor fixes migration script.
This commit is contained in:
		
							parent
							
								
									886f2fbc70
								
							
						
					
					
						commit
						92168f500b
					
				| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
stages:
 | 
			
		||||
  - test
 | 
			
		||||
  - deploy-mainnet-fork
 | 
			
		||||
 | 
			
		||||
test:
 | 
			
		||||
  stage: test
 | 
			
		||||
| 
						 | 
				
			
			@ -12,3 +13,14 @@ test:
 | 
			
		|||
  after_script:
 | 
			
		||||
    - docker-compose -f docker-compose.test.yml run contracts-env npm run ci:clean
 | 
			
		||||
    - docker-compose -f docker-compose.test.yml down
 | 
			
		||||
deploy-mainnet-fork:
 | 
			
		||||
  stage: deploy-mainnet-fork
 | 
			
		||||
  tags:
 | 
			
		||||
    - aave-build-runner
 | 
			
		||||
  before_script:
 | 
			
		||||
    - docker-compose build
 | 
			
		||||
  script:
 | 
			
		||||
    - docker-compose run contracts-env npm aave:main:fork
 | 
			
		||||
  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 ReserveConfiguration for ReserveConfiguration.Map;
 | 
			
		||||
 | 
			
		||||
  ILendingPoolAddressesProvider internal immutable _provider;
 | 
			
		||||
  address constant MOCK_ETH_ADDRESS = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
 | 
			
		||||
 | 
			
		||||
  constructor(ILendingPoolAddressesProvider provider) public {
 | 
			
		||||
    _provider = provider;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
    @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
 | 
			
		||||
    */
 | 
			
		||||
  function getUserWalletBalances(address user)
 | 
			
		||||
  function getUserWalletBalances(address provider, address user)
 | 
			
		||||
    external
 | 
			
		||||
    view
 | 
			
		||||
    returns (address[] memory, uint256[] memory)
 | 
			
		||||
  {
 | 
			
		||||
    ILendingPool pool = ILendingPool(_provider.getLendingPool());
 | 
			
		||||
    ILendingPool pool = ILendingPool(ILendingPoolAddressesProvider(provider).getLendingPool());
 | 
			
		||||
 | 
			
		||||
    address[] memory reserves = pool.getReservesList();
 | 
			
		||||
    address[] memory reservesWithEth = new address[](reserves.length + 1);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -244,14 +244,11 @@ export const deployMockFlashLoanReceiver = async (
 | 
			
		|||
    verify
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
export const deployWalletBalancerProvider = async (
 | 
			
		||||
  addressesProvider: tEthereumAddress,
 | 
			
		||||
  verify?: boolean
 | 
			
		||||
) =>
 | 
			
		||||
export const deployWalletBalancerProvider = async (verify?: boolean) =>
 | 
			
		||||
  withSaveAndVerify(
 | 
			
		||||
    await new WalletBalanceProviderFactory(await getFirstSigner()).deploy(addressesProvider),
 | 
			
		||||
    await new WalletBalanceProviderFactory(await getFirstSigner()).deploy(),
 | 
			
		||||
    eContractid.WalletBalanceProvider,
 | 
			
		||||
    [addressesProvider],
 | 
			
		||||
    [],
 | 
			
		||||
    verify
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -288,7 +285,7 @@ export const deployMintableDelegationERC20 = async (
 | 
			
		|||
    verify
 | 
			
		||||
  );
 | 
			
		||||
export const deployDefaultReserveInterestRateStrategy = async (
 | 
			
		||||
  args: [tEthereumAddress, string, string, string, string, string],
 | 
			
		||||
  args: [tEthereumAddress, string, string, string, string, string, string],
 | 
			
		||||
  verify: boolean
 | 
			
		||||
) =>
 | 
			
		||||
  withSaveAndVerify(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
import {task} from 'hardhat/config';
 | 
			
		||||
import { task } from 'hardhat/config';
 | 
			
		||||
import {
 | 
			
		||||
  deployLendingPoolCollateralManager,
 | 
			
		||||
  deployMockFlashLoanReceiver,
 | 
			
		||||
| 
						 | 
				
			
			@ -13,22 +13,25 @@ import {
 | 
			
		|||
  loadPoolConfig,
 | 
			
		||||
} from '../../helpers/configuration';
 | 
			
		||||
 | 
			
		||||
import {tEthereumAddress, AavePools, eContractid} from '../../helpers/types';
 | 
			
		||||
import {waitForTx, filterMapBy} from '../../helpers/misc-utils';
 | 
			
		||||
import { tEthereumAddress, AavePools, eContractid } from '../../helpers/types';
 | 
			
		||||
import { waitForTx, filterMapBy } from '../../helpers/misc-utils';
 | 
			
		||||
import {
 | 
			
		||||
  enableReservesToBorrowByHelper,
 | 
			
		||||
  enableReservesAsCollateralByHelper,
 | 
			
		||||
  initReservesByHelper,
 | 
			
		||||
} from '../../helpers/init-helpers';
 | 
			
		||||
import {getAllTokenAddresses} from '../../helpers/mock-helpers';
 | 
			
		||||
import {ZERO_ADDRESS} from '../../helpers/constants';
 | 
			
		||||
import {getAllMockedTokens, getLendingPoolAddressesProvider} from '../../helpers/contracts-getters';
 | 
			
		||||
import {insertContractAddressInDb} from '../../helpers/contracts-helpers';
 | 
			
		||||
import { getAllTokenAddresses } from '../../helpers/mock-helpers';
 | 
			
		||||
import { ZERO_ADDRESS } from '../../helpers/constants';
 | 
			
		||||
import {
 | 
			
		||||
  getAllMockedTokens,
 | 
			
		||||
  getLendingPoolAddressesProvider,
 | 
			
		||||
} from '../../helpers/contracts-getters';
 | 
			
		||||
import { insertContractAddressInDb } from '../../helpers/contracts-helpers';
 | 
			
		||||
 | 
			
		||||
task('dev:initialize-lending-pool', 'Initialize lending pool configuration.')
 | 
			
		||||
  .addFlag('verify', 'Verify contracts at Etherscan')
 | 
			
		||||
  .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');
 | 
			
		||||
    const poolConfig = loadPoolConfig(pool);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -37,7 +40,7 @@ task('dev:initialize-lending-pool', 'Initialize lending pool configuration.')
 | 
			
		|||
 | 
			
		||||
    const addressesProvider = await getLendingPoolAddressesProvider();
 | 
			
		||||
 | 
			
		||||
    const protoPoolReservesAddresses = <{[symbol: string]: tEthereumAddress}>(
 | 
			
		||||
    const protoPoolReservesAddresses = <{ [symbol: string]: tEthereumAddress }>(
 | 
			
		||||
      filterMapBy(allTokenAddresses, (key: string) => !key.includes('UNI_'))
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -75,7 +78,7 @@ task('dev:initialize-lending-pool', 'Initialize lending pool configuration.')
 | 
			
		|||
      mockFlashLoanReceiver.address
 | 
			
		||||
    );
 | 
			
		||||
 | 
			
		||||
    await deployWalletBalancerProvider(addressesProvider.address, verify);
 | 
			
		||||
    await deployWalletBalancerProvider(verify);
 | 
			
		||||
 | 
			
		||||
    await insertContractAddressInDb(eContractid.AaveProtocolDataProvider, testHelpers.address);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,13 +1,12 @@
 | 
			
		|||
import {task} from 'hardhat/config';
 | 
			
		||||
import {deployWalletBalancerProvider} from '../../helpers/contracts-deployments';
 | 
			
		||||
import { task } from 'hardhat/config';
 | 
			
		||||
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.')
 | 
			
		||||
  .addFlag('verify', 'Verify contracts at Etherscan')
 | 
			
		||||
  .setAction(async ({verify}, localBRE) => {
 | 
			
		||||
  .setAction(async ({ verify }, localBRE) => {
 | 
			
		||||
    await localBRE.run('set-DRE');
 | 
			
		||||
 | 
			
		||||
    const addressesProvider = await getLendingPoolAddressesProvider();
 | 
			
		||||
    await deployWalletBalancerProvider(addressesProvider.address, verify);
 | 
			
		||||
    await deployWalletBalancerProvider(verify);
 | 
			
		||||
  });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,11 +1,11 @@
 | 
			
		|||
import {task} from 'hardhat/config';
 | 
			
		||||
import {deployAaveProtocolDataProvider} from '../../helpers/contracts-deployments';
 | 
			
		||||
import {exit} from 'process';
 | 
			
		||||
import {getLendingPoolAddressesProvider} from '../../helpers/contracts-getters';
 | 
			
		||||
import { task } from 'hardhat/config';
 | 
			
		||||
import { deployAaveProtocolDataProvider } from '../../helpers/contracts-deployments';
 | 
			
		||||
import { exit } from 'process';
 | 
			
		||||
import { getLendingPoolAddressesProvider } from '../../helpers/contracts-getters';
 | 
			
		||||
 | 
			
		||||
task('full:data-provider', 'Initialize lending pool configuration.')
 | 
			
		||||
  .addFlag('verify', 'Verify contracts at Etherscan')
 | 
			
		||||
  .setAction(async ({verify}, localBRE) => {
 | 
			
		||||
  .setAction(async ({ verify }, localBRE) => {
 | 
			
		||||
    try {
 | 
			
		||||
      await localBRE.run('set-DRE');
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,38 +1,41 @@
 | 
			
		|||
import {task} from 'hardhat/config';
 | 
			
		||||
import {getParamPerNetwork} from '../../helpers/contracts-helpers';
 | 
			
		||||
import { task } from 'hardhat/config';
 | 
			
		||||
import { getParamPerNetwork } from '../../helpers/contracts-helpers';
 | 
			
		||||
import {
 | 
			
		||||
  deployLendingPoolCollateralManager,
 | 
			
		||||
  deployWalletBalancerProvider,
 | 
			
		||||
  deployAaveProtocolDataProvider,
 | 
			
		||||
  deployWETHGateway,
 | 
			
		||||
} from '../../helpers/contracts-deployments';
 | 
			
		||||
import {loadPoolConfig, ConfigNames, getWethAddress} from '../../helpers/configuration';
 | 
			
		||||
import {eEthereumNetwork, ICommonConfiguration} from '../../helpers/types';
 | 
			
		||||
import {waitForTx} from '../../helpers/misc-utils';
 | 
			
		||||
import { loadPoolConfig, ConfigNames, getWethAddress } from '../../helpers/configuration';
 | 
			
		||||
import { eEthereumNetwork, ICommonConfiguration } from '../../helpers/types';
 | 
			
		||||
import { waitForTx } from '../../helpers/misc-utils';
 | 
			
		||||
import {
 | 
			
		||||
  initReservesByHelper,
 | 
			
		||||
  enableReservesToBorrowByHelper,
 | 
			
		||||
  enableReservesAsCollateralByHelper,
 | 
			
		||||
} from '../../helpers/init-helpers';
 | 
			
		||||
import {exit} from 'process';
 | 
			
		||||
import {getLendingPoolAddressesProvider} from '../../helpers/contracts-getters';
 | 
			
		||||
import {ZERO_ADDRESS} from '../../helpers/constants';
 | 
			
		||||
import { exit } from 'process';
 | 
			
		||||
import {
 | 
			
		||||
  getAaveProtocolDataProvider,
 | 
			
		||||
  getLendingPoolAddressesProvider,
 | 
			
		||||
} from '../../helpers/contracts-getters';
 | 
			
		||||
import { ZERO_ADDRESS } from '../../helpers/constants';
 | 
			
		||||
 | 
			
		||||
task('full:initialize-lending-pool', 'Initialize lending pool configuration.')
 | 
			
		||||
  .addFlag('verify', 'Verify contracts at Etherscan')
 | 
			
		||||
  .addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`)
 | 
			
		||||
  .setAction(async ({verify, pool}, localBRE) => {
 | 
			
		||||
  .setAction(async ({ verify, pool }, localBRE) => {
 | 
			
		||||
    try {
 | 
			
		||||
      await localBRE.run('set-DRE');
 | 
			
		||||
      const network = <eEthereumNetwork>localBRE.network.name;
 | 
			
		||||
      const poolConfig = loadPoolConfig(pool);
 | 
			
		||||
      const {ReserveAssets, ReservesConfig} = poolConfig as ICommonConfiguration;
 | 
			
		||||
      const { ReserveAssets, ReservesConfig } = poolConfig as ICommonConfiguration;
 | 
			
		||||
 | 
			
		||||
      const reserveAssets = await getParamPerNetwork(ReserveAssets, network);
 | 
			
		||||
 | 
			
		||||
      const addressesProvider = await getLendingPoolAddressesProvider();
 | 
			
		||||
 | 
			
		||||
      const testHelpers = await deployAaveProtocolDataProvider(addressesProvider.address, verify);
 | 
			
		||||
      const testHelpers = await getAaveProtocolDataProvider();
 | 
			
		||||
 | 
			
		||||
      const admin = await addressesProvider.getPoolAdmin();
 | 
			
		||||
      if (!reserveAssets) {
 | 
			
		||||
| 
						 | 
				
			
			@ -48,7 +51,7 @@ task('full:initialize-lending-pool', 'Initialize lending pool configuration.')
 | 
			
		|||
        await addressesProvider.setLendingPoolCollateralManager(collateralManager.address)
 | 
			
		||||
      );
 | 
			
		||||
 | 
			
		||||
      await deployWalletBalancerProvider(addressesProvider.address, verify);
 | 
			
		||||
      await deployWalletBalancerProvider(verify);
 | 
			
		||||
 | 
			
		||||
      const wethAddress = await getWethAddress(poolConfig);
 | 
			
		||||
      const lendingPoolAddress = await addressesProvider.getLendingPool();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -226,7 +226,7 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => {
 | 
			
		|||
  const mockFlashLoanReceiver = await deployMockFlashLoanReceiver(addressesProvider.address);
 | 
			
		||||
  await insertContractAddressInDb(eContractid.MockFlashLoanReceiver, mockFlashLoanReceiver.address);
 | 
			
		||||
 | 
			
		||||
  await deployWalletBalancerProvider(addressesProvider.address);
 | 
			
		||||
  await deployWalletBalancerProvider();
 | 
			
		||||
 | 
			
		||||
  await deployWETHGateway([mockTokens.WETH.address, lendingPoolAddress]);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user