solidity 错误记录一下
remix错误:browser/Untitled.sol:24:24: TypeError: Invalid type for argument in function call. Invalid implicit conversion from address to address payable requested.
selfdestruct(owner);
address
:一个地址长度为20字节,也就是uint160
(以太坊地址也是20字节)。
address payable
:版本0.5.0
开始,引入的新地址,应付地址,也是20字节。
address payable
相比address
,多了两个成员(函数)transfer
和send
。其中的区别为,普通的address
不能发送Ether,而address payable
可以发送Ether。
而且在0.5.0之后,合约不会从地址类型派生,但是合约可以转换为address类型,然后进行address类型相关的操作。
没办法,solidity版本更新太快,各种新特性加进来,或者大改之前已有的特性,wtf,设计者就不能先把核心的玩法设计好吗?加新特性没意见,但是总是干掉老特性就很恶心了。
所以这个错误的解决办法是:
定义一个address payable类型的变量,然后让合约强转化为address类型,再销毁。