在以下代码中,当我在此代码中声明selfdestruct()函数时,出现以下错误。
错误是:
Invalid implicit conversion from address to address payable requested.
pragma solidity >=0.4.22 <0.6.0;
contract owned{
address owner;
constructor() public{
owner = msg.sender;
}
modifier onlyOwner{
require(owner == msg.sender);
_;
}
}
contract mortal is owned{
function close()public onlyOwner{
selfdestruct(owner);
}
}
答案 0 :(得分:0)
假设您使用的是Solidity编译器0.5.x版,selfdestruct
接受address payable
,但是您传入的是address
。
您可以通过更改owner
的类型来解决此问题:
address payable owner;
但是您的pragma指令是一个疯狂的范围……无法使此代码与0.4.x和0.5.x编译器一起工作。这些版本(包括该版本)之间有很多重大更改。