function endSale() public {
require(msg.sender == admin);
require(tokenContract.transfer(admin, tokenContract.balanceOf(address(this))));
admin.transfer(address(this).balance);
}
}
Run Code Online (Sandbox Code Playgroud)
错误行 ---> admin.transfer(address(this).balance);
有人可以帮我吗,谢谢
Pet*_*jda 16
地址文字具有类型
address而不是address payable. 它们可以address payable通过使用显式转换来转换,例如payable(0xdCad3a6d3569DF655070DEd06cb7A1b2Ccd1D3AF)。
这意味着,从 Solidity 0.8 开始,address就不是payable默认的了。而如果你想给它发送本币,你需要payable先把它投到。
例子:
payable(admin).transfer(address(this).balance);
Run Code Online (Sandbox Code Playgroud)