以太坊开发错误答疑,(持续更新)

我会在这篇博客里持续更新我在开发过程中所遇到的报错,和解决方案。

1。调用以太坊钱包metamask出现错误,Uncaught Error: Invalid number of arguments to Solidity function

答:合约函数调用时应该与声明参数列表一致,检查调用合约时输入的实参是否都对上了。

 

2.合约编译报错,TypeError: Type address is not implicitly convertible to expected type address payable

这是因为0.5.0以上版本新增了 “payable address” 的概念。

address:保存一个20字节的值(以太坊地址的大小)。

payable address:与address相同,但附加转移和发送。

这种区别背后的想法是,payable address是您可以发送以太币的地址,而address(普通地址)不能发送以太币。

声明方法时,形参要求是payable address类型

下面解决方案代码

    function TransferEther(address payable _addr,uint256 _value) external onlyOwner{
        _addr.transfer(_value);
    }

google 查到地址转换实测无效

address payable recharge_address = address(uint160(0x0000000000000000000000000));

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章