contracts-bedrock: mainnet protocol versions deployment
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();
```
Showing
Please register or sign in to comment