Skip to content

Commit 2379869

Browse files
committed
refactor: Clean up TransferAdminRole and AcceptAdminRole scripts for improved readability
1 parent c221857 commit 2379869

File tree

1 file changed

+25
-95
lines changed

1 file changed

+25
-95
lines changed

script/TransferAdminRole.s.sol

Lines changed: 25 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import {IexecLayerZeroBridge} from "../src/bridges/layerZero/IexecLayerZeroBridg
1818
* for all deployed smart contracts on the current chain.
1919
*/
2020
contract TransferAdminRole is Script {
21-
2221
/**
2322
* @notice Transfers the default admin role to a new admin for all contracts on the current chain
2423
* @param newAdmin The address that will become the new default admin
@@ -27,199 +26,130 @@ contract TransferAdminRole is Script {
2726
*/
2827
function run(address newAdmin) external {
2928
require(newAdmin != address(0), "TransferAdminRole: New admin cannot be zero address");
30-
29+
3130
string memory chain = vm.envString("CHAIN");
3231
console.log("Starting admin role transfer on chain:", chain);
3332
console.log("New admin address:", newAdmin);
34-
33+
3534
ConfigLib.CommonConfigParams memory params = ConfigLib.readCommonConfig(chain);
36-
35+
3736
vm.startBroadcast();
38-
39-
// Transfer admin role for contracts deployed on this chain
4037
if (params.approvalRequired) {
41-
// This is a mainnet chain (Ethereum/Sepolia) - has RLCLiquidityUnifier
4238
transferRLCLiquidityUnifierAdmin(params.rlcLiquidityUnifierAddress, newAdmin);
4339
} else {
44-
// This is a Layer 2 chain (Arbitrum/Arbitrum Sepolia) - has RLCCrosschainToken
4540
transferRLCCrosschainTokenAdmin(params.rlcCrosschainTokenAddress, newAdmin);
4641
}
47-
48-
// All chains have IexecLayerZeroBridge
4942
transferIexecLayerZeroBridgeAdmin(params.iexecLayerZeroBridgeAddress, newAdmin);
50-
5143
vm.stopBroadcast();
52-
53-
console.log("Admin role transfer completed successfully on chain:", chain);
5444
}
55-
45+
5646
/**
5747
* @notice Transfers admin role for RLCLiquidityUnifier contract
5848
* @param contractAddress The address of the RLCLiquidityUnifier contract
5949
* @param newAdmin The new admin address
6050
*/
6151
function transferRLCLiquidityUnifierAdmin(address contractAddress, address newAdmin) internal {
62-
require(contractAddress != address(0), "TransferAdminRole: RLCLiquidityUnifier address cannot be zero");
63-
64-
console.log("Transferring admin role for RLCLiquidityUnifier at:", contractAddress);
65-
6652
RLCLiquidityUnifier liquidityUnifier = RLCLiquidityUnifier(contractAddress);
67-
68-
// Get current admin to verify permissions
53+
6954
address currentAdmin = liquidityUnifier.owner();
7055
console.log("Current admin:", currentAdmin);
71-
72-
// Begin the admin transfer process
56+
7357
liquidityUnifier.beginDefaultAdminTransfer(newAdmin);
74-
75-
console.log("Admin transfer initiated for RLCLiquidityUnifier");
76-
console.log("New admin must call acceptDefaultAdminTransfer() to complete the transfer");
58+
console.log("Admin transfer initiated for RLCLiquidityUnifier at:", contractAddress);
7759
}
78-
60+
7961
/**
8062
* @notice Transfers admin role for RLCCrosschainToken contract
8163
* @param contractAddress The address of the RLCCrosschainToken contract
8264
* @param newAdmin The new admin address
8365
*/
8466
function transferRLCCrosschainTokenAdmin(address contractAddress, address newAdmin) internal {
85-
require(contractAddress != address(0), "TransferAdminRole: RLCCrosschainToken address cannot be zero");
86-
87-
console.log("Transferring admin role for RLCCrosschainToken at:", contractAddress);
88-
8967
RLCCrosschainToken crosschainToken = RLCCrosschainToken(contractAddress);
90-
91-
// Get current admin to verify permissions
68+
9269
address currentAdmin = crosschainToken.owner();
9370
console.log("Current admin:", currentAdmin);
94-
95-
// Begin the admin transfer process
71+
9672
crosschainToken.beginDefaultAdminTransfer(newAdmin);
97-
98-
console.log("Admin transfer initiated for RLCCrosschainToken");
99-
console.log("New admin must call acceptDefaultAdminTransfer() to complete the transfer");
73+
console.log("Admin transfer initiated for RLCCrosschainToken at:", contractAddress);
10074
}
101-
75+
10276
/**
10377
* @notice Transfers admin role for IexecLayerZeroBridge contract
10478
* @param contractAddress The address of the IexecLayerZeroBridge contract
10579
* @param newAdmin The new admin address
10680
*/
10781
function transferIexecLayerZeroBridgeAdmin(address contractAddress, address newAdmin) internal {
108-
require(contractAddress != address(0), "TransferAdminRole: IexecLayerZeroBridge address cannot be zero");
109-
110-
console.log("Transferring admin role for IexecLayerZeroBridge at:", contractAddress);
111-
11282
IexecLayerZeroBridge bridge = IexecLayerZeroBridge(contractAddress);
113-
114-
// Get current admin to verify permissions
83+
11584
address currentAdmin = bridge.owner();
11685
console.log("Current admin:", currentAdmin);
117-
118-
// Begin the admin transfer process
86+
11987
bridge.beginDefaultAdminTransfer(newAdmin);
120-
121-
console.log("Admin transfer initiated for IexecLayerZeroBridge");
122-
console.log("New admin must call acceptDefaultAdminTransfer() to complete the transfer");
88+
console.log("Admin transfer initiated for IexecLayerZeroBridge at:", contractAddress);
12389
}
12490
}
12591

