Skip to main content

自毁合约

自毁函数: selfdestruct的两个功能

  • 删除合约
  • 将合约剩余的 ETH 强制发送给接收者(如果接收者是一个合约,即使没有实现receive()fallback()方法,也会被强制接收主币)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;

contract Kill {
function kill() external {
selfdestruct(payable(msg.sender));
}

// 测试自毁后,合约是否还能被继续调用
function testCall() external pure returns (uint) {
return 123;
}
}

contract Helper {
// 该合约没有实现 receive 和 fallback 测试Kill自毁后是否可以接收主币
function getBalance() external view returns(uint) {
return address(this).balance;
}

function kill(Kill _kill) external {
_kill.kill();
}
}