diff --git a/contracts/contracts/interfaces/ITimelockController.sol b/contracts/contracts/interfaces/ITimelockController.sol index f0b11f59d1..349c50dfbd 100644 --- a/contracts/contracts/interfaces/ITimelockController.sol +++ b/contracts/contracts/interfaces/ITimelockController.sol @@ -45,4 +45,6 @@ interface ITimelockController { function isOperation(bytes32 opHash) external view returns (bool); function getMinDelay() external view returns (uint256); + + function updateDelay(uint256 newDelay) external; } diff --git a/contracts/deploy/base/016_timelock_2d_delay.js b/contracts/deploy/base/016_timelock_2d_delay.js new file mode 100644 index 0000000000..135cf811db --- /dev/null +++ b/contracts/deploy/base/016_timelock_2d_delay.js @@ -0,0 +1,25 @@ +const { deployOnBaseWithGuardian } = require("../../utils/deploy-l2"); +const addresses = require("../../utils/addresses"); + +module.exports = deployOnBaseWithGuardian( + { + deployName: "016_timelock_2d_delay", + }, + async ({ ethers }) => { + const cTimelock = await ethers.getContractAt( + "ITimelockController", + addresses.base.timelock + ); + + return { + actions: [ + { + // 1. Update delay to 2d + contract: cTimelock, + signature: "updateDelay(uint256)", + args: [2 * 24 * 60 * 60], + }, + ], + }; + } +); diff --git a/contracts/deployments/base/.migrations.json b/contracts/deployments/base/.migrations.json index c5b75bf050..a09301d7a7 100644 --- a/contracts/deployments/base/.migrations.json +++ b/contracts/deployments/base/.migrations.json @@ -13,5 +13,6 @@ "012_claim_governance": 1725984162, "013_revoke_admin_role": 1727204761, "014_fixed_rate_dripper": 1727409372, - "015_harvester": 1727718319 + "015_harvester": 1727718319, + "016_timelock_2d_delay": 1727845272 } \ No newline at end of file