From e309c145e2b9dd9ce5b46557fd8e4202a56b4ebe Mon Sep 17 00:00:00 2001 From: Ramesh Nair Date: Sun, 20 Aug 2023 22:05:44 +0100 Subject: [PATCH] feat: initialization call --- src/cli/deploy.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/cli/deploy.ts b/src/cli/deploy.ts index 1c7df52..e311636 100644 --- a/src/cli/deploy.ts +++ b/src/cli/deploy.ts @@ -105,13 +105,23 @@ export const command = () => info('No new facets need to be deployed.') } + let initContractAddress: string = ethers.ZeroAddress + let initData: string = '0x' + if (isNewDeployment && ctx.config.diamond.init) { - info(`Deploying initialization contract...`) + info(`Deploying initialization contract: ${ctx.config.diamond.init} ...`) + const init = await deployContract(ctx, ctx.config.diamond.init, signer) + if (!init.contract.interface.getFunction('init')) { + error(`Initialization contract does not have an init() function.`) + } + initContractAddress = init.address + initData = init.contract.interface.getFunction('init')!.selector + info(` Initialization contract deployed at: ${initContractAddress}`) } info('Calling diamondCut() on the proxy...') const cuts = getFinalizedFacetCuts(changes.namedCuts, facetContracts) - await execContractMethod(proxyInterface, 'diamondCut', [cuts, ethers.ZeroAddress, '0x']) + await execContractMethod(proxyInterface, 'diamondCut', [cuts, initContractAddress, initData]) } info(`Saving deployment info...`)