Description:
Smart contract deployed on Ethereum.
Blockchain: Ethereum
Source Code: View Code On The Blockchain
Solidity Source Code:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract Destructible {
address public owner;
uint256 public destructionDelay = 1 days; // Safety delay
constructor() {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner, "Not owner");
_;
}
// Request destruction (two-step pattern for safety)
mapping(address => uint256) public destructionRequests;
function requestDestruction() external onlyOwner {
require(destructionRequests[msg.sender] == 0, "Request already pending");
destructionRequests[msg.sender] = block.timestamp + destructionDelay;
emit DestructionRequested(msg.sender, destructionRequests[msg.sender]);
}
function executeDestruction() external onlyOwner {
require(
destructionRequests[msg.sender] != 0 &&
block.timestamp >= destructionRequests[msg.sender],
"No valid request"
);
selfdestruct(payable(owner)); // Sends remaining ETH to owner
}
event DestructionRequested(address indexed requester, uint256 executionTime);
}
Submitted on: 2025-10-13 21:12:24
Comments
Log in to comment.
No comments yet.