diff --git a/contracts/script/deploy/DeployArbT1ProxyAdmin.s.sol b/contracts/script/deploy/DeployArbT1ProxyAdmin.s.sol index 40d454f5..8059eb19 100644 --- a/contracts/script/deploy/DeployArbT1ProxyAdmin.s.sol +++ b/contracts/script/deploy/DeployArbT1ProxyAdmin.s.sol @@ -5,6 +5,7 @@ pragma solidity ^0.8.25; import { Script } from "forge-std/Script.sol"; import { ProxyAdmin } from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; import { TransparentUpgradeableProxy } from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; import { DeploymentUtils } from "../lib/DeploymentUtils.sol"; @@ -18,10 +19,21 @@ contract DeployArbT1ProxyAdmin is Script, DeploymentUtils { startBroadcastWithDeployerKeyIfItExists(); deployProxyAdmin(); + transferProxyAdminOwnershipIfNeeded(); + + vm.stopBroadcast(); } function deployProxyAdmin() internal { proxyAdmin = new ProxyAdmin(); logAddress("ARB_T1_PROXY_ADMIN_ADDR", address(proxyAdmin)); } + + function transferProxyAdminOwnershipIfNeeded() internal { + address proxyAdminOwner = vm.envOr("ARB_T1_PROXY_ADMIN_OWNER_ADDR", address(0)); + if (proxyAdminOwner != address(0)) { + Ownable(address(proxyAdmin)).transferOwnership(proxyAdminOwner); + logAddress("ARB_T1_PROXY_ADMIN_OWNER_ADDR", proxyAdminOwner); + } + } } diff --git a/contracts/script/deploy/DeployBaseT1ProxyAdmin.s.sol b/contracts/script/deploy/DeployBaseT1ProxyAdmin.s.sol index 74ad9bc6..2e3c8d09 100644 --- a/contracts/script/deploy/DeployBaseT1ProxyAdmin.s.sol +++ b/contracts/script/deploy/DeployBaseT1ProxyAdmin.s.sol @@ -5,6 +5,7 @@ pragma solidity ^0.8.25; import { Script } from "forge-std/Script.sol"; import { ProxyAdmin } from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; import { TransparentUpgradeableProxy } from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; +import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol"; import { DeploymentUtils } from "../lib/DeploymentUtils.sol"; @@ -17,6 +18,7 @@ contract DeployBaseT1ProxyAdmin is Script, DeploymentUtils { startBroadcastWithDeployerKeyIfItExists(); deployProxyAdmin(); + transferProxyAdminOwnershipIfNeeded(); vm.stopBroadcast(); } @@ -25,4 +27,12 @@ contract DeployBaseT1ProxyAdmin is Script, DeploymentUtils { proxyAdmin = new ProxyAdmin(); logAddress("BASE_T1_PROXY_ADMIN_ADDR", address(proxyAdmin)); } + + function transferProxyAdminOwnershipIfNeeded() internal { + address proxyAdminOwner = vm.envOr("BASE_T1_PROXY_ADMIN_OWNER_ADDR", address(0)); + if (proxyAdminOwner != address(0)) { + Ownable(address(proxyAdmin)).transferOwnership(proxyAdminOwner); + logAddress("BASE_T1_PROXY_ADMIN_OWNER_ADDR", proxyAdminOwner); + } + } }