import { task } from 'hardhat/config'; import { eAvalancheNetwork, eContractid, eEthereumNetwork, eNetwork, ePolygonNetwork, } from '../../helpers/types'; import { deployUiPoolDataProvider } from '../../helpers/contracts-deployments'; import { exit } from 'process'; task(`deploy-${eContractid.UiPoolDataProvider}`, `Deploys the UiPoolDataProvider contract`) .addFlag('verify', 'Verify UiPoolDataProvider contract via Etherscan API.') .setAction(async ({ verify }, localBRE) => { await localBRE.run('set-DRE'); if (!localBRE.network.config.chainId) { throw new Error('INVALID_CHAIN_ID'); } const network = localBRE.network.name; const addressesByNetwork: { [key: string]: { incentivesController: string; aaveOracle: string }; } = { [eEthereumNetwork.kovan]: { incentivesController: '0x0000000000000000000000000000000000000000', aaveOracle: '0x8fb777d67e9945e2c01936e319057f9d41d559e6', }, [eEthereumNetwork.main]: { incentivesController: '0xd784927Ff2f95ba542BfC824c8a8a98F3495f6b5', aaveOracle: '0xa50ba011c48153de246e5192c8f9258a2ba79ca9', }, [ePolygonNetwork.matic]: { incentivesController: '0x357D51124f59836DeD84c8a1730D72B749d8BC23', aaveOracle: '0x0229F777B0fAb107F9591a41d5F02E4e98dB6f2d', }, [ePolygonNetwork.mumbai]: { incentivesController: '0xd41aE58e803Edf4304334acCE4DC4Ec34a63C644', aaveOracle: '0xC365C653f7229894F93994CD0b30947Ab69Ff1D5', }, [eAvalancheNetwork.fuji]: { incentivesController: '0xa1EF206fb9a8D8186157FC817fCddcC47727ED55', aaveOracle: '0xD217DdD9f0Af84644dEFe84a0b634621D4617a29', }, [eAvalancheNetwork.avalanche]: { incentivesController: '0x01D83Fe6A10D2f2B7AF17034343746188272cAc9', aaveOracle: '0xdC336Cd4769f4cC7E9d726DA53e6d3fC710cEB89', }, }; const supportedNetworks = Object.keys(addressesByNetwork); if (!supportedNetworks.includes(network)) { console.error( `[task][error] Network "${network}" not supported, please use one of: ${supportedNetworks.join()}` ); exit(2); } const oracle = addressesByNetwork[network].aaveOracle; const incentivesController = addressesByNetwork[network].incentivesController; console.log(`\n- UiPoolDataProvider deployment`); const uiPoolDataProvider = await deployUiPoolDataProvider( [incentivesController, oracle], verify ); console.log('UiPoolDataProvider deployed at:', uiPoolDataProvider.address); console.log(`\tFinished UiPoolDataProvider deployment`); });