• Mark Tyneway's avatar
    contracts-bedrock: mainnet protocol versions deployment · 5dee68b4
    Mark Tyneway authored
    Deploy `ProtocolVersions` to mainnet and configure.
    
    ```bash
    cast admin $(jq -r .address < deployments/mainnet/ProtocolVersionsProxy.json)
    0x543ba4aadbab8f9025686bd03993043599c6fb04
    
    cast implementation $(jq -r .address < deployments/mainnet/ProtocolVersionsProxy.json)
    0x42f0bd8313ad456a38061308857b2383fe2c72a0
    
    jq -r .address < deployments/mainnet/ProtocolVersions.json
    0x42F0bD8313ad456A38061308857b2383fe2c72a0
    
    ```
    
    The following diff to the deploy script was used to get around
    needing to do everything via multisig transactions:
    
    ```
    diff --git a/packages/contracts-bedrock/scripts/Deploy.s.sol b/packages/contracts-bedrock/scripts/Deploy.s.sol
    index b65ea490f..6dee882eb 100644
    --- a/packages/contracts-bedrock/scripts/Deploy.s.sol
    +++ b/packages/contracts-bedrock/scripts/Deploy.s.sol
    @@ -353,8 +353,8 @@ contract Deploy is Deployer {
         }
    
         /// @notice Deploy the ProtocolVersionsProxy
    -    function deployProtocolVersionsProxy() public onlyTestnetOrDevnet broadcast returns (address addr_) {
    -        address proxyAdmin = mustGetAddress("ProxyAdmin");
    +    function deployProtocolVersionsProxy() public broadcast returns (address addr_) {
    +        address proxyAdmin = 0x354F3f4ECdcA5E0A7acE08d71348cdC1Dab48960;
             Proxy proxy = new Proxy({
                 _admin: proxyAdmin
             });
    @@ -458,7 +458,7 @@ contract Deploy is Deployer {
         }
    
         /// @notice Deploy the ProtocolVersions
    -    function deployProtocolVersions() public onlyTestnetOrDevnet broadcast returns (address addr_) {
    +    function deployProtocolVersions() public broadcast returns (address addr_) {
             ProtocolVersions versions = new ProtocolVersions{ salt: implSalt() }();
             save("ProtocolVersions", address(versions));
             console.log("ProtocolVersions deployed at %s", address(versions));
    @@ -861,7 +861,7 @@ contract Deploy is Deployer {
             require(portal.paused() == false);
         }
    
    -    function initializeProtocolVersions() public onlyTestnetOrDevnet broadcast {
    +    function initializeProtocolVersions() public broadcast {
             address protocolVersionsProxy = mustGetAddress("ProtocolVersionsProxy");
             address protocolVersions = mustGetAddress("ProtocolVersions");
    
    @@ -869,6 +869,19 @@ contract Deploy is Deployer {
             uint256 requiredProtocolVersion = cfg.requiredProtocolVersion();
             uint256 recommendedProtocolVersion = cfg.recommendedProtocolVersion();
    
    +       Proxy(payable(protocolVersionsProxy)).upgradeToAndCall(
    +           protocolVersions,
    +            abi.encodeCall(
    +                ProtocolVersions.initialize,
    +                (
    +                    finalSystemOwner,
    +                    ProtocolVersion.wrap(requiredProtocolVersion),
    +                    ProtocolVersion.wrap(recommendedProtocolVersion)
    +                )
    +            )
    +        );
    +
    +        /*
             _upgradeAndCallViaSafe({
                 _proxy: payable(protocolVersionsProxy),
                 _implementation: protocolVersions,
    @@ -881,6 +894,7 @@ contract Deploy is Deployer {
                     )
                     )
             });
    +        */
    
             ProtocolVersions versions = ProtocolVersions(protocolVersionsProxy);
             string memory version = versions.version();
    
    ```
    5dee68b4
Name
Last commit
Last update
..
solcInputs Loading commit data...
.chainId Loading commit data...
AddressManager.json Loading commit data...
AssetReceiver.json Loading commit data...
CheckBalanceHigh.json Loading commit data...
CheckBalanceLow.json Loading commit data...
CheckGelatoLow.json Loading commit data...
CheckTrue.json Loading commit data...
Drippie.json Loading commit data...
L1CrossDomainMessenger.json Loading commit data...
L1CrossDomainMessengerProxy.json Loading commit data...
L1ERC721Bridge.json Loading commit data...
L1ERC721BridgeProxy.json Loading commit data...
L1StandardBridge.json Loading commit data...
L1StandardBridgeProxy.json Loading commit data...
L2OutputOracle.json Loading commit data...
L2OutputOracleProxy.json Loading commit data...
OptimismMintableERC20Factory.json Loading commit data...
OptimismMintableERC20FactoryProxy.json Loading commit data...
OptimismPortal.json Loading commit data...
OptimismPortalProxy.json Loading commit data...
PortalSender.json Loading commit data...
ProtocolVersions.json Loading commit data...
ProtocolVersionsProxy.json Loading commit data...
ProxyAdmin.json Loading commit data...
SystemConfig.json Loading commit data...
SystemConfigProxy.json Loading commit data...
SystemDictator.json Loading commit data...
SystemDictatorProxy.json Loading commit data...
TeleportrWithdrawer.json Loading commit data...