12692
/**
12793
* @title AcceptAdminRole
12894
* @dev Script to accept the default admin role transfer for all contracts on the current chain.
12995
* This script should be run by the new admin after the TransferAdminRole script has been executed.
130-
*
131-
* Usage:
132-
* forge script script/TransferAdminRole.s.sol:AcceptAdminRole \
133-
* --rpc-url <RPC_URL> \
134-
* --account <NEW_ADMIN_ACCOUNT> \
135-
* --broadcast \
136-
* -vvv
137-
*
138-
* Environment variables required:
139-
* - CHAIN: The chain identifier (e.g., "ethereum", "arbitrum", "sepolia", "arbitrum_sepolia")
14096
*/
14197
contract AcceptAdminRole is Script {
142-
14398
/**
14499
* @notice Accepts the default admin role transfer for all contracts on the current chain
145100
* @dev This function should be called by the new admin to complete the transfer process
146101
*/
147102
function run() external {
148103
string memory chain = vm.envString("CHAIN");
149104
console.log("Accepting admin role transfer on chain:", chain);
150-
151105
ConfigLib.CommonConfigParams memory params = ConfigLib.readCommonConfig(chain);
152-
106+
153107
vm.startBroadcast();
154-
155-
// Accept admin role for contracts deployed on this chain
156108
if (params.approvalRequired) {
157-
// This is a mainnet chain (Ethereum/Sepolia) - has RLCLiquidityUnifier
158109
acceptRLCLiquidityUnifierAdmin(params.rlcLiquidityUnifierAddress);
159110
} else {
160-
// This is a Layer 2 chain (Arbitrum/Arbitrum Sepolia) - has RLCCrosschainToken
161111
acceptRLCCrosschainTokenAdmin(params.rlcCrosschainTokenAddress);
162112
}
163-
164-
// All chains have IexecLayerZeroBridge
165113
acceptIexecLayerZeroBridgeAdmin(params.iexecLayerZeroBridgeAddress);
166-
167114
vm.stopBroadcast();
168-
169-
console.log("Admin role transfer acceptance completed successfully on chain:", chain);
170115
}
171-
116+
172117
/**
173118
* @notice Accepts admin role for RLCLiquidityUnifier contract
174119
* @param contractAddress The address of the RLCLiquidityUnifier contract
175120
*/
176121
function acceptRLCLiquidityUnifierAdmin(address contractAddress) internal {
177-
require(contractAddress != address(0), "AcceptAdminRole: RLCLiquidityUnifier address cannot be zero");
178-
179122
console.log("Accepting admin role for RLCLiquidityUnifier at:", contractAddress);
180-
123+
181124
RLCLiquidityUnifier liquidityUnifier = RLCLiquidityUnifier(contractAddress);
182-
183-
// Accept the admin transfer
125+
184126
liquidityUnifier.acceptDefaultAdminTransfer();
185-
186-
console.log("Admin role accepted for RLCLiquidityUnifier");
187127
console.log("New admin:", liquidityUnifier.owner());
188128
}
189-
129+
190130
/**
191131
* @notice Accepts admin role for RLCCrosschainToken contract
192132
* @param contractAddress The address of the RLCCrosschainToken contract
193133
*/
194134
function acceptRLCCrosschainTokenAdmin(address contractAddress) internal {
195-
require(contractAddress != address(0), "AcceptAdminRole: RLCCrosschainToken address cannot be zero");
196-
197135
console.log("Accepting admin role for RLCCrosschainToken at:", contractAddress);
198-
136+
199137
RLCCrosschainToken crosschainToken = RLCCrosschainToken(contractAddress);
200-
201-
// Accept the admin transfer
138+
202139
crosschainToken.acceptDefaultAdminTransfer();
203-
204-
console.log("Admin role accepted for RLCCrosschainToken");
205140
console.log("New admin:", crosschainToken.owner());
206141
}
207-
142+
208143
/**
209144
* @notice Accepts admin role for IexecLayerZeroBridge contract
210145
* @param contractAddress The address of the IexecLayerZeroBridge contract
211146
*/
212147
function acceptIexecLayerZeroBridgeAdmin(address contractAddress) internal {
213-
require(contractAddress != address(0), "AcceptAdminRole: IexecLayerZeroBridge address cannot be zero");
214-
215148
console.log("Accepting admin role for IexecLayerZeroBridge at:", contractAddress);
216-
149+
217150
IexecLayerZeroBridge bridge = IexecLayerZeroBridge(contractAddress);
218-
219-
// Accept the admin transfer
151+
220152
bridge.acceptDefaultAdminTransfer();
221-
222-
console.log("Admin role accepted for IexecLayerZeroBridge");
223153
console.log("New admin:", bridge.owner());
224154
}
225155
}

0 commit comments

Comments
 (0)