Solidity 小白教程:20. 发送 ETH
Solidity有三种方法向其他合约发送ETH,他们是:transfer(),send()和call(),其中**call()**是被鼓励的用法。
接收 ETH 合约
我们先部署一个接收ETH合约ReceiveETH。ReceiveETH合约里有一个事件Log,记录收到的ETH数量和gas剩余。还有两个函数,一个是receive()函数,收到ETH被触发,并发送Log事件;另一个是查询合约ETH余额的**getBalance()**函数。
contract ReceiveETH {
// 收到eth事件,记录amount和gas
event Log(uint amount, uint gas);
// receive方法,接收eth时被触发
receive() external payable{
emit Log(msg.value, gasleft());
}
// 返回合约ETH余额
function getBalance() view public returns(uint) {
return address(this).balance;
}
}
部署ReceiveETH合约后,运行getBalance()函数,可以看到当前合约的ETH余额为0。