美文网首页
Solidity 合约转账的三种方式

Solidity 合约转账的三种方式

作者: 黄靠谱 | 来源:发表于2019-01-13 10:21 被阅读35次

参考

http://blog.51cto.com/13784902/2321573

原理

address.transfer()
address.send()
address.call.value(转账的金额).gas(转账最大允许支付的gas)(调用的ABI编码参数)

  1. transfer 没有返回值,出错抛出异常,send、call出错不抛出异常,返回true或false

  2. tansfer相对send更安全,发生错误会回滚状态(比如执行 匿名函数的时候),但是send只会返回false,另外这2个函数都需要花费2300gas

function transfer(address _address) public payable{
     _address.transfer(msg.value);
 }

function transfer4(address _address) public payable {
       _address.send(10 ether);
 }

function transfer5(address _address) public payable returns(bool){
    return  _address.call.value(10 ether)();
}

相关文章

网友评论

      本文标题:Solidity 合约转账的三种方式

      本文链接:https://www.haomeiwen.com/subject/beekdqtx.html