Skip to content

Commit

Permalink
feat(deploy): deploy implementations before proxies (#12114)
Browse files Browse the repository at this point in the history
* feat(deploy): deploy implementations before proxies

This change prepares for the OPCM integration by deploying the implementations before the proxies.
`intializeImplementations()` was renamed to `initializeProxies()` which is more accurate.

Also the ASR's implementation was unnecessarily initialized with a proxy address for a constructor
argument.

* test(deploy): Move ASR impl deployment to deployProxies

It must be deployed per chain because it is not MCP ready.

* test(deploy): Rename deploy functions to correspond to OPCM
  • Loading branch information
maurelian authored Sep 26, 2024
1 parent d42fc0b commit 300d9f3
Showing 1 changed file with 12 additions and 9 deletions.
21 changes: 12 additions & 9 deletions packages/contracts-bedrock/scripts/deploy/Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -398,9 +398,10 @@ contract Deploy is Deployer {
mustGetAddress("AddressManager");
mustGetAddress("ProxyAdmin");

deployProxies();
deployImplementations();
initializeImplementations();

deployOpChain();
initializeOpChain();

setAlphabetFaultGameImplementation({ _allowUpgrade: false });
setFastFaultGameImplementation({ _allowUpgrade: false });
Expand All @@ -411,9 +412,9 @@ contract Deploy is Deployer {
transferDelayedWETHOwnership();
}

/// @notice Deploy all of the proxies
function deployProxies() public {
console.log("Deploying proxies");
/// @notice Deploy all of the OP Chain specific contracts
function deployOpChain() public {
console.log("Deploying OP Chain contracts");

deployERC1967Proxy("OptimismPortalProxy");
deployERC1967Proxy("SystemConfigProxy");
Expand All @@ -431,6 +432,8 @@ contract Deploy is Deployer {
deployERC1967Proxy("PermissionedDelayedWETHProxy");
deployERC1967Proxy("AnchorStateRegistryProxy");

deployAnchorStateRegistry();

transferAddressManagerOwnership(); // to the ProxyAdmin
}

Expand All @@ -450,12 +453,12 @@ contract Deploy is Deployer {
deployDelayedWETH();
deployPreimageOracle();
deployMips();
deployAnchorStateRegistry();
}

/// @notice Initialize all of the implementations
function initializeImplementations() public {
console.log("Initializing implementations");
/// @notice Initialize all of the proxies in an OP Chain by upgrading to the correct proxy and calling the
/// initialize function
function initializeOpChain() public {
console.log("Initializing Op Chain proxies");
// Selectively initialize either the original OptimismPortal or the new OptimismPortal2. Since this will upgrade
// the proxy, we cannot initialize both.
if (cfg.useFaultProofs()) {
Expand Down

0 comments on commit 300d9f3

Please sign in to comment.