50自毁合约
selfdestruct是智能合约的默认自带的自毁函数,有两个功能. 1.删除合约 2.强制默认发送主币 首先是调用自毁函数,然后调用测试方法.
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
contract Kill{
constructor()payable {}
// 自毁的时候必须带一个参数,把剩余的主币转到这个参数地址中
// 向合约强制发送主币
function kill() external {
selfdestruct(payable (msg.sender));
}
function testCall() external pure returns (uint){
return 123;
}
}
// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;
contract Kill{
constructor()payable {}
// 自毁的时候必须带一个参数,把剩余的主币转到这个参数地址中
// 向合约强制发送主币
function kill() external {
selfdestruct(payable (msg.sender));
}
function testCall() external pure returns (uint){
return 123;
}
}
contract Helper{
// 获取当前合约的主币余额
function getBalance() external view returns (uint){
return address(this).balance;
}
// 调用Kill合约的自毁功能,然后会把主币转给Help合约
function kill(Kill _kill) external {
_kill.kill();
}
}