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();
    }
}