From cbd55437247011d25255f423bed6d3f272ffec68 Mon Sep 17 00:00:00 2001 From: Duncan Townsend Date: Wed, 8 Jul 2026 18:15:28 +0200 Subject: [PATCH 1/5] Replace Will with Chris as a signer on the upgrade Safe{Wallet} --- script/SafeConfig.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/SafeConfig.sol b/script/SafeConfig.sol index 6ef789442..1edff5a40 100644 --- a/script/SafeConfig.sol +++ b/script/SafeConfig.sol @@ -108,7 +108,7 @@ library SafeConfig { function getUpgradeSafeSigners() internal view returns (address[] memory) { address[] memory result = new address[](4); - result[0] = 0x257619B7155d247e43c8B6d90C8c17278Ae481F0; // Will + result[0] = 0x203393921A2E778fCB8619470ee0Cf399b6Ab4b2; // Chris result[1] = 0x3C3a57b5CC72933E312e0b0bEBe031F72d47c30B; // Duncan if (_isMainnet()) { result[2] = 0x5ee2a00F8f01d099451844Af7F894f26A57FCbF2; // Amir From 80da27668f049cdae90f9b4cc9e6144b3c7c27eb Mon Sep 17 00:00:00 2001 From: Duncan Townsend Date: Thu, 13 Aug 2026 01:03:18 +0200 Subject: [PATCH 2/5] Add Phil as a signer on the upgrade Safe{Wallet} and configure it as 3-of-5 --- script/SafeConfig.sol | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/script/SafeConfig.sol b/script/SafeConfig.sol index 1edff5a40..a87a843e2 100644 --- a/script/SafeConfig.sol +++ b/script/SafeConfig.sol @@ -104,10 +104,10 @@ library SafeConfig { revert(string.concat("Unrecognized chainid ", ItoA.itoa(block.chainid))); } - uint256 internal constant upgradeSafeThreshold = 2; + uint256 internal constant upgradeSafeThreshold = 3; function getUpgradeSafeSigners() internal view returns (address[] memory) { - address[] memory result = new address[](4); + address[] memory result = new address[](5); result[0] = 0x203393921A2E778fCB8619470ee0Cf399b6Ab4b2; // Chris result[1] = 0x3C3a57b5CC72933E312e0b0bEBe031F72d47c30B; // Duncan if (_isMainnet()) { @@ -117,6 +117,7 @@ library SafeConfig { result[2] = 0x9E4496adE6096b000C856219C27734F4f89A5210; // Amir result[3] = 0x5A9d540A07a96a2bfC8a8dfd638359778C72526f; // Jacob } + result[4] = 0xc3445Ec2E12Ba39E74922bD33559028985164bb4; // Phil return result; } From 6af3fd112297844c9b8f30704c9f44357b44aca9 Mon Sep 17 00:00:00 2001 From: Duncan Townsend Date: Thu, 13 Aug 2026 12:02:34 +0200 Subject: [PATCH 3/5] Robinhood is no longer private, so the explorer can be in the public config --- chain_config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chain_config.json b/chain_config.json index 855f1bae0..2a5afa5f2 100644 --- a/chain_config.json +++ b/chain_config.json @@ -802,6 +802,7 @@ "allowanceHolder": "0x0000000000001fF3684f28c67538d4D072C22734", "forwardingMultiCall": "0x00000000000000CF9E3c5A26621af382fA17f24f", "crossChainFactory": "0x00000000000000304861c3aDfb80dd5ebeC96325" - } + }, + "blockscoutApi": "https://robinhoodchain.blockscout.com/api" } } From 3b879cdfc7dcf53dbd548050752ba29010489dc1 Mon Sep 17 00:00:00 2001 From: Duncan Townsend Date: Thu, 13 Aug 2026 12:02:50 +0200 Subject: [PATCH 4/5] Add timeout for Duncan's slow signing to `deploy_safeguard.sh` --- sh/deploy_safeguard.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sh/deploy_safeguard.sh b/sh/deploy_safeguard.sh index 2504af3a6..c3e63bd7f 100755 --- a/sh/deploy_safeguard.sh +++ b/sh/deploy_safeguard.sh @@ -324,7 +324,7 @@ fi declare -r -a maybe_broadcast declare -r submit_rpc -cast "${maybe_broadcast[@]}" --from "$signer" --rpc-url "$submit_rpc" --gas-price $gas_price --gas-limit $gas_limit "${extra_flags[@]}" "${zk_tx_flags[@]}" "${deploy_args[@]}" +cast --timeout 300 --rpc-timeout 300 --confirmations 10 "${maybe_broadcast[@]}" --from "$signer" --rpc-url "$submit_rpc" --gas-price $gas_price --gas-limit $gas_limit "${extra_flags[@]}" "${zk_tx_flags[@]}" "${deploy_args[@]}" if [[ ${BROADCAST-no} = [Yy]es ]] ; then sleep 60 From 9df8a5522a7239e3e71d033a2e117c627f087c61 Mon Sep 17 00:00:00 2001 From: Duncan Townsend Date: Thu, 13 Aug 2026 18:40:35 +0200 Subject: [PATCH 5/5] Fix `cast send` command line --- sh/deploy_safeguard.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sh/deploy_safeguard.sh b/sh/deploy_safeguard.sh index 3d537d83d..c69fbc6db 100755 --- a/sh/deploy_safeguard.sh +++ b/sh/deploy_safeguard.sh @@ -299,7 +299,7 @@ declare -r -i gas_limit declare -a maybe_broadcast=() declare submit_rpc if [[ ${BROADCAST-no} = [Yy]es ]] ; then - maybe_broadcast+=(send --chain $chainid) + maybe_broadcast+=(send --timeout 300 --rpc-timeout 300 --confirmations 10 --chain $chainid) if [[ $wallet_type = 'frame' ]] ; then submit_rpc='http://127.0.0.1:1248' maybe_broadcast+=(--unlocked) @@ -418,7 +418,7 @@ if [[ ${BROADCAST-no} = [Yy]es && $era_vm = [Tt]rue ]] ; then cast publish --rpc-url "$rpc_url" "$raw_tx" else - cast --timeout 300 --rpc-timeout 300 --confirmations 10 "${maybe_broadcast[@]}" --from "$signer" --rpc-url "$submit_rpc" --gas-price $gas_price --gas-limit $gas_limit "${extra_flags[@]}" "${zk_tx_flags[@]}" "${deploy_args[@]}" + cast "${maybe_broadcast[@]}" --from "$signer" --rpc-url "$submit_rpc" --gas-price $gas_price --gas-limit $gas_limit "${extra_flags[@]}" "${zk_tx_flags[@]}" "${deploy_args[@]}" fi if [[ ${BROADCAST-no} = [Yy]es ]] ; then