5.
You want to create a timelock contract that allows an admin to schedule a withdrawal only after 1 day from scheduling. Which approach correctly implements this?
contract Timelock {
address public admin;
uint256 public unlockTime;
constructor() {
admin = msg.sender;
}
function scheduleWithdrawal() public {
require(msg.sender == admin, "Not admin");
unlockTime = block.timestamp + 86400; // 1 day
}
function withdraw() public {
require(msg.sender == admin, "Not admin");
require(block.timestamp >= unlockTime, "Too early");
// withdrawal logic
}
}