diff --git a/scripts/hardhat/deploy/deployBridge.ts b/scripts/hardhat/deploy/deployBridge.ts index 5958556..a8fc1b5 100644 --- a/scripts/hardhat/deploy/deployBridge.ts +++ b/scripts/hardhat/deploy/deployBridge.ts @@ -44,6 +44,18 @@ const main = async () => { [l1CrossDomainMessengerAddr], ); + const portalReceipt = await l1Provider.getTransactionReceipt( + lightLinkPortal.deployTx!.hash, + ); + + // Deploy SystemConfig contract + log("Deploying SystemConfig to L1..."); + const systemConfig = await proxyDeployAndInitialize( + l1Deployer, + await ethers.getContractFactory("SystemConfig"), + [portalReceipt?.blockNumber, lightLinkPortal.address], + ); + log("Deployment complete!"); // Log deployment addresses @@ -62,6 +74,11 @@ const main = async () => { `"${L1StandardBridgeDeployment.address}"`, `"(impl ${L1StandardBridgeDeployment.implementationAddress})"`, ); + log( + " SystemConfig:", + `"${systemConfig.address}"`, + `"(impl ${systemConfig.implementationAddress})"`, + ); }; main() diff --git a/scripts/hardhat/lib/deploy.ts b/scripts/hardhat/lib/deploy.ts index 9bdf08e..f092378 100644 --- a/scripts/hardhat/lib/deploy.ts +++ b/scripts/hardhat/lib/deploy.ts @@ -22,6 +22,8 @@ export const proxyDeployAndInitialize = async ( .deploy(signer.address)) as any; await proxy.waitForDeployment(); + const deployTx = await proxy.deploymentTransaction(); + await proxy.upgradeToAndCall( implementationAddress, implementation.interface.encodeFunctionData("initialize", args), @@ -34,6 +36,7 @@ export const proxyDeployAndInitialize = async ( address: proxyAddress, implementation, implementationAddress, + deployTx, }; };