// SPDX-License-Identifier: UNLICENSEDpragmasolidity ^0.8.9;// Uncomment this line to use console.log// import "hardhat/console.sol";contractLock{
uintpublic unlockTime;
addresspayablepublic owner;
eventWithdrawal(uint amount, uint when);
constructor(uint _unlockTime) payable{
require(
block.timestamp< _unlockTime,
"Unlock time should be in the future"
);
unlockTime = _unlockTime;
owner =payable(msg.sender);
}
functionwithdraw() public{
// Uncomment this line, and the import of "hardhat/console.sol", to print a log in your terminal// console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp);require(block.timestamp>= unlockTime, "You can't withdraw yet");
require(msg.sender== owner, "You aren't the owner");
emit Withdrawal(address(this).balance, block.timestamp);
owner.transfer(address(this).balance);
}
}