2222
2323## 接收ETH合约
2424
25- 我们先部署一个接收` ETH ` 合约 ` ReceiveETH ` 。` ReceiveETH ` 合约里有一个事件` Log ` ,记录收到的 ` ETH ` 数量和` gas ` 剩余 。还有两个函数,一个是` receive() ` 函数,收到` ETH ` 被触发,并发送` Log ` 事件;另一个是查询合约` ETH ` 余额的` getBalance() ` 函数。
25+ 我们先部署一个接收` ETH ` 的合约 ` ReceiveETH ` 。` ReceiveETH ` 合约里有一个事件` Log ` ,用于记录收到的 ` ETH ` 数量和` gas ` 剩余量 。还有两个函数,一个是` receive() ` 函数,收到` ETH ` 被触发,并发送` Log ` 事件;另一个是查询合约` ETH ` 余额的` getBalance() ` 函数。
2626
2727``` solidity
2828contract ReceiveETH {
@@ -47,7 +47,7 @@ contract ReceiveETH {
4747
4848## 发送ETH合约
4949
50- 我们将实现三种方法向 ` ReceiveETH ` 合约发送` ETH ` 。首先,先在发送ETH合约` SendETH ` 中实现` payable ` 的` 构造函数 ` 和` receive() ` ,让我们能够在部署时和部署后向合约转账 。
50+ 我们将通过三种方法向 ` ReceiveETH ` 合约发送` ETH ` 。首先,先在发送ETH合约` SendETH ` 中实现` payable ` 的` 构造函数 ` 和` receive() ` ,以便能够在部署时和部署后向合约转账 。
5151
5252``` solidity
5353contract SendETH {
@@ -61,7 +61,7 @@ contract SendETH {
6161### transfer
6262
6363- 用法是` 接收方地址.transfer(发送ETH数额) ` 。
64- - ` transfer() ` 的` gas ` 限制是` 2300 ` ,足够用于转账,但对方合约的 ` fallback() ` 或` receive() ` 函数不能实现太复杂的逻辑。
64+ - ` transfer() ` 的` gas ` 限制是` 2300 ` ,足够用于转账,但接收方合约的 ` fallback() ` 或` receive() ` 函数不能实现太复杂的逻辑。
6565- ` transfer() ` 如果转账失败,会自动` revert ` (回滚交易)。
6666
6767代码样例,注意里面的` _to ` 填` ReceiveETH ` 合约的地址,` amount ` 是` ETH ` 转账金额:
@@ -88,7 +88,7 @@ function transferETH(address payable _to, uint256 amount) external payable{
8888### send
8989
9090- 用法是` 接收方地址.send(发送ETH数额) ` 。
91- - ` send() ` 的` gas ` 限制是` 2300 ` ,足够用于转账,但对方合约的 ` fallback() ` 或` receive() ` 函数不能实现太复杂的逻辑。
91+ - ` send() ` 的` gas ` 限制是` 2300 ` ,足够用于转账,但接收方合约的 ` fallback() ` 或` receive() ` 函数不能实现太复杂的逻辑。
9292- ` send() ` 如果转账失败,不会` revert ` 。
9393- ` send() ` 的返回值是` bool ` ,代表着转账成功或失败,需要额外代码处理一下。
9494
@@ -149,7 +149,7 @@ function callETH(address payable _to, uint256 amount) external payable{
149149
150150## 总结
151151
152- 这一讲,我们介绍` Solidity ` 三种发送` ETH ` 的方法:` transfer ` , ` send ` 和` call ` 。
152+ 这一讲,我们介绍` Solidity ` 三种发送` ETH ` 的方法:` transfer ` 、 ` send ` 和` call ` 。
153153
154154- ` call ` 没有` gas ` 限制,最为灵活,是最提倡的方法;
155155- ` transfer ` 有` 2300 gas ` 限制,但是发送失败会自动` revert ` 交易,是次优选择;
0 commit comments