一、以太币传输方式
在三种以太币传输方式中,以太币的接收方都由位于开头的 <address> 指定。
1、transfer
<address payable>.transfer(uint256 amount)
//特点:
//发生异常情况时,转账失败,抛出异常
//有gas限制,最大2300
2、send
<address payable>.send(uint256 amount) returns (bool)
//特点:
//发生异常情况时,只会返回false,不会终止执行
//有gas限制,最大2300
3、call
<address>.call(bytes memory) returns (bool, bytes memory)
//特点:
//发生异常情况时,只会返回false,不会终止执行
//没有gas限制
举个栗子:
function send_call(address payable a) public {
bytes memory payload = abi.encodeWithSignature("set_sender()");
(bool success, bytes memory returnData) = a.call.value(0.1 ether)(payload);
require(success);
}
(1).gas() 调整供应的 gas 值
例如:
address(nameReg).call.gas(10
本文介绍了Solidity智能合约之间的以太币传输方式,包括transfer、send和call的使用,详细讲解了如何通过gas()调整gas值,value()设置以太币值,并探讨了两者的结合应用。
最低0.47元/天 解锁文章
902

被折叠的 条评论
为什么被折叠?



