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,多了两个成员(函数)transfersend。其中的区别为,普通的address不能发送Ether,而address payable可以发送Ether。

而且在0.5.0之后,合约不会从地址类型派生,但是合约可以转换为address类型,然后进行address类型相关的操作。
 
 没办法,solidity版本更新太快,各种新特性加进来,或者大改之前已有的特性,wtf,设计者就不能先把核心的玩法设计好吗?加新特性没意见,但是总是干掉老特性就很恶心了。
 
所以这个错误的解决办法是:
定义一个address payable类型的变量,然后让合约强转化为address类型,再销毁。

 

posted @ 2019-03-07 22:23  CH随风而散  阅读(1053)  评论(0编辑  收藏  举报