mirror of
				https://github.com/Instadapp/aave-protocol-v2.git
				synced 2024-07-29 21:47:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {task} from 'hardhat/config';
 | 
						|
import {
 | 
						|
  deployATokensAndRatesHelper,
 | 
						|
  deployLendingPool,
 | 
						|
  deployLendingPoolConfigurator,
 | 
						|
  deployStableAndVariableTokensHelper,
 | 
						|
} from '../../helpers/contracts-deployments';
 | 
						|
import {eContractid} from '../../helpers/types';
 | 
						|
import {waitForTx} from '../../helpers/misc-utils';
 | 
						|
import {
 | 
						|
  getLendingPoolAddressesProvider,
 | 
						|
  getLendingPool,
 | 
						|
  getLendingPoolConfiguratorProxy,
 | 
						|
} from '../../helpers/contracts-getters';
 | 
						|
import {insertContractAddressInDb} from '../../helpers/contracts-helpers';
 | 
						|
 | 
						|
task('dev:deploy-lending-pool', 'Deploy lending pool for dev enviroment')
 | 
						|
  .addFlag('verify', 'Verify contracts at Etherscan')
 | 
						|
  .setAction(async ({verify}, localBRE) => {
 | 
						|
    await localBRE.run('set-DRE');
 | 
						|
 | 
						|
    const addressesProvider = await getLendingPoolAddressesProvider();
 | 
						|
 | 
						|
    const lendingPoolImpl = await deployLendingPool(verify);
 | 
						|
 | 
						|
    // Set lending pool impl to Address Provider
 | 
						|
    await waitForTx(await addressesProvider.setLendingPoolImpl(lendingPoolImpl.address));
 | 
						|
 | 
						|
    const address = await addressesProvider.getLendingPool();
 | 
						|
    const lendingPoolProxy = await getLendingPool(address);
 | 
						|
 | 
						|
    await insertContractAddressInDb(eContractid.LendingPool, lendingPoolProxy.address);
 | 
						|
 | 
						|
    const lendingPoolConfiguratorImpl = await deployLendingPoolConfigurator(verify);
 | 
						|
 | 
						|
    // Set lending pool conf impl to Address Provider
 | 
						|
    await waitForTx(
 | 
						|
      await addressesProvider.setLendingPoolConfiguratorImpl(lendingPoolConfiguratorImpl.address)
 | 
						|
    );
 | 
						|
 | 
						|
    const lendingPoolConfiguratorProxy = await getLendingPoolConfiguratorProxy(
 | 
						|
      await addressesProvider.getLendingPoolConfigurator()
 | 
						|
    );
 | 
						|
    await insertContractAddressInDb(
 | 
						|
      eContractid.LendingPoolConfigurator,
 | 
						|
      lendingPoolConfiguratorProxy.address
 | 
						|
    );
 | 
						|
 | 
						|
    // Deploy deployment helpers
 | 
						|
    await deployStableAndVariableTokensHelper(
 | 
						|
      [lendingPoolProxy.address, addressesProvider.address],
 | 
						|
      verify
 | 
						|
    );
 | 
						|
    await deployATokensAndRatesHelper(
 | 
						|
      [lendingPoolProxy.address, addressesProvider.address, lendingPoolConfiguratorProxy.address],
 | 
						|
      verify
 | 
						|
    );
 | 
						|
  });
 |