Commit 8f2a1f8c authored by Mark Tyneway's avatar Mark Tyneway

contracts-bedrock: modularize deploy script

The way to deploy a new OP Stack chain that is part
of the superchain will be through
the `deployProxies` function in this script.
parent 40d9266a
...@@ -64,31 +64,8 @@ contract Deploy is Deployer { ...@@ -64,31 +64,8 @@ contract Deploy is Deployer {
function run() public { function run() public {
console.log("Deploying L1 system"); console.log("Deploying L1 system");
deployAddressManager(); deployProxies();
deployProxyAdmin(); deployImplementations();
deployOptimismPortalProxy();
deployL2OutputOracleProxy();
deploySystemConfigProxy();
deployL1StandardBridgeProxy();
deployL1CrossDomainMessengerProxy();
deployOptimismMintableERC20FactoryProxy();
deployL1ERC721BridgeProxy();
deployDisputeGameFactoryProxy();
deployOptimismPortal();
deployL1CrossDomainMessenger();
deployL2OutputOracle();
deployOptimismMintableERC20Factory();
deploySystemConfig();
deployL1StandardBridge();
deployL1ERC721Bridge();
deployDisputeGameFactory();
deployBlockOracle();
deployPreimageOracle();
deployMips();
transferAddressManagerOwnership();
initializeDisputeGameFactory(); initializeDisputeGameFactory();
initializeSystemConfig(); initializeSystemConfig();
...@@ -120,6 +97,38 @@ contract Deploy is Deployer { ...@@ -120,6 +97,38 @@ contract Deploy is Deployer {
} }
} }
/// @notice Deploy all of the proxies
function deployProxies() public {
deployAddressManager();
deployProxyAdmin();
deployOptimismPortalProxy();
deployL2OutputOracleProxy();
deploySystemConfigProxy();
deployL1StandardBridgeProxy();
deployL1CrossDomainMessengerProxy();
deployOptimismMintableERC20FactoryProxy();
deployL1ERC721BridgeProxy();
deployDisputeGameFactoryProxy();
transferAddressManagerOwnership();
}
/// @notice Deploy all of the implementations
function deployImplementations() public {
deployOptimismPortal();
deployL1CrossDomainMessenger();
deployL2OutputOracle();
deployOptimismMintableERC20Factory();
deploySystemConfig();
deployL1StandardBridge();
deployL1ERC721Bridge();
deployDisputeGameFactory();
deployBlockOracle();
deployPreimageOracle();
deployMips();
}
/// @notice Deploy the AddressManager /// @notice Deploy the AddressManager
function deployAddressManager() broadcast() public returns (address) { function deployAddressManager() broadcast() public returns (address) {
AddressManager manager = new AddressManager(); AddressManager manager = new AddressManager();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment