From 0b1aa8b6a77d9aa1fb084fb1bc7fbf7473063bcf Mon Sep 17 00:00:00 2001 From: David Date: Wed, 28 Feb 2024 15:19:37 +0800 Subject: [PATCH] feat(protocol): update `AuthorizeTaikoForMultihop` script (#16147) --- .../script/AuthorizeTaikoForMultihop.s.sol | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/protocol/script/AuthorizeTaikoForMultihop.s.sol b/packages/protocol/script/AuthorizeTaikoForMultihop.s.sol index aace75025ae..515905a0601 100644 --- a/packages/protocol/script/AuthorizeTaikoForMultihop.s.sol +++ b/packages/protocol/script/AuthorizeTaikoForMultihop.s.sol @@ -21,6 +21,7 @@ import "../contracts/signal/SignalService.sol"; contract AuthorizeTaikoForMultihop is DeployCapability { uint256 public privateKey = vm.envUint("PRIVATE_KEY"); address public sharedSignalService = vm.envAddress("SHARED_SIGNAL_SERVICE"); + address public timelockAddress = vm.envAddress("TIMELOCK_ADDRESS"); address[] public taikoContracts = vm.envAddress("TAIKO_CONTRACTS", ","); // TaikoL1 and TaikoL2 // contracts @@ -29,10 +30,17 @@ contract AuthorizeTaikoForMultihop is DeployCapability { vm.startBroadcast(privateKey); - SignalService signalService = SignalService(sharedSignalService); - for (uint256 i; i < taikoContracts.length; ++i) { - signalService.authorize(taikoContracts[i], true); + bytes32 salt = bytes32(block.timestamp); + + bytes memory payload = + abi.encodeCall(SignalService.authorize, (taikoContracts[i], true)); + + TaikoTimelockController timelock = TaikoTimelockController(payable(timelockAddress)); + + timelock.schedule(sharedSignalService, 0, payload, bytes32(0), salt, 0); + + timelock.execute(sharedSignalService, 0, payload, bytes32(0), salt); } vm.stopBroadcast();