• 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
.changeset Loading commit data...
.circleci Loading commit data...
.github Loading commit data...
.husky Loading commit data...
.vscode Loading commit data...
bedrock-devnet Loading commit data...
cannon Loading commit data...
docs Loading commit data...
endpoint-monitor Loading commit data...
indexer Loading commit data...
op-batcher Loading commit data...
op-bindings Loading commit data...
op-bootnode Loading commit data...
op-chain-ops Loading commit data...
op-challenger Loading commit data...
op-e2e Loading commit data...
op-exporter Loading commit data...
op-heartbeat Loading commit data...
op-node Loading commit data...
op-preimage Loading commit data...
op-program Loading commit data...
op-proposer Loading commit data...
op-service Loading commit data...
op-ufm Loading commit data...
op-wheel Loading commit data...
ops Loading commit data...
ops-bedrock Loading commit data...
packages Loading commit data...
patches Loading commit data...
proxyd Loading commit data...
specs Loading commit data...
ufm-test-services Loading commit data...
.abigenrc Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.eslintrc.js Loading commit data...
.foundryrc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.markdownlint.json Loading commit data...
.npmrc Loading commit data...
.nvmrc Loading commit data...
.pnpmfile.cjs Loading commit data...
.prettierrc.js Loading commit data...
.semgrepignore Loading commit data...
.snyk Loading commit data...
CITATION.cff Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
SECURITY.md Loading commit data...
cloudbuild.yaml Loading commit data...
codecov.yml Loading commit data...
go.mod Loading commit data...
go.sum Loading commit data...
nx.json Loading commit data...
package.json Loading commit data...
pnpm-lock.yaml Loading commit data...
pnpm-workspace.yaml Loading commit data...
tsconfig.json Loading commit data...