From 845f848a760acdfe1f0be5929151cf6f0c7d32c9 Mon Sep 17 00:00:00 2001 From: Ryan Collins Date: Wed, 17 Dec 2025 16:16:17 -0500 Subject: [PATCH 1/2] fix: proxy admin owner env on arbitrum --- contracts/script/deploy/DeployArbT1ProxyAdmin.s.sol | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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); + } + } } From be31fdbba91cb676b3dd55d96e6ed4201057ccf2 Mon Sep 17 00:00:00 2001 From: Ryan Collins Date: Wed, 17 Dec 2025 16:17:29 -0500 Subject: [PATCH 2/2] fix: proxy admin owner env on base --- contracts/script/deploy/DeployBaseT1ProxyAdmin.s.sol | 10 ++++++++++ 1 file changed, 10 insertions(+) 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); + } + } }