Solidity 合约转账的三种方式

参考

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)();
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容